The subject technology relates generally to computer-enabled Internet-accessible devices, namely web browser toolbars.
Internet users often revisit certain websites that have not been marked as a “favorite” or placed in the browsers list of bookmarks. While having the ability to save bookmarks to a browser's toolbar may create a convenient way to revisit favorite websites, many users tend to vary bookmarks on the toolbar according to need, as limited space is available. Continuously updating a toolbar to manage bookmarks that are no longer used, however, may become a time consuming process, and toolbars often become cluttered.
The subject technology provides a system and method for managing bookmark buttons on a toolbar. According to one aspect, the method includes storing an address and a visit count for each web page visited by a web browser. For each web page, the method further includes incrementing the respective visit count on each visit to the web page, and displaying a bookmark button is displayed on the toolbar for each web page having a visit count greater than a threshold value, wherein each bookmark button is operable to initiate a request by the web browser for the associated web page using the stored address for the associated web page. Each visit count may include a number of visits to a corresponding web page made over a predetermined period of time. In other aspects, the method may include removing from the toolbar a displayed bookmark button for a website having a visit count lower than websites for other displayed bookmark buttons when a number of bookmarks reaches a predefined number.
It is understood that other configurations of the subject technology will become readily apparent to those skilled in the art from the following detailed description, wherein various configurations of the subject technology are shown and described by way of illustration. As will be realized, the subject technology is capable of other and different configurations and its several details are capable of modification in various other respects, all without departing from the scope of the subject technology. Accordingly, the drawings and detailed description are to be regarded as illustrative in nature and not as restrictive.
A detailed description will be made with reference to the accompanying drawings:
The determination of the visit counts and generation and display of button 104 may be at the startup of web browser 100, or, in some cases, each time the visit count is updated. In one aspect, a bookmark button 104 may be generated after its respective website has been visited a number of times equal to or greater to a visit threshold value. For example, a bookmark button 104 may be generated after 10 visits. In another aspect, bookmark button 104 may be generated if the associated website was visited a predetermined number of times within a predetermine period of time. For example, the visit count may only keep track of visits to the website over the past day, several days, week, or the like. Visits that predate the period may not be counted, or may be reset. In this regard, a bookmark button 104 may not be generated, or removed from toolbar 102, for websites that may have once been highly viewed in a short period of time, but since have not been visited in a long time, or may never be visited again. In other aspects, the visit count may be incremented starting from a certain date and then reset (for example, to zero) after a predetermined period of time has expired.
Each time a website is visited via a URL being typed or placed into address bar 103 of web browser 100, the visit count for the corresponding bookmark button may be incremented by 1 visit, however, in some aspects, the number of visits may be incremented by other values. In one aspect, the visit count may be incremented by a significantly smaller amount when using a bookmark or bookmark button 104 to navigate to a website. For example, if a bookmark button 104 is used to access the website the visit count may only be incremented by 0.5 visits. To this end, the number of times a website is visited and/or displayed in response to a navigation request initiated from an associated button 104 may be given less weight than a number of times a website is visited and/or displayed in response to a navigation request made by other means (for example, by typing a web address in address bar 103). In some aspects, a visit count may not be incremented until a URL has been fixed in the address bar for a predetermined time (for example, three seconds).
Bookmark buttons 104 may also be positioned on toolbar 102 in a manner associated with the visit count. For example, one or more buttons 104 displayed on toolbar 102 may be arranged according to a number of times each associated website was displayed in content area 101 of browser 100. In one aspect, buttons 104 may be arranged on toolbar 102 in order of decreasing visits, from left to right. As the visit count corresponding to the website of a newer bookmark button overtakes the visit count of websites having bookmark buttons already on the toolbar, the newer button may be moved toward the left. In this regard, a bookmark button associated with the highest visit count may be positioned the farthest to the left. In another aspect, a browser may be configured to allow a maximum number of bookmark buttons (for example, seven). In this regard there may be one or more currently displayed buttons 104 and one or more empty (for example, non-visible) button spaces 105. A new bookmark button 104 may fill a space 105 when its associated website's visit count rises above the visit threshold.
A currently displayed bookmark button associated with a website having the lowest number of visits may be removed from the toolbar and replaced with a new bookmark button when the number of currently displayed bookmark buttons 104 has reached the maximum (see, for example,
Toolbar 102 may also include one or more default buttons 106 (depicted in
The menu may further include one or more options to remove or lock or “pin” the associated bookmark button. A locked, or “pinned”, bookmark button 202 (depicted in
A collective visit count of the visited websites, web pages, and/or domain, may be used to determine whether parent button 301 is displayed for multiple websites and/or pages. The system may determine, for example, that two or more web pages of a parent website 302 were displayed by the browser as a result of separate navigation requests not made from within the parent website. Parent button 301 may then be displayed on toolbar 102 to initiate a request for the associated parent page (302 or 303). The user may then navigate to the web pages responsible for generating the parent button by navigating through parent website 302. In another example, a stored address may be representative of the parent (302 or 303) if all pages were visited equally, or a number of times within a certain delta of each other, and the parent was visited one or more times. In some aspects, a parent threshold value may be included for the parent that may be used to determine whether a web page under the parent is worthy of its own bookmark button. A bookmark button 304 may be generated and displayed on the toolbar for a page 305 under a parent when its visit count meets or exceeds the parent threshold value.
As described previously, the system may be configured to limit the number of bookmark buttons displayed on toolbar 102 to a maximum limit. If, during the third process 403, the addition of a new button would cause the number of currently displayed buttons to be over the maximum limit, and the visit count for the web page corresponding to the new button is greater than the visit counts of the web pages represented by the other currently displayed buttons, then a currently displayed button corresponding to the web page with the lowest number of visit counts may be removed and replaced with the new button. The number of visit counts and number and position of corresponding buttons may be determined, and the corresponding buttons displayed, at the startup of the web browser, or, in some cases, each time a visit count is updated.
Web history, including web addresses and visit counts, may be stored and/or updated in a local memory storage 507 on device 100. Storage 507 may include a persistent memory storage, for example, a SQL database located on device 100. In another example, the storage may include formatted strings (for example, JSON) in one or more text files. In a further example, history and visit information may be stored on a data cloud, remote from device 100 (for example, a centralized database 504). In some aspects, device 501 and/or server 502 may refresh the visit count of one or more stored addresses after a predetermined time period (for example, one month), or discard visit data prior to a predetermined period (for example, purge all visit information prior to the last 30 days). In this regard, a bookmark button 104 may be removed from toolbar 102 if there has been no visits to its corresponding web address for a predetermined time. Accordingly, bookmarks buttons 104 may be automatically managed, not only on a number of visits to their associated websites, but also based on the frequency of those visits.
Processor 601 may be configured to execute code or instructions to perform the operations and functionality described herein, manage request flow and address mappings, and to perform calculations and generate commands. Processor 601 is configured to monitor and control the operation of the components in server 600. The processor may be a general-purpose microprocessor, a microcontroller, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a programmable logic device (PLD), a controller, a state machine, gated logic, discrete hardware components, or a combination of the foregoing. One or more sequences of instructions may be stored as firmware on a ROM within processor 601. Likewise, one or more sequences of instructions may be software stored and read from system memory 605, ROM 603, or received from a storage medium 607 (for example, via I/O interface 606). ROM 603, system memory 605, and storage medium 607 represent examples of machine or computer readable media on which instructions/code may be executable by processor 601. Machine or computer readable media may generally refer to any medium or media used to provide instructions to processor 601, including both volatile media, such as dynamic memory used for system memory 604 or for buffers within processor 601, and non-volatile media, such as electronic media, optical media, and magnetic media.
In some aspects, processor 601 is configured to communicate with one or more external devices (for example, via I/O interface 606). Processor 601 is further configured to read data stored in system memory 604 and/or storage medium 607 and to transfer the read data to the one or more external devices in response to a request from the one or more external devices. The read data may include one or more web pages and/or other software presentation to be rendered on the one or more external devices. The one or more external devices may include a computing system such as a personal computer, a server, a workstation, a laptop computer, PDA, smart phone, and the like.
In some aspects, system memory 604 represents volatile memory used to temporarily store data and information used to manage device 600. According to one aspect of the subject technology, system memory 604 is random access memory (RAM) such as double data rate (DDR) RAM. Other types of RAM also may be used to implement system memory 604. Memory 604 may be implemented using a single RAM module or multiple RAM modules. While system memory 604 is depicted as being part of device 600, those skilled in the art will recognize that system memory 604 may be separate from device 600 without departing from the scope of the subject technology. Alternatively, system memory 604 may be a non-volatile memory such as a magnetic disk, flash memory, peripheral SSD, and the like.
I/O interface 606 may be configured to be coupled to one or more external devices, to receive data from the one or more external devices and to send data to the one or more external devices. I/O interface 606 may include both electrical and physical connections for operably coupling I/O interface 606 to processor 601, for example, via the bus 602. I/O interface 606 is configured to communicate data, addresses, and control signals between the internal components attached to bus 602 (for example, processor 601) and one or more external devices (for example, a hard drive). I/O interface 606 may be configured to implement a standard interface, such as Serial-Attached SCSI (SAS), Fiber Channel interface, PCI Express (PCIe), SATA, USB, and the like. I/O interface 606 may be configured to implement only one interface. Alternatively, I/O interface 606 may be configured to implement multiple interfaces, which are individually selectable using a configuration parameter selected by a user or programmed at the time of assembly. I/O interface 606 may include one or more buffers for buffering transmissions between one or more external devices and bus 602 and/or the internal devices operably attached thereto.
Those of skill in the art would appreciate that the various illustrative blocks, modules, elements, components, methods, and algorithms described herein may be implemented as electronic hardware, computer software, or combinations of both. To illustrate this interchangeability of hardware and software, various illustrative blocks, modules, elements, components, methods, and algorithms have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application. Various components and blocks may be arranged differently (e.g., arranged in a different order, or partitioned in a different way) all without departing from the scope of the subject technology.
It is understood that the specific order or hierarchy of steps in the processes disclosed is an illustration of exemplary approaches. Based upon design preferences, it is understood that the specific order or hierarchy of steps in the processes may be rearranged. Some of the steps may be performed simultaneously. The accompanying method claims present elements of the various steps in a sample order, and are not meant to be limited to the specific order or hierarchy presented.
The previous description is provided to enable any person skilled in the art to practice the various aspects described herein. The previous description provides various examples of the subject technology, and the subject technology is not limited to these examples. Various modifications to these aspects will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other aspects. Thus, the claims are not intended to be limited to the aspects shown herein, but is to be accorded the full scope consistent with the language claims, wherein reference to an element in the singular is not intended to mean “one and only one” unless specifically so stated, but rather “one or more.” Unless specifically stated otherwise, the term “some” refers to one or more. Pronouns in the masculine (e.g., his) include the feminine and neuter gender (e.g., her and its) and vice versa. Headings and subheadings, if any, are used for convenience only and do not limit the invention.
The predicate words “configured to”, “operable to”, and “programmed to” do not imply any particular tangible or intangible modification of a subject, but, rather, are intended to be used interchangeably. For example, a processor configured to monitor and control an operation or a component may also mean the processor being programmed to monitor and control the operation or the processor being operable to monitor and control the operation. Likewise, a processor configured to execute code can be construed as a processor programmed to execute code or operable to execute code.
A phrase such as an “aspect” does not imply that such aspect is essential to the subject technology or that such aspect applies to all configurations of the subject technology. A disclosure relating to an aspect may apply to all configurations, or one or more configurations. An aspect may provide one or more examples. A phrase such as an aspect may refer to one or more aspects and vice versa. A phrase such as an “embodiment” does not imply that such embodiment is essential to the subject technology or that such embodiment applies to all configurations of the subject technology. A disclosure relating to an embodiment may apply to all embodiments, or one or more embodiments. An embodiment may provide one or more examples. A phrase such as an “embodiment” may refer to one or more embodiments and vice versa. A phrase such as a “configuration” does not imply that such configuration is essential to the subject technology or that such configuration applies to all configurations of the subject technology. A disclosure relating to a configuration may apply to all configurations, or one or more configurations. A configuration may provide one or more examples. A phrase such as a “configuration” may refer to one or more configurations and vice versa.
The word “exemplary” is used herein to mean “serving as an example or illustration.” Any aspect or design described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects or designs.
All structural and functional equivalents to the elements of the various aspects described throughout this disclosure that are known or later come to be known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the claims. Moreover, nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is explicitly recited in the claims. No claim element is to be construed under the provisions of 35 U.S.C. §112, sixth paragraph, unless the element is expressly recited using the phrase “means for” or, in the case of a method claim, the element is recited using the phrase “step for.” Furthermore, to the extent that the term “include,” “have,” or the like is used in the description or the claims, such term is intended to be inclusive in a manner similar to the term “comprise” as “comprise” is interpreted when employed as a transitional word in a claim.
This application is a continuation of U.S. patent application Ser. No. 13/236,607 entitled “System and Method for Managing Bookmark Buttons on a Browser Toolbar,” filed on Sep. 19, 2011, the disclosure of which is hereby incorporated by reference in its entirety for all purposes.
Number | Name | Date | Kind |
---|---|---|---|
5448691 | Motoyama | Sep 1995 | A |
6003046 | Nielsen | Dec 1999 | A |
6141010 | Hoyle | Oct 2000 | A |
6321228 | Crandall et al. | Nov 2001 | B1 |
6546393 | Khan | Apr 2003 | B1 |
6628314 | Hoyle | Sep 2003 | B1 |
6691106 | Sathyanarayan | Feb 2004 | B1 |
6718365 | Dutta | Apr 2004 | B1 |
6771290 | Hoyle | Aug 2004 | B1 |
7028261 | Smyth et al. | Apr 2006 | B2 |
7366996 | Hoyle | Apr 2008 | B2 |
7685537 | Hoyle | Mar 2010 | B2 |
7899829 | Malla | Mar 2011 | B1 |
20020078089 | Bade et al. | Jun 2002 | A1 |
20030063129 | Smyth et al. | Apr 2003 | A1 |
20030065706 | Smyth et al. | Apr 2003 | A1 |
20050005242 | Hoyle | Jan 2005 | A1 |
20060064411 | Gross et al. | Mar 2006 | A1 |
20060277488 | Cok et al. | Dec 2006 | A1 |
20080010142 | O'Brien et al. | Jan 2008 | A1 |
20080115047 | Petri | May 2008 | A1 |
20080288874 | Hoyle | Nov 2008 | A1 |
20090038006 | Traenkenschuh et al. | Feb 2009 | A1 |
20090044150 | Liu et al. | Feb 2009 | A1 |
20090171967 | Ceglowski | Jul 2009 | A1 |
20090265460 | Balasubramanian et al. | Oct 2009 | A1 |
20100114705 | Hoyle | May 2010 | A1 |
20100174606 | Hoyle | Jul 2010 | A1 |
20110061010 | Wasko | Mar 2011 | A1 |
20110161852 | Vainio et al. | Jun 2011 | A1 |
20110208582 | Hoyle | Aug 2011 | A1 |
20110291851 | Whisenant | Dec 2011 | A1 |
20110307738 | Hilerio et al. | Dec 2011 | A1 |
20110307794 | Hilerio et al. | Dec 2011 | A1 |
20110307810 | Hilerio et al. | Dec 2011 | A1 |
20110307811 | Kim et al. | Dec 2011 | A1 |
20110307812 | Hilerio et al. | Dec 2011 | A1 |
20110307880 | Hilerio et al. | Dec 2011 | A1 |
20110307883 | Hilerio et al. | Dec 2011 | A1 |
20110307946 | Hilerio et al. | Dec 2011 | A1 |
Number | Date | Country |
---|---|---|
2010101239 | Nov 2010 | AU |
WO 2007039477 | Apr 2007 | WO |
Entry |
---|
Ask search q=bookmark+button&qsrc=0&o=0&l=dir. |
Ask search qsrc=1 &o=0&l=dir&q=bookmark+button+toolb. |
Number | Date | Country | |
---|---|---|---|
Parent | 13236607 | Sep 2011 | US |
Child | 13245758 | US |