The present invention relates to a method for sharing and transferring data between different frames of a web browser which are served from different domains. This allows for the outsourcing of services that would not be possible otherwise, owing to security imposed limitations on the web browser.
Just as computer networks have gained widespread use in business, the Internet (one example of a computer network) has gained widespread use in virtually every aspect of our lives, owing primarily to the popularity of the worldwide web. The internet includes servers (computers), which offer electrical communication to client computers (operated by users) and other servers. The computers involved may range from mainframes to cellular telephones, and they may operate over any conceivable communication medium.
Most users connect to the Internet (or “surf the net”) through a personal computer running an operating system with a graphic user interface (GUI), such as one of the Windows® operating systems. A user communicates over the Internet using a program called a “browser” running on his computer, the two most popular ones being Internet Explorer and Netscape, although many other browsers are in common use. The browser receives files in a format known as HTML, which is a mark-up language that permits multimedia to be embedded within formatted and stylized text, and it displays “pages”, which may play sound and exhibit graphics and video. Various programming languages, such as JavaScript, are also available which permit executable code to be embedded in an HTML file and to run and to perform useful tasks when a browser presents the file to the user. Users of the Internet are therefore quite familiar with the browser as a vehicle for surfing the Internet, but those skilled in the art will appreciate that browsers are not limited to use on the Internet, but are now widely used for general communication on networks, including intranets.
In addressing security and privacy issues, web browsers have imposed limitations on the interaction between frames contained on a same page. Depending on the browser, its version and user defined parameters, the communication can be enabled or impaired. This prevents code in one browser frame from being manipulated from another frame, hence averting security breaches like password sniffing, content and advertising replacement, and unauthorized tampering with code by third parties.
However, such security measures also preclude legitimate applications from making use of such inter-frame interactions. One such application, included here for illustrative purposes (and not to be considered exclusive) is the contextual browser described in U.S. patent application Ser. No. 10/716,163, the content of which is incorporated herein by reference in its entirety. As described in the aforementioned patent application, the browser portion of a given web page (the toolbar contained in the upper frame) is limited to being served from the same domain as the page being viewed. If that limitation is not circumvented, certain browser engines will not be capable of enabling the interaction between frames.
If a web site wishes to outsource this type of application, or if an ASP wishes to offer it to its clients, it becomes desirable to serve parts of a page that are contained in different frames from diverse servers in diverse domains. To achieve this, the present invention relies on various triangulation techniques, depending on the capabilities of the various browsers on the market. This triangulation is done via a Messenger Agent, which can be programmed in a number of languages and using a number of technologies.
Additionally, an error trapping mechanism is built onto the system to detect situations in which the frame communication does not occur as expected.
In the example of the Contextual Browser, the error trapping can trigger a controlled deactivation process.
The foregoing brief description, as well as further objects, features, and advantages of the present invention will be understood more completely from the following detailed description of a presently preferred embodiment, with reference being had to the accompanying drawing, in which:
The present invention circumvents inter-frame communication limitations imposed by web browsers by introducing an agent in the line of communication. This agent may be programmed in any of a number of possible ways. The preferred embodiment of the invention employs any of a variety of possible solutions, depending upon which web browser is employed.
For illustrative purposes, the Contextual Browser will be used to describe the operation of the invention. The Contextual Browser is made up of a single web page divided into upper and lower frames. The upper one contains the toolbar and the lower one the web page being displayed. In order to enable the functionality of the Contextual Browser, certain code must be added to the page being viewed. This code retrieves instructions for the deployment of the two frames and the subsequent communication between them.
In this scenario, chosen to exemplify the operation of the invention, the upper frame, the toolbar, is served from one domain, while the web page, the content, is served from a different one. Both frames are contained within a frameset, with which both frames can communicate. All communications that cannot occur directly are routed through this frameset.
Once the Contextual Browser has been deployed, communication between frames is necessary for its operation. Such exchange occurs in a number of ways depending on the platform.
Definitions:
The processes of
In order to exemplify the present invention, it will now be described how a page with an upper frame (UF) and lower frame (LF) within a frame set (FS) would communicate with each other when various technologies are present at the user's computer.
In addition to enabling the communication between frames served from diverse sources, the current invention includes a mechanism to catch situations in which the system malfunctions, allowing for the triggering of alternate flows.
This mechanism works as follows: When a frame changes, either by order of the other or by user interaction (click), it informs the other frame that a change has initiated. The other frame then expects another message from the new page being loaded. If the message never arrives, then the remaining active frame deactivates and triggers an alternate procedure. In the Contextual Browser example, the alternate process is the deactivation of the Contextual Browser.
In this section, the PRINT function in the Contextual Browser is used to exemplify the communication from frame to frame. The communication is originated when the user clicks on the PRINT button located on the UPPER FRAME to print the contents of the LOWER FRAME.
On click, the following call is made:
This call changes the status of the frameset. Every 100 milliseconds, the frameset checks for any status changes, meaning, if any messages have arrived. If the answer is yes, then the message is relayed to each frame contained in the frameset through a method consisting of changing the window name.
Each page checks whether any changes have occured in the window name. If there are any, such change is recognized as the message to be received. Once the message is received, the page checks whether it has to perform any actions. In this sample, the message is “print_”
In the above example, the messenger function receives the word “print_”, makes a call to the preprint function, which will print the page. The communication circuit is finished.
Although a preferred embodiment of the invention has been disclosed for illustrative purposes, those skilled in the art will appreciate that many additions, modifications and substitutions are possible, without departing from the scope and spirit of the invention. For example, the communication between the Flash program and HTML can be done using the common GET_URL method from Flash or using the SetVariable method.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US03/16317 | 5/22/2003 | WO | 2/7/2006 |
Number | Date | Country | |
---|---|---|---|
60382840 | May 2002 | US |