Abstract:
A method of creating a browser renderable toolbar or helper application, and a network architecture therefore. The browser renderable toolbar obviates the need for separately-installed software while still permitting a user to take advantage of the functionality provided by a traditional toolbar.

Description:
This application includes material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent disclosure, as it appears in the Patent and Trademark Office files or records, but otherwise reserves all copyright rights whatsoever. 
     FIELD 
     The instant disclosure relates to the field of network browsing application enhancements, and more specifically provides a helper application, such as a toolbar, that can be rendered by a conventional network browsing application. 
     BACKGROUND 
     One of the single biggest drivers that has contributed to the explosive adoption and expansion of the Internet is the World Wide Web and the network browsing applications, or browsers, used to view information accessible on the World Wide Web. At its most basic, the World Wide Web, or web, is a collection of documents written using a well-structured language such as that defined in the HyperText Markup Language (“HTML”) specification, the eXtensible Markup Language (“XML”) specification, or other such specifications. Browsers can read such documents and render them, such that they are more easily read and understood by users. 
     The increasing adoption of browsers by users has also spurred the introduction of add-ons, plug-ins, or other helper applications which further enhance the browser&#39;s capabilities. Helper applications are separate, compiled applications which must be downloaded and installed on an individual computing device on which the browser is operating, but which integrate into the browser. As a downloadable application, the helper application can become out of date, requires download and re-installation when new features or functionality are added, and could have issues of browser compatibility with newer and/or older browser versions. As a piece of software, the helper application also needs to be compatible with other software. When incompatible versions of other software are encountered, a forced download of alternative versions of the helper application may be required to ensure compatibility. Such alternative helper application versions may not contain all of the latest features and functions associated with the helper application, and therefore may not be as desirable for the user. 
     In addition, settings for the helper application are frequently configured on a per computer basis. When a user uses a computer or other computing device other than his or her main computer, the helper application may either not exist at all or may need to be installed, and if it is installed, it frequently does not conform to the user&#39;s preferences. 
     An example of a helper application is the well-known downloadable toolbar. When installed, the downloadable toolbar allows users to customize their browsing experience and to have such a customized experience follow them from computing device to computing device. By way of example, such toolbars typically allow users to easily add entries to, remove entries from, and organize a list of their favorite web sites. Such toolbars can also notify users when a new E-mail has arrived, facilitates access to commonly used web sites and/or features, and allows users to easily search for information of interest directly from the browser&#39;s main window. 
     SUMMARY 
     While helper applications can be very useful, many Systems Administrators prohibit the use of such applications within organizations because of security and other concerns. What is needed is a means by which some or all of a helper application&#39;s functionality can be implemented within a browser, thereby obviating the need for a separately installed helper application. Accordingly, the instant disclosure is directed to a browser renderable toolbar that substantially obviates one or more of the problems due to limitations and disadvantages of the related art. Although described herein as a toolbar, alternative helper application embodiments are contemplated. 
     An embodiment comprises a method for presenting a toolbar to a user through a browser comprising embedding code into a downloadable document comprising browser interpretable commands, the commands, when interpreted by a browser, causing the browser to render, within a content display area of the browser, a user toolbar, the functions of which are defined by said code; and serving said document. Such an embodiment may further comprise receiving identification information from a user; performing user authentication based on the received identification information to determine an appropriate user account associated with the user; and, incorporating preferences, including, without limitation, a set of favorite web sites, associated with the appropriate user account into the downloadable document. The embedded code may further take into account capabilities of the device and/or browser. In an embodiment, the capabilities may be taken into account by omitting certain features or functions that would otherwise be present. The browser interpretable commands may comprise commands written in XML, AJAX, JavaScript, VBScript, or other such non-compiled languages. The browser interpretable commands may further comprise instructions for facilitating searching of network-accessible documents, including documents available via the Internet. 
     An embodiment comprises a method of creating a toolbar capable of being rendered by a browser running on a device, comprising determining a set of toolbar preferences; defining browser interpretable commands, wherein the browser interpretable commands, when interpreted by a browser, cause the browser to render a toolbar configured according to the helper application preferences within a browser content display area, and wherein the browser interpretable commands, when interpreted by the browser, cause the browser to incorporate the toolbar into the content display area as additional content is displayed by the browser; and, transmitting the browser interpretable commands to a device. The method may further comprise receiving identification information from a user; performing user authentication based on the received identification information to determine an appropriate user account associated with the user; and, modifying the set of toolbar preferences based on preferences associated with the appropriate user account. The user authentication step may be repeated at least once if the user authentication step fails, and a default user account may be utilized if authentication subsequently fails. 
     An embodiment may further comprise browser interpretable commands for implementing a helper application, comprising a set of commands defining the appearance of the helper application; a set of commands defining a plurality of user interface elements; and, a set of commands whereby the browser renders the helper application as part of each subsequent page displayed by the browser. The appearance definition and/or the user interface element definition may comprise at least one background image. Each user interface element definition may further comprise at least one of the set of a URL and additional browser interpretable commands. 
     An embodiment comprises a method of controlling an Internet browser content display area on a display of a device, and enabling a user of the device and Internet browser to access and navigate the Internet and to receive and display one or more Web pages from one or more Internet sites, including the display of a Web page from a predetermined Internet site, the Internet browser having a bounded user interface area, the Internet browser further having a bounded content display area for displaying Web pages, the content display area being a separate area from the user interface area of the browser, said method comprising the steps of: (a) providing, at the predetermined Internet site, access to a browser interpretable web page for generating an Internet browser toolbar; and (b) downloading from the predetermined Internet site said web page, wherein said web page, when interpreted by the browser, adjusts the bounds of the content display area if necessary and causes the display, within the bounds of the content display area, of a user toolbar that, by virtue of the web page, is added to and appears in and remains entirely within the bounds of the content display area without overlying anything that was displayed in the bounds of the user interface area of the browser prior to downloading and without overlying any other content in the content display area, said user toolbar making additional functionality that is not part of the Internet browser prior to download available to the user after download, such that once the user toolbar is displayed the user toolbar remains displayed within the bounds of the content display area and said additional functionality remains available to the user regardless of a subsequent Internet site to which the Internet browser is caused to navigate after download. In an embodiment, the browser user interface area also may comprises an address window in which a user can enter a web site addresses to which the user desires the browser to navigate, and wherein the user interface element is a search window, independent of the address window and independent of any search capability of the browser prior to download of the web page, which search window enables the user to enter a search term in the search window and initiate a search at the predetermined Internet site or another Internet site regardless of the Internet site to which the device is connected via the browser at the time the search is initiated or what web site address is present in the address window at the time the search is initiated. An embodiment may further comprise the step of making available for downloading by the predetermined Internet site additional information specific to the user of the device and Internet browser, for defining all or part of the user toolbar, and wherein all or part of the display of the user toolbar is dependent upon the downloaded additional information. 
     An embodiment may comprise a browser interpretable document for rendering by a browser on a display of a device, the Internet browser facilitating connection between the device and one or more Internet sites including a predetermined Internet site, the Internet browser comprising a defined user interface portion and a defined content display portion, the Internet browser further facilitating displaying on a display of the device and in the defined content display portion one or more Web pages from the one or more Internet sites, including displaying of Web pages from the predetermined Internet site, comprising browser interpretable commands, whereby said Internet browser content display portion, after being enabled with new functionality via navigation to and download of the browser interpretable document from said predetermined Internet site and interpretation of the browser interpretable commands, comprises a persistent user toolbar which does not overly anything displayed in the user interface portion prior to the user toolbar being enabled, and whereby the persistent user toolbar is displayed so as to create the visual impression that the user toolbar is an integrated part of the Internet browser user interface, the user toolbar providing additional functionality to the user regardless of which one of said one or more Internet sites the device is connected to via the Internet browser. 
     An embodiment may comprise a system for controlling an Internet browser displayable on a display of a device, said system comprising a server, said server comprising a web page comprising browser interpretable instructions which are accessible over the Internet by a user of the device, wherein the web page comprises instructions for controlling a browser content display area; and said web page further comprising browser interpretable instructions interpretable by an Internet browser, said Internet browser having a bounded web content display area, the Internet browser further having a bounded user interface area, the content display area being separate from the user interface area of the browser, said browser interpretable instructions, when said web page is interpreted, causing the display, within the bounds of the browser web content display area, of a user toolbar that, by virtue of its being downloaded, appears in and remains entirely within the bounds of the browser web content display area, said user toolbar making additional functionality that is not part of the Internet browser prior to download available to the user after download, such that once the user toolbar is displayed said additional functionality remains available to the user regardless of a subsequent Internet site to which the Internet browser is caused to navigate after download. 
     Additional features and advantages will be set forth in the description which follows, and in part will be apparent from this disclosure, or may be learned by practice. The objectives and other advantages will be realized and attained by the structure particularly pointed out in this written description, including any claims contained herein and the appended drawings. 
     It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are intended to provide further explanation of the disclosed browser renderable toolbar. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The accompanying drawings, which are included to provide a further understanding of the disclosed browser renderable toolbar and are incorporated in and constitute a part of this specification, illustrate various embodiments and, together with the description, serve to explain the principles of at least one embodiment of the disclosed browser renderable toolbar. 
       In the drawings: 
         FIG. 1  is a block diagram illustrating a method by which a browser renderable toolbar can be created. 
         FIG. 2  is an example illustrating a browser into which a conventional toolbar has been installed. 
         FIG. 3  is an example illustrating a browser in which a toolbar has been rendered by the browser. 
         FIG. 4  is an example illustrating a browser wherein the toolbar has been rendered even after the user has navigated away from a helper application instantiation site. 
         FIG. 5  is an example illustrating an alternative browser renderable toolbar embodiment. 
         FIG. 6  is an example illustrating an exemplary user interface through which browser renderable toolbar customizations can be shared with other users. 
         FIG. 7  is a block diagram illustrating an architecture through which a browser renderable toolbar can be distributed. 
     
    
    
     DETAILED DESCRIPTION 
     Reference will now be made in detail to embodiments of the disclosed browser renderable toolbar, examples of which are illustrated in the accompanying drawings. 
       FIG. 1  is a block diagram illustrating a method by which a browser renderable toolbar can be created. In block  100 , the properties of the device on which the browser is running can be determined. Such properties may include, but are not limited to, the device&#39;s display resolution capabilities, communications connection speed, available storage space, computing speed or relative computing speed, browser type and version, and the like. 
     In block  105 , the system receives identification information from a user. By way of example, without limitation, the user may enter such information into a traditional login screen rendered by the browser running on the device; the user may present a thumb, iris, face, or other biometrically readable attribute for identification; or the device on which the browser is running, or the browser itself or a helper application associated therewith, may supply the identification information on the user&#39;s behalf. 
     In block  110 , the supplied user identification information is compared against an authentication database or otherwise authenticated. If the user is positively identified (block  115 ), and thus authenticated, the user&#39;s preferences are obtained from a database of such preferences (block  120 ). If the user is not properly authenticated, the authentication process repeats a set number of times. If the user fails to authenticate, or if the user chooses not to provide user identification information, the system can obtain default user preferences. 
     In block  125 , a set of browser interpretable commands or instructions are defined, wherein the browser interpretable commands comprise instructions which allow the browser to render a toolbar. In an embodiment, the rendered toolbar may comprise a search box, a pop-up blocker, and an anti-spyware scanner, as well as user interface elements facilitating accessing frequently used services such as, without limitation, E-mail and games. Such browser interpretable instructions may be written in any of a variety of languages interpretable by a browser either natively or in combination with an appropriate “engine”, including, without limitation, HTML, XML, JavaScript, Visual Basic Script, and Flash, distributed by Adobe Systems Incorporated of San Jose, Calif. 
     The toolbar may further include one or more user interface elements facilitating altering the toolbar&#39;s appearance. By way of example, without limitation, such appearance alterations may be accomplished by applying a “skin” to the toolbar, and by adding and/or removing user interface elements, such as, without limitation, buttons, drop-down boxes, and fields, to the toolbar. In an embodiment, browser interpretable commands permit the toolbar to also incorporate the user preferences. By way of example, without limitation, such user preferences may include a list of the user&#39;s favorite web sites, frequently used E-mail addresses and/or other contract information, and the like. Such functionality is described in more detail, below. 
     In an embodiment, the content, appearance, and/or functionality provided by the toolbar can be tailored based on the properties of the device on which the browser is running, or by the properties of the browser itself. By way of example, without limitation, a browser running on a laptop or desktop computer may receive browser interpretable commands for creating a full-featured toolbar, while a browser running on a cellular telephone may receive browser interpretable commands for creating a toolbar with only a subset of the features and/or capabilities of the full-featured toolbar. In an embodiment, the features available in the toolbar for the cellular telephone may be chosen such that only a limited portion of the browser&#39;s display is occupied, thereby permitting users to more easily view content while still facilitating access to the toolbar and the features provided thereby. 
     In block  130 , the browser interpretable commands are transmitted to the device. Such transmission may be accomplished through a variety of means, including, without limitation, utilizing the HyperText Transfer Protocol (“HTTP”), File Transfer Protocol (“FTP”), Short Message Service (“SMS”), or the like. In block  135 , the browser can incorporate the browser interpretable commands into each subsequent page rendered by the browser, thereby permitting the user to access the toolbar regardless of which web site the user is browsing. 
       FIG. 2  is a screen capture illustrating browser  200  into which conventional toolbar  210  has been installed. As  FIG. 2  illustrates, conventional toolbar  210  appears integrated into and appears to be part of the user interface portion of browser  200 . 
       FIG. 3  is an exemplary screen capture illustrating browser  300  in which toolbar  310  has been rendered by browser  300 . In an embodiment, the user indicates a desire to access the features provided by a browser rendered toolbar by simply visiting a particular web site, such as, without limitation, http://toolbar.yahoo.com. By visiting such a web site, the browser can load the instructions necessary to render toolbar  310 . The user can also enter login information, and by so doing permit a version of toolbar  310  to be loaded that has been customized based on the user&#39;s preferences. In the embodiment illustrated in  FIG. 3 , after the appropriate commands have been received by browser  300 , browser rendered toolbar  310  presents a user interface that is similar to that of toolbar  210  of  FIG. 2 , however, browser rendered toolbar  210  is rendered within content display area  330  of browser  300 , rather than browser  300 &#39;s user interface area  320 . 
     In the embodiment illustrated in  FIG. 3 , the instructions implementing browser rendered toolbar  310  are written using Asynchronous JavaScript and XML (“AJAX”). Ajax combines several programming tools including JavaScript, dynamic HTML (“DHTML”), XML, cascading style sheets (“CSS”), the Document Object Model (“DOM”), and the like. Ajax allows content on Web pages to update immediately when a user performs an action, unlike an HTTP request, during which users must wait for a whole new page to load. Ajax uses an engine that acts as an intermediary between a user&#39;s browser and the server from which it is requesting information. Instead of loading a traditional Web page, the user&#39;s browser loads the Ajax engine, which displays the page the user sees. The engine continues to run in the background, using JavaScript to communicate with the Web browser. User input or clicking on the page sends a JavaScript call to the Ajax engine, which can respond instantly in many cases. If the engine needs additional data, it requests it from the server, usually using an HTML or XML-based request, while it is simultaneously updating the page. 
     In an Ajax-implemented embodiment, the Ajax engine can be instructed to always incorporate browser rendered toolbar  310  into each page that is loaded. This is illustrated in  FIG. 4 , wherein toolbar  310  has been rendered even after the user has navigated away from a toolbar instantiation site, as indicated by the address in address window  325 . In an embodiment, this can be accomplished by the instructions implementing the browser rendered toolbar instructing the Ajax engine to display content in a frame within the browser&#39;s content display area. This obviates the need to re-render the toolbar each time the browser displays new content. 
     In an embodiment, such as that illustrated in  FIGS. 3 and 4 , it may be advantageous for the toolbar to have an appearance similar to that of a conventional toolbar, and to incorporate features such as search window  315 . In such an embodiment, the browser-rendered toolbar can be loaded as an iFrame, or inline frame, within the browser. In an embodiment, the browser-rendered toolbar could be rendered as an Object within the browser&#39;s content display area, or by modifying the DOM tree associated with the loaded page. 
     In an embodiment, the user can determine where browser-rendered toolbar  310  is displayed. Such display may occur within browser  300  as illustrated in  FIG. 3 , or browser  300  can launch a separate window comprising the toolbar in the event the user prefers the helper application to be rendered separate from browser  300 , as illustrated in  FIG. 5 . 
     In an embodiment, alternative toolbar user interfaces may be substituted for that illustrated in  FIGS. 3 and 4 . In the embodiment illustrated in  FIG. 5 , a “skin” has been applied to toolbar  510 . Such a skin can be created by a user and saved to one or more centralized locations for subsequent access. By creating a skin, the user can customize both the appearance and content of toolbar  510  as toolbar  510  is rendered within browser content display area  530 . By way of example, without limitation, a customized toolbar interface may be created for a specific purpose, such as Bay Area Travel toolbar  510  illustrated in  FIG. 5 . In such an embodiment, the toolbar may contain links to the user&#39;s favorite local restaurant, an annotated interactive map of the San Francisco Bay area, and music by local artists, as well as user interface elements facilitating access to frequently used tools such as E-mail and search window  535 . 
     In an embodiment, the user interface customizations can be facilitated via a separate web site. Such a web site can permit users to drag and drop user interface elements corresponding to frequently used features and/or links onto a background image. In an embodiment, the background image and/or images associated with one or more of the user interface elements may be dynamic, rather than the static images used in conventional helper applications. The web site may also permit users to rearrange the user interface elements, and substitute different background images, thereby giving the user the ability to truly customize the helper application to the user&#39;s preferences. In an embodiment, the background image may be periodically updated, such as by a photo-sharing service. 
     In an embodiment, the skins created by a user can be shared with other users, and  FIG. 6  is a screen capture illustrating an exemplary user interface through which this can be accomplished. In the illustrated embodiment, browser  600  loads a toolbar skin selection and sharing site. Such a site can include, without limitation, the name of a skin  625 , a thumbnail  630  or other representation of the toolbar&#39;s appearance after the skin is applied, a link to a site through which the user can edit the skin  635 , and an indication of the user who created or shared a specific skin  610 . The toolbar skin selection and sharing site can also include access to an interface through which one or more stored skins can be deleted  640 , and an interface through which a user can grant other users access to one or more toolbar skins  615 . The toolbar skin selection and sharing site may further include a link which facilitates importing skins from traditional helper applications or from alternative sources  620 . In an embodiment, skins may be defined and/or dynamically updated using Outline Processor Markup Language (“OPML”), Really Simple Syndication (“RSS”), or other such subscription technology. Depending on the user&#39;s age, gender, location, interests, or other such profile information, the toolbar skin selection and sharing site can recommend additional skins that may be of interest to the user. 
       FIG. 7  is a block diagram illustrating an architecture through which a browser renderable toolbar can be distributed. In  FIG. 7 , browser  705  is running on device  700 . Browser  700  can access server-based preferences and skin storage  725  stored on central server  720 . Browser  705  can access such information through a variety of means, including public and private wired and/or wireless networks, which are illustrated in  FIG. 7  as Internet  710 . Browser  705  can transmit user identification information to central server  720 , thereby facilitating access to a specific user&#39;s preferences, skins, and other such information. Central server  720  can then create a set of browser interpretable commands  708 , which are transmitted to device  700 , and ultimately rendered by browser  705  as a toolbar. As described above, such browser interpretable commands can be configured using any of a number of languages, including, without limitation, XML, HTML, JAVAScript, VBScript, and Flash. As browser  705  accesses additional content, such as content provided by standard web server  730 , browser interpretable commands  708  are incorporated into browser  705 &#39;s display, thereby facilitating access to the toolbar. 
     While detailed and specific embodiments of the browser renderable toolbar have been described herein, it will be apparent to those skilled in the art that various changes and modifications can be made therein without departing from the spirit and scope of the browser renderable toolbar. Thus, it is intended that the present disclosure cover these modifications and variations provided they come within the scope of any appended claims and/or their equivalents.