US 2011 0015917A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2011/0015917 A1 Wang et al. (43) Pub. Date: Jan. 20, 2011
(54) BROWSEREMULATORSYSTEM Publication Classification (76) Inventors: Pei Wang, Saratoga, CA (US); (51) Int. Cl. Yitao Yao, Saratoga, CA (US); G06F 9/455 (2006.01) Mark P. Palaima, Saratoga, CA G06F 7700 (2006.01) (US); Hamayoun Zariv, Danville, (52) U.S. Cl...... 703/23; 715/234; 715/760 CA (US); Rajasekhar Bhogi, San (57) ABSTRACT Jose, CA (US) A browser emulator is provided. An example browser emu Correspondence Address: lator system includes a communications module to receive SCHWEGMAN, LUNDBERG & WOESSNER/ requests for web pages from a browser application, a docu EBAY ment object model (DOM) interceptor to intercept an initial P.O. BOX 2938 document object model (DOM) provided by the web appli MINNEAPOLIS, MN 55402 (US) cation, an activator to activate a browser emulator, and a DOM manipulator to generate a modified DOM. A marked (21) Appl. No.: 12/505,411 up document that corresponds to the modified DOM includes an event interceptor that replaces JavaScript code associated (22) Filed: Jul. 17, 2009 with the original DOM provided by the web application.
100 1.
120
WEBSERVER
BROWSERAPPLICATION
112 EVENT WEBAPPLICAON INTERCEPTOR BROWSER 14 EMUATOR EVENT NTERCEPTOR SCIAZED COMMUNICAONS CHANNEL
116 DOM GENERATOR
BROWSER COMMUNICATIONS MODULE Patent Application Publication Jan. 20, 2011 Sheet 1 of 6 US 2011/0015917 A1
_LNEAE èHOLdE}{O}{E_LNI |NEAE }}O_LCHERO?HELNI Patent Application Publication Jan. 20, 2011 Sheet 2 of 6 US 2011/0015917 A1
200 1.
COMMUNICATIONS MODULE
DOMINTERCEPTOR
BROWSEREMULATOR 212
ACTIVATOR DOMMANIPULATOR
FIG 2 Patent Application Publication Jan. 20, 2011 Sheet 3 of 6 US 2011/0015917 A1
1. 300
310 RECEIVE ARECRUEST FOR AWEBPAGE
320 OBTAIN AN ORIGINAL DOCUMENT OBJECT MODEL (DOM) FROMA WEBAPPLICATION IN RESPONSETO THE RECQUEST
330 INTERCEPT THE DOM
340 ACTIVATEA BROWSEREMULATOR
REPLACE JAVASCRIPT CODE IN THE ORIGINAL DOM WITH AN EVENT INTERCEPTOR TO PRODUCE A MODIFIED DOM, THE MODIFIED DOM CORRESPONDING TO THE WEBPAGE, THE EVENT 350 INTERCEPTOR TO FACILITATE A COMMUNICATIONS CHANNEL BETWEEN A BROWSER THAT RENDERS THE WEB PAGE AND THE BROWSEREMULATOR
PROVIDE THE WEB PAGE GENERATED BASED ON 360 THE MODIFIED DOM TO A BROWSERAPPLICATION ASSOCIATED WITH THE REQUEST
FIG. 3 Patent Application Publication Jan. 20, 2011 Sheet 4 of 6 US 2011/0015917 A1
400 1.
LOAD THE WEB PAGE GENERATED BASED ON THE 410 MODIFIED DOMIN THE BROWSER APPLICATION
420 LOAD ADDITIONAL JAVASCRIPTAND FLASH MODULES
430 ESTABLISHAWO-WAY SOCKE COMMUNICATION CHANNEL WITH THE BROWSEREMULATOR
440 LOAD AWEB PAGE CORRESPONDING TO THE UNMODIFIED DOMAND EXECUTE ALL ON-LOAD JAVASCRIPT PRESENT IN THE WEB PAGE
FIG. 4 Patent Application Publication Jan. 20, 2011 Sheet 5 of 6 US 2011/0015917 A1 1. 500
RECEIVE, ATA BROWSERAPPLICATION, AN EVENT 510 ASSOCIATED WITHAUSER INTERACTION
520 GENERATE AMESSAGE ASSOCIATED WITH THE EVENT
530 DELIVER THE MESSAGE TO A BROWSEREMULATOR
540 SYNCHRONIZE THE SERVER-SIDE DOM WITH THE DOM USEDAT THE BROWSERAPPLICATION IF THE USER INTERACTION EVENT RESULTED IN ANY CHANGES TO THE CLIENT-SIDE DOM
550 DELIVER A SIMULATED BROWSEREVENT TO THE DOMELEMENTS OF THE BROWSEREMULATOR AND TRIGGER THE JAVASCRIPT EXECUTION
PROVIDE RUNTIME ENVIRONMENT AND CONTEXT 560 FOR THE EXECUTION OR DEBUG OF JAVASCRIPT IN THE BROWSEREMULATOR
PROPAGATE ANY DOMUPDATES THAT OCCURDUE 570 TO JAVASCRIPT EXECUTION TO THE BROWSER APPLICATION
FIG. 5 Patent Application Publication Jan. 20, 2011 Sheet 6 of 6 US 2011/0015917 A1
PROCESSOR VIDEO 402 DISPLAY 410 424 - INSTRUCTIONS
MAIN MEMORYR APHANUMERIC 604 NPUT DEVICE 624,--INSTRUCTIONS
608
CURSOR 606 STATIC CONTROL 614 MEMORY DEVCE
DRIVE UNIT MACHINE - 616 NETWORK READABLE 620 INTERFACE MEDIUM 622 DEVICE INSTRUCTIONS-624
SIGNAL 626 GENERATION 618 DEVICE
FIG. 6 US 2011/OO 15917 A1 Jan. 20, 2011
BROWSEREMULATOR SYSTEM present invention. It will be evident, however, to one skilled in the art that the present invention may be practiced without TECHNICAL FIELD these specific details. 0001. This application relates to the technical fields of 0013 As used herein, the term “or may be construed in Software and/or hardware technology and, in one example either an inclusive or exclusive sense. Similarly, the term embodiment, to a browser emulator system. “exemplary is construed merely to mean an example of Something or an exemplar and not necessarily a preferred or BACKGROUND ideal means of accomplishing a goal. Additionally, although various exemplary embodiments discussed below focus on 0002 The approaches described in this section could be administration of Java-based servers and related environ pursued, but are not necessarily approaches that have been ments, the embodiments are given merely for clarity in dis previously conceived or pursued. Therefore, unless otherwise closure. Thus, any type of server environment, including vari indicated herein, the approaches described in this section are ous system architectures, may employ various embodiments not prior art to the claims in this application and are not of the application-centric resources system and method admitted to be prior art by inclusion in this section. 0003 JavaScript is a scripting language that is used for described herein and is considered as being within a scope of client-side web development to add interactivity to HTML the present invention. pages. Despite its name, and while designed to look like 0014 ADocument Object Model (DOM) is an application JavaTM, JavaScriptTM is unrelated to the JavaTM programming programming interface (API) that defines logical structure of language. Rather, JavaScript'TM is a dynamic, weakly typed, documents (e.g., HTML documents and well-formed XML prototype-based language intended to be easier for non-pro documents) and the way a document is accessed and manipu grammers as a tool with which to work. “JavaScript(R)' and lated. The DOM may be used to manage data presented as a “Java Rare registered trademarks of Sun Microsystems, Inc. document. For example, various elements found in an HTML of Santa Clara, Calif. or XML document can be accessed, changed, deleted, or 0004 JavaScript may be thought of as a scripting add-on added using the Document Object Model. The purpose of a to HTML, where JavaScript code is added to HTML com browser application (also referred to as a web browser or mands by use of the