<<

US 2013 009 1418A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2013/0091418 A1 Gonzalez (43) Pub. Date: Apr. 11, 2013

(54) CROSS-BROWSER TOOLBAR AND METHOD Publication Classification THEREOF (51) Int. Cl. (71) Applicant: Visicom Media Inc., Brossard (CA) G06F 7/2 (2006.01) (52) U.S. Cl. (72) Inventor: Miguel Enrique Cepero Gonzalez, CPC ...... G06F 17/218 (2013.01) Brossard (CA) USPC ...... 71.5/234 (57) ABSTRACT (73) Assignee: VISICOMMEDIA INC., Brossard A tool configured to build a cross-browser toolbar is pro (CA) vided. The tool comprises a processor; and a memory coupled to the processor and configured to store at least instructions for execution of a wizard program by the processor, wherein (21) Appl. No.: 13/690,236 the wizard program causes to: receive an input identifying at least user interface elements and event handlers respective of the user interface elements, wherein the input further identi (22) Filed: Nov.30, 2012 fies at least two different types of a on which the toolbar can be executed; generate respective of the received O O input a toolbar render object, a script file, and at least one Related U.S. Application library for each type of web browser; and compile the (63) Continuation of application No. 12/270,421, filed on toolbar render object, the script file, and the least one toolbar Nov. 13, 2008, now Pat. No. 8,341,608. library into an installer file.

120-1

Installer Web File BrOWSer TOOlbar Builder installer File TOOlbar BrOWSer Libraries Patent Application Publication Apr. 11, 2013 Sheet 1 of 3 US 2013/009 1418 A1

Installer File Toolbar Builder Installer A File Web TOOlbar BrOWSer Libraries

FIG. 1

Hard drive

Web BrOWSer Instance

Toolbar Libraries

FIG. 2 Patent Application Publication Apr. 11, 2013 Sheet 2 of 3 US 2013/009 1418 A1

/ 300

TranSform TDO elements to DOM Specific elements

Map events from TDO to DOM Specific elements

DiscOnnect event handlers

FIG. 3 Patent Application Publication Apr. 11, 2013 Sheet 3 of 3 US 2013/009 1418 A1

HardDrive

IE Instance

Web BrOWSer Control

TOOlbar Libraries

A rendered TOOlbar

Mytoolbar.dll

FIG. 4 US 2013/009 1418 A1 Apr. 11, 2013

CROSS-BROWSER TOOL BAR AND METHOD 0009 Certain embodiments also include a method forgen THEREOF erating a cross-browser toolbar. The method comprises gen erating a toolbar render object defining at least user interface CROSS REFERENCE TO RELATED elements of the cross-browser toolbar; generating a scriptfile APPLICATIONS defining at least event handlers associated with the user inter face elements; generating toolbar libraries including at least 0001. This patent application is a continuation of patent application programming interfaces (APIs) and Script files application No. 12/270.421, now allowed, filed on Nov. 13, Supporting a specific web browser type; assigning a unique 2008, which is hereby incorporated by reference for all that it dynamic-link library (DLL) file with the toolbar libraries and contains. the script file; and compiling the toolbar render object, the script file, the toolbar libraries, and the DLL file into an TECHNICAL FIELD installer file adapted to enable the installation of the cross 0002 This invention generally relates to browser exten browser toolbar in the specific web browser type. sions. 0010 Certain embodiments further include a cross-plat form toolbar. The cross-platform toolbar comprises a toolbar BACKGROUND render object defining at least user interface elements of the cross-browser toolbar; a script file defining at least event 0003 Web browsers are software applications that enable handlers associated with the user interface elements; toolbar the viewing of information accessible on the WorldWideWeb libraries including at least application programming inter (or Web). At its most basic, the Web is a collection of docu ments written using programming languages that web brows faces (APIs) and Script files Supporting a specific web ers can interpret. Such languages include, for example, a browser type; and a unique dynamic-link library (DLL) file hypertext markup language (HTML), an eXtensible markup assigned with the toolbar libraries and the script file. language (XML), and the like. Microsoft (R), BRIEF DESCRIPTION OF THE DRAWINGS Mozilla R, (R), and R are just to name a few examples of web browsers. 0011. The subject matter that is regarded as the invention 0004 Browser extensions are applications such as plug is particularly pointed out and distinctly claimed in the claims ins or add-ons that are downloaded and installed on an indi at the conclusion of the specification. The foregoing and other vidual computing device on which a web browser is operat objects, features and advantages of the invention will be ing. The browser extensions are compiled separately for each apparent from the following detailed description taken in type of web browser. A prime example for a browser exten conjunction with the accompanying drawings. sion is a downloadable toolbar. When installed, a toolbar 0012 FIG. 1 is a diagram illustrating the process of creat allows users to customize their browsing experience. ing a cross-browser toolbar utilized in accordance with the 0005. The process of creating a downloadable toolbar principles of the invention. includes developing a Software application compatible with a 0013 FIG. 2 illustrates the files used for executing a cross specific browser type and storing an executable application in browser toolbar over a web browser instance. a web server. The software application embodying the toolbar 0014 FIG.3 is a flowchart describing the process of trans typically includes functional buttons, search windows, and lating a TDO to a browser-specific DOM at runtime as imple application programming interfaces (APIs) for other plug-ins mented in accordance with an embodiment of the invention. and interfaces. A user may download the executable applica 0015 FIG. 4 is a diagram useful for describing the process tion from a web server to a local computing device and run the of executing a toolbar over an Internet Explorer R. (IE) application thereon, causing the toolbar to be integrated in the browser as implemented in accordance with an embodiment web browser. of the invention. 0006. There are some disadvantages with the current pro cess of developing toolbars. Sucha process requires program DETAILED DESCRIPTION ming and compiling Software code for each type of web browser. Thus, a new version of the same toolbar should be 0016. It is important to note that the embodiments dis developed for each web browser's type. This is typically closed by the invention are only examples of the many advan performed by software developers who specialized in devel tageous uses of the innovative teachings herein. In general, oping toolbars. Thus, existing toolbars are proprietary and in statements made in the specification of the present applica most cases not extensible. tion do not necessarily limit any of the various claimed inven tions. Moreover, some statements may apply to some inven 0007. Therefore, it would be advantageous to provide an tive features but not to others. In general, unless otherwise automated solution for generating toolbars. It would be fur indicated, singular elements may be in plural and Vice versa ther advantageous to provide a solution for generating cross with no loss of generality. In the drawings, like numerals refer browser toolbars. to like parts through several views. 0017 FIG. 1 shows an exemplary diagram illustrating the SUMMARY process of creating a cross-browser toolbar implemented 0008 Certain embodiments include a method for render according to the principles of the invention. The process ing a cross-platform toolbar. The method comprises provid includes generating a toolbar which can be executed on any of ing a toolbar document object (TDO), wherein the TDO web browsers 120-1 through 120-N. The toolbar functional includes elements enabling cross-browser interoperability; ity and appearance are defined by one or more source files and translating, at runtime, the TDO to a specific-browser 110. In one embodiment, the source files 110 include one or (DOM) of a web browser type on more XML files that characterize user interface elements which the toolbar is being rendered. (e.g., buttons, menus, etc.) Script files that set the functionality US 2013/009 1418 A1 Apr. 11, 2013

of the user interface elements using event handlers. The web Generally, most types of browsers supporta DOM which is an browsers 120 are of different types and include, but are not API for HTML and XML documents. The DOM provides a limited to, Microsoft Internet Explorer R, Mozilla Firefox R, structural representation of the document, enabling modifi OperaR), Safari(R), and the like. cation its content and visual presentation. That is, a DOM 0018. Other files required for generating the cross connects web pages to Scripts or applications. browser toolbarare stored in toolbar libraries 130. The librar ies 130 contain at least files that provide low level APIs as well 0022. In an embodiment of the invention, the TDO has a as XML and script files to support the different types of tree representation where each node in the tree is a user browsers 120. A toolbar builder 140 generates toolbar interface element. These elements Support standard tags (e.g., installer files 150-1 though 150-N, each of which is targeted XUL tags) and special tags. The special tags are a set of tags to a different type of a web browser 120. For example, an designed to provide enhanced toolbar functions, referred to as installer file 150-1 may be installed and executed over an special functions. Examples for Such tags include, but are not Internet Explorer R browser while an installer file 150-N may limited to, a search-bar for providing a search engine input perform the same over a Firefox(R) browser. The toolbar field, a RSS button for accessing RSS feeds, a web inspector builder 140 creates a specific installer file 150 by selecting button for performing background anti-phishing checks, a files from the toolbar libraries 130 which are executable over widget menu popup providing a list of widgets, and so on. A a specific type of a browser 120 and assigning unique special tag may include a set of attributes allowing for cus dynamic-link library (DLL) files with the scripts in source tomizing a special function defined by the special tag. Such files 110 and relevant portions of the libraries 130. For attributes may include, but are not limited to, on-get-options, instance, to generate the installer file 150-1 only files in the Verifying-image, low-risk-image, high-risk-image, Verified libraries 130 executable over an Internet Explorer R browser image, white-list-image, black-list-image, no-rating-image, are selected. In addition, the toolbar builder 140 encapsulates on-get-options, on-add-widget, on-widget-done, on-remove these relevant files from the libraries 130, the source files 110 widget, on-get-prefpane, and so on. In one embodiment the and optionally a unique DLL file into a downloadable file. For special tags may be XML-based tags. The special tags are example, an installer file 150-N targeted to a FirefoxR) stored in the toolbar libraries 240. The set of special tags can browser may not include a DLL file. In another embodiment be extended by developers who may provide their own set of the toolbar builder 140 may further output update files (not tags and functions. shown) including new elements and/or fixes that do not exist 0023. In accordance with an embodiment of the invention, in previous versions of an already installed toolbar. one of the elements of a TDO is a widget which may be an 0019. In a preferred embodiment of the invention, the application or a control executed from a toolbar. A toolbar can toolbar builder 140 may be a wizard application that allows be pre-installed with a list of widgets or such widgets may be developing a toolbar without coding, writing or providing any added to the toolbar by dragging a widget from a central of the source files 110. In such embodimenta wizard executed repository and dropping the widget to the toolbar. Widgets by the toolbar builder 140 prompts the users to select user may include, but are not limited to, a media player, an online interface elements and event handlers of such elements game, an online interactive program, visual animations, and through a graphical user interface (GUI). Based on the user SO. O. selections the wizard generates the Source files. The user is also prompted to select the type of web browsers on which 0024 TDO and DOM are memory structures created at he/she would like to run the toolbar. Thereafter, the toolbar runtime in a local memory (of a computing device) allocated builder 140 creates the installer files 150, each of which for the execution of a browser. As mentioned above the execu includes the self-generated Source files and targeted to a dif tion of a toolbar generated in accordance with the principles ferent type of a browser. of the invention is allowed by translating the TDO to a 0020. Users can download the installer files 150 to their browser-specific DOM of a target browser at runtime. This computer's local hard drive and install, using an installation process is further illustrated using a flowchart 300 shown in program, the toolbar on their browsers 120. As shown in FIG. FIG. 3. 2 the installation program outputs a script file 210, a DLL file 0025. At S310, TDO elements are translated into one or 220, a toolbarrender object 230, and toolbar libraries 240 that more browser-specific DOM elements. For instance, when include portions of the libraries 130 relevant to the target targeting a HTML DOM (for Internet Explorer(R), a TDO browser. In one embodiment the script file 210, the DLL file toolbar button element is rendered by a HTML table, which 220 the toolbar render object 230, and the toolbar libraries contains specific table cell elements for a button's border, a 240 output by the installation program may be encrypted. It icon, label, and button's dropdown area. As another example, should be noted that the DLL file 220 and a toolbar render in a FirefoXCR browser, abutton element defined in the TDO is object 230 are dependent on the type of browser. As an rendered as a single XUL DOM element of type toolbarbut example, for Internet Explorer R, the DLL file 220 enables the ton. At S320, event handlers are mapped from events of the interaction with the toolbar at runtime and the toolbarrender TDO to events of the browser-specific DOM. The events may object 230 is a HTML render (i.e., capable of rendering be triggered by an input device (e.g., a mouse, a keyboard, HTML elements). In a Firefox(R) environment, the toolbar etc.). Step S320 is performed after rendering the browser render object 230 is an XML user interface language (XUL) specific DOM in order to increase the performance in cases of render (i.e., capable of rendering XUL elements) and the DLL complex user interfaces. This also allows tracking memory file 220 is a binary DLL that provides security features. management by determining which events are connected to 0021. In accordance with the embodiments disclosed ensure that such events are later properly disconnected, herein, the generated toolbar is based on a toolbar document thereby breaking circular dependencies resulting in memory object (TDO) having a structure similar to a standard docu leaks in browser-specific DOMs. At S330, when TDO ele ment object model (DOM) but with enhanced functionality. ments are discarded, circular dependencies and Script clo US 2013/009 1418 A1 Apr. 11, 2013

Sures on event handlers are disconnected. This ensures that contributed by the inventors to furthering the art, and are to be the memory can be properly reclaimed by a browser-specific construed as being without limitation to such specifically garbage collector. recited examples and conditions. 0026 FIG. 4 shows an exemplary diagram useful in 0031 All statements herein reciting principles, aspects, describing the process of executing a toolbar over an Internet and embodiments of the invention, as well as specific Explorer(R) (IE) browser implemented in accordance with an examples thereof, are intended to encompass both structural embodiment of the invention. The toolbar “my toolbar is and functional equivalents thereof. It is intended that such constructed using the toolbar builder 140 and after installa equivalents include both currently known equivalents as well tion a JavaScript file “my toolbar.js' 410, a DLL file “my tool as equivalents developed in the future, i.e., any elements bar.dll'420, a HTML render object 430 and as toolbar librar developed that perform the same function, regardless of struc ies 440 are stored in a local hard drive. ture. Other hardware, conventional and/or custom, may also 0027. At runtime, a DLL file 420 is loaded to an instance be included. 480 of an IE browser. The DLL 420 manages a web-browser What we claim is: control 450, a toolbar loader 460, and an API bridge 470. The 1. A tool configured to build a cross-browser toolbar, com control 450 hosts the TDO and allows rendering the toolbar prising: using the process described in detail above. The API bridge a processor; and 470 provides an interface for communicating with other soft a memory coupled to the processor and configured to store ware applications running on the local computing device. In at least instructions for execution of a wizard program by accordance with one embodiment, the toolbar loader 460 is the processor, wherein the wizard program causes the adapted to support a "chrome://’ protocol by providing a tool to: mechanism to enable “chrome://protocol functionality in an receive an input identifying at least user interface elements IE instance 480 that executes the toolbar. For example, this and event handlers respective of the user interface ele allows to chrome URLs look and perform as same as in a ments, wherein the input further identifies at least two FirefoxR browser, thereby achieving cross-browser interop different types of a web browser on which the toolbar erability. It should be appreciated by one of ordinary skill in can be executed; the art that the "chrome://protocol is a proprietary protocol generate respective of the received input a toolbarrendered of Mozilla FirefoxR) and is not supported by Internet object, a script file, and at least one toolbar library for Explorer(R) browsers. The toolbar load 460 is further adapted each type of web browser; and to retrieve information from the script file 410, the HTML compile the toolbarrendered object, the script file, and the render object 430 and the toolbar libraries 440 stored in the at least one toolbar library into an installer file. local hard drive. 2. The tool of claim 1, wherein the toolbar rendered object 0028. In accordance with one embodiment the cross defines the user interface elements of the cross-browser tool browser toolbar may be developed using asynchronous Java bar. Script and XML (AJAX) techniques while supporting script 3. The tool of claim 2, wherein the toolbar rendered object ing and programming languages including, for example, is configured to render at least any one of a hypertext markup XML, HTML and JavaScript. language (HTML) web page and an XML user interface 0029. The embodiment disclosed herein can be imple language (XUL) web page. mented in hardware, Software, firmware or any combinations 4. The tool of claim 1, wherein the script file defines event thereof. The Software may be implemented as an application handlers associated with the user interface elements. program tangibly embodied on a program storage unit or 5. The tool of claim 1, wherein the at least one toolbar computer readable medium. The application program may be library includes at least application programming interfaces uploaded to, and executed by, a machine comprising any (APIs) and script files supporting one type of a web browser Suitable architecture, for example a computer platform hav from the support types of web browsers. ing hardware such as one or more central processing units 6. The tool of claim 5, wherein the at least one toolbar (“CPUs), a random access memory (“RAM), and input/ library also include special tags defining special functions of output (“I/O”) interfaces. The computer platform may also the cross-browser toolbar, and wherein each of the special include an operating system and microinstruction code. The tags has a set of attributes for customizing a special function various processes and functions described herein may be defined by the special tag. either part of the microinstruction code or part of the appli 7. The tool of claim 6, wherein the wizard program is cation program, or any combination thereof, which may be further configured to assign a unique dynamic-link library executed by a CPU, whether or not such computer or proces (DLL) file to the at least one toolbar library and the script file sor is explicitly shown. depending on the type of web browser supported by the at 0030. It is to be further understood that, because some of least one toolbar library. the constituent system components and methods depicted in 8. The tool of claim 8, wherein the APIs include at least an the accompanying drawings are preferably implemented in API bridge that provides an interface for communicating with Software, the actual connections between the system compo other software applications executed on a local computing nents or the process function blocks may differ depending device. upon the manner in which the present invention is pro 9. The tool of claim 1, wherein at least one of the user grammed. Given the teachings herein, one of ordinary skill in interface elements is a widget, wherein the widget is any one the pertinent art will be able to contemplate these and similar of a software application and a control executed from the implementations or configurations of the present invention. toolbar. All examples and conditional language recited herein are 10. The tool of claim 1, wherein the type of the web intended for pedagogical purposes to aid the reader in under browser is any of a Microsoft Internet Explorer, a Mozilla standing the principles of the invention and the concepts Firefox, Safari, Chrome, and an Opera. US 2013/009 1418 A1 Apr. 11, 2013

11. A computer system configured to generate a toolbar 14. The computer system of claim 13, wherein the special document object (TDO) data structure, wherein the TDO data tag includes a set of attributes allowing for customizing the structure enables an execution of a toolbar over different enhanced toolbar function. 15. The computer system of claim 14, wherein the special types of web browsers, wherein the TDO data structure tag is a user defined tag. includes a plurality of nodes arranged in a tree representation, 16. The computer system of claim 11, wherein the user wherein each node of the plurality of nodes defines a user interface element is a widget, wherein the widget is any one of interface element having any one of a special tag and a stan a software application and a control executed from the tool dard tag. bar. 12. The computer system of claim 11, wherein the special 17. The computer system 16, wherein the TDO data struc ture is created at runtime and stored at a local memory of the tag provides an enhanced toolbar function. computing device. 13. The computer system of claim 12, wherein the 18. The computer system 16, wherein the TDO data struc enhanced toolbar function includes any one of a search-bar, ture is further translated to a specific-browser document a RSS button for accessing RSS feeds, a web inspector button object model (DOM) of a web browser type on which the for performing background anti-phishing checks, and a wid toolbar is being executed. get menu popup providing a list of widgets. k k k k k