Method for managing browser display

A system, method, and computer program product are designed to manage web content displayed at a client device during one or more browser sessions. Responsive to a request for a first web page, the first web page is displayed at the client device through the browser session. A timeout condition at the browser is detected and a second predetermined web page is displayed at the client device, replacing the first web page, and optionally also clearing cache memory.

TECHNICAL FIELD

The present invention relates to a method, system, and computer program product for managing the display of web content at a client browser. More particularly, the invention relates to a method, system, and computer program product for replacing web content which is currently displayed to a client system upon detection of a timeout condition in a browser session.

BACKGROUND OF THE INVENTION

The Internet is a set of computer networks, possibly dissimilar, joined together by means of gateways that handle data transfer and the conversion of messages from protocols of the sending network to the protocols used by the receiving network (with packets if necessary). When capitalized, the term “Internet” refers to the collection of networks and gateways that use the TCP/IP suite of protocols.

The Internet has become a cultural fixture as a source of both information and entertainment. Many businesses are creating Internet sites as an integral part of their marketing efforts, informing consumers of the products or services offered by the business or providing other information seeking to engender brand loyalty. Many federal, state, and local government agencies are also employing Internet sites for informational purposes, particularly agencies which must interact with virtually all segments of society, such as the Internal Revenue Service and Secretaries of State. Providing informational guides and/or searchable databases of online public records may reduce operating costs. Further, the Internet is becoming increasingly popular as a medium for commercial transactions.

Currently, the most commonly employed method of transferring data over the Internet is to employ the World Wide Web environment, also called simply “the Web”. Other Internet resources exist for transferring information, such as File Transfer Protocol (FTP) and Gopher, but have not achieved the popularity of the Web. In the Web environment, servers and clients effect data transaction using the Hypertext Transfer Protocol (HTTP), a known protocol for handling the transfer of various data files (e.g. text, still graphic images, audio, motion video). The information in various data files is formatted for presentation to a user by means of a standard page description languages such as the Hypertext Markup Language (HTML) and extensible markup language (XML). In addition to basic presentation formatting, HTML allows developers to specify “links” to other Web resources identified by a Uniform Resource Locator (URL). A URL is a special syntax identifier defining a communications path to specific information. Each logical block of information accessible to a client, called a “page” or a “Web page”, is identified by a URL. The URL provides a universal, consistent method for finding and accessing this information, not necessarily for the user, but mostly for the user's Web “browser”. A browser is a program capable of submitting a request for information identified by an identifier, such as, for example, a URL. A user may enter a domain name through a graphical user interface (GUI) for the browser to access a source of content. The domain name is automatically converted to the Internet Protocol (IP) address by a domain name system (DNS), which is a service that translates the symbolic name entered by the user into an IP address by looking up the domain name in a database.

When a user enters a domain name through a GUI for a browser to access a source of content and navigates through the content using mouse, keyboard, or other suitable inputs, such as voice and tactile input. Currently most non-secure browser sessions monitor for inputs to the displayed page and subsequently timeout when a predefined period of “no inputs”, or “inactivity” is reached. Upon reaching a timeout condition, the website may revert to a default page or simply lock on the last displayed page, disallowing any further activity without the reentry of a username and/or password. However, these sites do not provide a means for a user to specify what web page is displayed after a timeout condition is reached. In addition, some sites leave the last viewed page displayed regardless of the sensitivity of the information on the page. Therefore, it would be desirable to have a browser feature that replaces a currently displayed window upon detecting a period of inactivity such that the original web page is no longer displayed. The new web page would then protect the user's confidential or otherwise sensitive information previously displayed.

SUMMARY OF THE INVENTION

The present invention provides a system, method, and computer program product designed to manage web content displayed at a client device during one or more browser sessions. Responsive to a request for a first web page, the first web page is displayed at the client device through the browser session. A timeout condition at the browser is detected and a second predetermined web page is displayed at the client device, replacing the first web page. In a preferred embodiment, the cache memory associated with the browser session is also cleared, further removing traces of any private and/or confidential information the user may have viewed.

One aspect of the present invention monitors browser activity such that a user's private and/or confidential information may be removed from view should the user forget to clear the screen before leaving the workstation.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

With reference now to the figures and in particular with reference toFIG. 1, a pictorial representation of a data processing system in which the present invention may be implemented is depicted in accordance with a preferred embodiment of the present invention. A computer100is depicted which includes a system unit102, video display terminal104, keyboard106, storage devices108, which may include floppy drives and other types of permanent and removable storage media, and mouse110. Additional input devices may be included with personal computer100, such as, for example, a joystick, touch pad, touch screen, trackball, microphone, and the like. Computer100can be implemented using any suitable computer. Although the depicted representation shows a computer, other embodiments of the present invention may be implemented in other types of data processing systems, such as a network computer. Computer100also preferably includes a graphical user interface that may be implemented by means of systems software residing in computer readable media in operation within computer100.

With reference now toFIG. 2, a block diagram of a data processing system is shown in which the present invention may be implemented. Data processing system200is an example of a computer, such as computer100inFIG. 1, in which code or instructions implementing the processes of the present invention may be located. Data processing system200employs a peripheral component interconnect (PCI) local bus architecture. Although the depicted example employs a PCI bus, other bus architectures such as Accelerated Graphics Port (AGP) and Industry Standard Architecture (ISA) may be used. Processor202and main memory204are connected to PCI local bus206through PCI bridge208. PCI bridge208also may include an integrated memory controller and cache memory for processor202. Additional connections to PCI local bus206may be made through direct component interconnection or through add-in boards. In the depicted example, local area network (LAN) adapter210, small computer system interface (SCSI) host bus adapter212, and expansion bus interface214are connected to PCI local bus206by direct component connection. In contrast, audio adapter216, graphics adapter218, and audio/video adapter219are connected to PCI local bus206by add-in boards inserted into expansion slots. Expansion bus interface214provides a connection for a keyboard and mouse adapter220, modem222, and additional memory224. SCSI host bus adapter212provides a connection for hard disk drive226, tape drive228, and CD-ROM drive230. Typical PCI local bus implementations will support three or four PCI expansion slots or add-in connectors.

An operating system runs on processor202and is used to coordinate and provide control of various components within data processing system200inFIG. 2. The operating system may be a commercially available operating system such as Windows 2000, which is available from Microsoft Corporation. An object oriented programming environment such as Java may run in conjunction with the operating system and provides calls to the operating system from Java programs or applications executing on data processing system200. “Java” is a trademark of Sun Microsystems, Inc. Instructions for the operating system, the object-oriented programming environment, and applications or programs are located on storage devices, such as hard disk drive226, and may be loaded into main memory204for execution by processor202.

For example, data processing system200, if optionally configured as a network computer, may not include SCSI host bus adapter212, hard disk drive226, tape drive228, and CD-ROM230, as noted by dotted line232inFIG. 2denoting optional inclusion. In that case, the computer, to be properly called a client computer, must include some type of network communication interface, such as LAN adapter210, modem222, or the like. As another example, data processing system200may be a stand-alone system configured to be bootable without relying upon some type of network communication interface, whether or not data processing system200comprises some type of network communication interface. As a further example, data processing system200may be a personal digital assistant (PDA), which is configured with ROM and/or flash ROM to provide nonvolatile memory for storing operating system files and/or user-generated data.

The depicted example inFIG. 2and above-described examples are not meant to imply architectural limitations. For example, data processing system200also may be a notebook computer or hand held computer in addition to taking the form of a PDA. Data processing system200also may be a kiosk or a Web appliance. The processes of the present invention are performed by processor202using computer implemented instructions, which may be located in a memory such as, for example, main memory204, memory224, or in one or more peripheral devices226–230.

With reference now toFIG. 3, a diagram illustrating components used in managing the display of web content at a browser is depicted in accordance with a preferred embodiment of the present invention. Browser300is an example of a browser, which may be executing on data processing system200inFIG. 2.

In this example, browser300receives Web page302for presentation. Web page302may be obtained by entering a URL. This URL may be stored in location list304. Location list304contains URLs entered by the user. These URLs are typically entered through a field, which is often called an “address bar”. Cache308provides for temporary storage of Web pages received by the browser. For example, images and text for Web page302may be stored in cache308. Cache308provides a quick way to redisplay Web page302if the user later returns to Web page302.

The present invention provides a method, apparatus, and computer implemented instructions for monitoring browser activity. The mechanism of the present invention monitors activity or inactivity for a given web page displayed during a browser session using browser300. Inactivity is measured from a point in time when no user input is received by the browser. User input may come in many forms including but not limited to mouse, keyboard, audio, and tactile inputs. Once a given browser session has been inactive for a predefined period of time, the browser automatically fetches another web page, replacing the previously displayed page and optionally clearing the cache308. Additionally, the mechanism of the present invention provides a graphical user interface for users to configure the browser to monitor session activity, define “period of inactivity”, and designate replacement pages when the predefined period of inactivity is exceeded. This interface provides the user with the option of monitoring individual browser sessions, such as when more than one browser session is open, or use the same settings for all browser sessions.

Turning next toFIG. 4, a block diagram of a browser program is depicted in accordance with a preferred embodiment of the present invention. A browser is an application used to navigate or view information or data in a distributed database, such as the Internet or the World Wide Web. In particular, processes may be included within browser400to monitor browser session activity.

In this example, browser400includes a user interface402, which is a graphical user interface (GUI) that allows the user to interface or communicate with browser400. This interface provides for selection of various functions through menus404and allows for navigation through navigation406. For example, menu404may allow a user to perform various functions, such as saving a file, opening a new window, displaying a history, and entering a URL. Navigation406allows for a user to navigate various pages and to select web sites for viewing. For example, navigation406may allow a user to see a previous page or a subsequent page relative to the present page. Additionally, menu404may allow a user to initiate an activity monitor for one or more active browser sessions. Preferences such as those illustrated inFIG. 4may be set through preferences408.

Communications410is the mechanism with which browser400receives documents and other resources from a network such as the Internet. Further, communications410is used to send or upload documents and resources onto a network. In the depicted example, communication410uses HTTP. Other protocols may be used depending on the implementation. Documents that are received by browser400are processed by language interpretation412, which includes HTML unit414and JavaScript unit416. Language interpretation412will process a document for presentation on graphical display418. In particular, HTML statements are processed by HTML unit414for presentation, while JavaScript statements are processed by JavaScript unit416.

Graphical display418includes layout unit420, rendering unit422, and window management424. These units are involved in presenting Web pages to a user based on results from language interpretation412.

Browser400is presented as an example of a browser program in which the present invention may be embodied. Browser400is not meant to imply architectural limitations to the present invention. Presently available browsers may include additional functions not shown or may omit functions shown in browser400. A browser may be any application that is used to search for and display content on a distributed data processing system. Browser400may be implemented using know browser applications, such Netscape Navigator or Microsoft Internet Explorer. Netscape Navigator is available from Netscape Communications Corporation, while Microsoft Internet Explorer is available from Microsoft Corporation.

Turning next toFIG. 5, a block diagram of an exemplary graphical user interface used to enter the parameters for monitoring browser session activity is depicted in accordance with one embodiment of the present invention. Graphical user interface500may be implemented in browser400inFIG. 4.

In this example, interface500is shown in the form of a window that can come up when the browser is first initiated or separately activated from a menu or tool bar option. The interface500prompts the user to input the required information to configure the browser for monitoring browser session activity. The first input502is whether the user wants to monitor activity. Assuming the user selects “Yes”, the second input504is the time limit of inactivity that will trigger a timeout condition. The user may enter any amount of time for this parameter. The next input506is whether the user wants these settings to apply to all browser sessions or only the current session. If “Current” is selected then only the currently displayed browser session is monitored. If “All Sessions” is selected then all subsequent browser session activity will be monitored for the same period of time, measuring from a point where no activity is detected in each individual browser session. Input508is the address for the replacement page. Users may enter any URL they choose to replace the current web page in the browser session once a timeout condition is reached. Input510is whether the user wants to clear cache memory files associated with browser sessions. Advantageously, users may protect private and/or confidential information from being viewed on the client inadvertently.

The interface500is described in the form of a window that opens when the browser session is initiated or based on user preferences. While this is one example of how the present invention may be implemented, it will be clear to one of ordinary skill in the art that there are several ways to implement the mechanism of the present invention without departing from the spirit of the invention. For example, these processes may be implemented as a plug-in or as a separate application.

FIG. 6is a flow diagram of an exemplary process for monitoring browser session activity in accordance with one embodiment of the present invention. A browser session is activated at step602. The browser checks for preferences indicating that the browser activity should be monitored, step604. In this example, the browser may be pre-configured to monitor activity or configured each time the browser is initiated. If user preferences are set for monitoring, then the process goes to “B” (seeFIG. 7), step606. If there are no preferences already set, then the process goes to step608, where users are asked if they want to monitor the activity of the current browser session. If the answer is no, they do not want to monitor activity, then the process stops, step610. If they do want to monitor activity, then the monitoring preferences are obtained at step612. The process then goes to “B” inFIG. 7, step614.

FIG. 7is a flow diagram of an exemplary process for monitoring browser session activity in accordance with one embodiment of the present invention continuing from various points in the process outlined inFIG. 6, above. From step606and614where the preferences are set for monitoring the browser, the browser session activity is monitored, step702. The process determines whether the inactivity limit, as predefined, has been reached, step704. If the inactivity limit has not been reached, then the process goes back to step702. If the inactivity limit has been reached, then a timeout condition is declared and the replacement page listed in the preferences file is fetched, step706. The replacement page is then displayed in the browser session having a timeout condition, step708. At this point, the process may continue on to monitor browser activity or it may end, the result would be the same, the process would simply replace the existing web page with the same web page as in step708. Regardless, the ultimate result of maintaining privacy for the user is achieved in that once a timeout condition is reached, the content displayed at the browser is a page that is pre-defined by the user.

In an alternate embodiment, the browser may clear the cache memory file associated with the inactive browser session, step710. This step will remove the evidence of pages visited by the user from the cache and further protect the user's private and/or confidential information from being viewed by prying eyes.

Thus, the present invention provides an improved method, system, and computer implemented instructions for managing the display of web content using a browser. This advantage may be implemented through a graphical user interface for providing user input to define an inactivity limit or timeout condition for a given browser session and what page to replace the displayed page with once the inactivity limit is reached.

While the invention has been shown and described with reference to particular embodiments thereof, it will be understood by those skilled in the art that the foregoing and other changes in form and detail may be made therein without departing from the spirit and scope of the invention.