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 (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 interceptor that replaces JavaScript code associated (22) Filed: Jul. 17, 2009 with the original DOM provided by the .

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 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 or mands by use of the