US9270699B2 - Enhanced browsing with security scanning - Google Patents

Enhanced browsing with security scanning Download PDF

Info

Publication number
US9270699B2
US9270699B2 US14/329,861 US201414329861A US9270699B2 US 9270699 B2 US9270699 B2 US 9270699B2 US 201414329861 A US201414329861 A US 201414329861A US 9270699 B2 US9270699 B2 US 9270699B2
Authority
US
United States
Prior art keywords
content
window
user
links
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
US14/329,861
Other versions
US20150013009A1 (en
Inventor
Scott Milener
Wendell Brown
James Kelly
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cufer Asset Ltd LLC
Original Assignee
Cufer Asset Ltd LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US10/985,700 external-priority patent/US20060069618A1/en
Priority claimed from US11/264,418 external-priority patent/US8037527B2/en
Assigned to BT WEB SOLUTIONS, LLC reassignment BT WEB SOLUTIONS, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BROWSTER, INC.
Priority to US14/329,861 priority Critical patent/US9270699B2/en
Assigned to BT WEB SOLUTIONS, LLC reassignment BT WEB SOLUTIONS, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BROWSTER, INC.
Application filed by Cufer Asset Ltd LLC filed Critical Cufer Asset Ltd LLC
Publication of US20150013009A1 publication Critical patent/US20150013009A1/en
Assigned to CUFER ASSET LTD. L.L.C. reassignment CUFER ASSET LTD. L.L.C. MERGER (SEE DOCUMENT FOR DETAILS). Assignors: BT WEB SOLUTIONS, LLC
Priority to US15/047,775 priority patent/US9584539B2/en
Publication of US9270699B2 publication Critical patent/US9270699B2/en
Application granted granted Critical
Priority to US15/444,181 priority patent/US9942260B2/en
Priority to US15/949,992 priority patent/US10382471B2/en
Priority to US16/532,099 priority patent/US11122072B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • H04L67/2847
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5681Pre-fetching or pre-delivering data based on network characteristics

Definitions

  • This disclosure relates to the field of computer systems. More particularly, a method and apparatus are provided for improving the quality and efficiency of users' browsing experiences and reducing the dangers posed by malware that may be encountered while browsing.
  • a browser generally displays just a single page, which may include hyperlinks to any number of other pages or sites.
  • the browser does not allow the user to see what is on a linked page until he or she redirects the browser to that page (e.g., by selecting a hyperlink). Only then can the user determine whether that page contains anything of interest to her. If not, she must retrace her action to return to another possible branching point (e.g., by clicking a “back” button).
  • that starting point is a list of links to web sites or pages (e.g., at a search engine site) or a list of links to goods or services (e.g., at a retail or auction site)
  • a user may have to traverse a number of chains of linked pages, and continually return to the starting point, in the hope of finding content that more closely matches her interest.
  • users receive little assistance, if any, while navigating multiple chains of linked pages. For example, when a user browses through multiple chains from a page of search results provided by a search engine, she may come across pages that, while not fully matching her interest, may bear further examination if better pages are not found. Traditionally, she would have to remember how she reached that page (e.g., the sequence of links she selected to get there) or add a bookmark to her browser. Remembering sequences of links becomes more and more difficult as they (and her browsing session) get longer and longer. And, accumulating bookmarks that are of little or no interest makes bookmark management increasingly difficult.
  • content of linked pages may be retrieved before (e.g., prefetched) or when a link to that content (or an icon associated with the link) is moused-over or clicked on.
  • the retrieved content may be displayed within an enhanced browsing window positioned over the main browsing page.
  • a method and apparatus are provided for security scanning of electronic or digital content.
  • a document e.g., a web page, a word processing document, a list of electronic mail messages
  • a link to other content or another document is selected by a computing device, before a user clicks on the link to open the content.
  • the content is placed into a safe cache that prevents the content from adversely affecting the user's computing device.
  • the content is scanned and/or its behavior is analyzed to detect security threats and/or undesirable content (e.g., viruses, worms, scripts, adware, spyware, phishing attacks, buffer overflows, pornography).
  • Results of the analysis may be collected at a central server.
  • the link or an associated indicator may be configured to indicate whether a threat is present; more information may be provided as desired. A user may be provided with various options to ignore a threat, disable the link, etc.
  • prefetching of links and linked content is combined with security scanning to detect threats or undesired content before the content is loaded into an application and before a user even chooses to open the content.
  • a security threat within linked content may be dealt with before the content is ever opened or loaded.
  • Look-ahead security scanning may be combined with a method of enhanced browsing to enable prefetching of linked content before a user requests the content.
  • the content is scanned for threats and an enhanced browsing window may be constructed for the content to allow it to be quickly rendered when the user requests the content.
  • FIG. 1 is a block diagram depicting an enhanced browsing apparatus, in accordance with an embodiment of the present disclosure.
  • FIG. 2 depicts an enhanced browsing window, in accordance with an embodiment of the present disclosure.
  • FIG. 3 is a flowchart demonstrating a method of providing enhanced browsing, in accordance with an embodiment of the present disclosure.
  • FIG. 4 is a flowchart demonstrating a method of prefetching target content, in accordance with an embodiment of the present disclosure.
  • FIG. 5 depicts a method of using an enhanced browsing column or stripe, in accordance with an embodiment of the present disclosure.
  • FIG. 6 illustrates a navigation tree for facilitating a user's navigation of content that was browsed or searched, in accordance with an embodiment of the present disclosure.
  • FIG. 7 depicts an enhanced browsing window, in accordance with an alternative embodiment of the present disclosure.
  • FIG. 8 depicts illustrative icons for indicating the status of target content or target content retrieval, in accordance with an embodiment of the present disclosure.
  • FIG. 9 depicts a computing environment in which look-ahead security scanning may be performed in accordance with an embodiment of the present disclosure.
  • FIG. 10 is a flowchart demonstrating a method of performing look-ahead security, in accordance with an embodiment of the present disclosure.
  • a method and apparatus are provided for enhanced browsing of electronic data.
  • a user browses or navigates his browser to a first electronic page (e.g., web page, document, electronic mail message) that contains one or more links or references to other pages or other collections of content.
  • a first electronic page e.g., web page, document, electronic mail message
  • an indicator e.g., an icon
  • the enhanced browsing window contains actual content from the second page, such as HTML (HyperText Markup Language), not just an image (e.g., a .gif or .jpg image) of the content.
  • the content of the second page may be prefetched before the user chooses to preview it, in which case the enhanced browsing window can be displayed almost immediately when the user selects or hovers a cursor over the link to the second page.
  • the contents of the window may change as the user mouses-over other links, or separate enhanced browsing windows may be generated for each link.
  • a “link” that identifies or is associated with data that may be retrieved or prefetched may take any form—graphical, textual or other.
  • a link may therefore include any object (e.g., an icon) or information that embodies or is accompanied by a link (e.g., a hyperlink) or reference to other electronic data or content.
  • An apparatus for providing enhanced browsing may include various program modules, which may be written in software using any appropriate programming language, or may be coded in firmware.
  • An illustrative apparatus includes a graphical user interface for presenting the enhanced browsing window and controls associated with enhanced browsing, a cache for caching content for display in the window, and a fetcher or prefetcher for fetching the content.
  • the apparatus may also include one or more interfaces to servers storing ads for display in an enhanced browsing window and data describing users' viewing activity.
  • One such interface couples the enhanced browsing apparatus to a central server for facilitating enhanced browsing.
  • the apparatus may be constructed as a plug-in to an existing browser (e.g., Internet Explorer, Firefox), a plug-in to another application (e.g., Microsoft Outlook) or as a complete browser or other application.
  • the content of the second page displayed in an enhanced browsing window may be augmented with ads, particularly ads relevant to the content.
  • the content may be analyzed to determine a theme or nature of the second page or, if the link to the second page is part of a list of search results, the ads may be selected based on search criteria that yielded the search results.
  • ads retrieved as part of the second page's content may be replaced with different ads. Details of this enhanced browsing embodiment of the present disclosure are provided in a following section.
  • content of a page linked to a browsed web page (or other content) is prefetched, possibly for viewing in an enhanced browsing window.
  • Various methods or heuristics may be applied to determine which linked pages or content to fetch or prefetch.
  • a search engine e.g., google.com, yahoo.com
  • prefetching is done automatically for some or all of the linked pages or content (e.g., web pages or sites that may have information relevant to the user's search criteria).
  • the browser displays a list of links to goods or services offered for sale at a merchant or auction site (e.g., amazon.com, ebay.com)
  • prefetching of content may automatically begin with the linked items. Prefetching may be initiated as soon as the browser receives or displays the main browser page.
  • the prefetching may therefore coincide with the user's review of the page and/or a list of linked pages or links to other content.
  • that content and/or other content
  • Icons or other indicators may be associated with links and configured to indicate the status of the prefetching of content through the links.
  • a choice of what to prefetch may be heuristically determined based on the font size of a link, the link's location on the browser page, its position within a list of links, etc. Further details of this embodiment of the present disclosure for prefetching are provided in a following section.
  • prefetched content may be scanned for viruses, spyware, adware, trojan horses, pornography and/or other undesired content or code.
  • the content may be placed in a safe cache for purposes of scanning. If a threat or possible threat is detected, a user may be alerted and provided with any number of options regarding how to proceed (e.g., delete the content, ignore the warning, prevent access to the site or page, notify a central authority or other interested party). Details of this embodiment are described in a following section.
  • a mechanism for maintaining a user's ability to enjoy an enhanced browsing experience while scrolling through a list of links (e.g., hyperlinks).
  • a graphical stripe or column overlaps or is superimposed on the list.
  • the stripe may be arranged as (or adjacent to) a border or edge of an enhanced browsing window.
  • the list of links may extend multiple pages or screens, and the stripe is configured to extend as the list is scrolled into view.
  • the user may scroll through the list by sliding a user interface cursor along or within the stripe (e.g., up/down or left/right). While navigating within the stripe, content described by the links is previewed or displayed in an enhanced browsing window or a series of windows.
  • a user operates a mouse wheel or provides other control input (e.g., an arrow key, page up or page down key), while an enhanced browsing window is open with a first page of content, to quickly exchange the current window or contents of the window with content from another link in a series of links.
  • the mouse wheel is operated while a cursor is located proximate to (e.g., on top of, adjacent to) an icon or indicator associated with a link to the first page. When the scroll wheel is rotated, the cursor moves to the icon associated with the next link, and the page containing the links may also scroll.
  • the apparatus displays a graphical depiction of a user's navigation or viewing of content (e.g., web pages, documents, electronic mail messages).
  • content e.g., web pages, documents, electronic mail messages.
  • the depiction may be rendered as a vertical or horizontal tree, wherein each node corresponds to one item (e.g., web page, image, document) or one set of items.
  • a tree root is created when the user initiates a new search (e.g., on a search engine site or at a site offering a good or service) and a page of search results is displayed in the user's browser.
  • a new node in the tree is generated and connected to the previous node.
  • more and more nodes are added.
  • the user may click on a node and be taken back to the corresponding content. From there, he may choose to navigate a different path. Similarly, the user may quickly move to any other content represented in the tree by selecting the appropriate node.
  • the user may be able to mark a node by altering its appearance (e.g., color, size, pattern); this may facilitate the user's return to a particular page. Further details of this embodiment of the present disclosure are provided in a following section.
  • FIG. 1 depicts an apparatus for enhanced browsing of electronic data, according to one embodiment of the present disclosure.
  • the apparatus is configured as a plug-in or add-on to a web browser such as Internet Explorer by Microsoft Corporation, Firefox by the Mozilla Foundation, Netscape Communicator by Netscape Communications Corporation, etc.
  • the apparatus may be provided as part of a distinct application or browser, or as a plug-in or add-on to a different type of application (e.g., electronic mail, instant messaging, database).
  • target link may be used herein to refer to a link whose content is, or may be, selected for retrieval for display in an enhanced browsing window.
  • target content may be used to refer to content that is or should be retrieved for display, with or without prefetching.
  • Enhanced browsing apparatus 102 operates on virtually any type of computing device (e.g., computer, personal digital assistant, web-enabled telephone) and comprises user interface 104 , content prefetcher or fetcher 106 , cache(s) 108 , ad server interface 110 and optional central server interface 112 .
  • the apparatus is coupled to a host browser in a manner similar to other plug-ins.
  • Enhanced browsing apparatus 102 is coupled to computer systems or networks containing web sites, web pages, documents, electronic mail messages and/or other electronic data or content.
  • the apparatus may be coupled to these entities by any types of communication links, which may be shared (e.g., network) or dedicated, and wired or wireless.
  • apparatus 102 may be coupled to a central server, which may include or be coupled to a database or other collection of data for facilitating enhanced browsing, as described below.
  • Content accessed through enhanced browsing apparatus 102 may also, or instead, be stored on the same computing device as the apparatus.
  • User interface 104 is configured to build, display and manipulate an enhanced browsing window.
  • the user interface may also provide any number and type of controls to allow a user to navigate or manipulate content within such a window, such as buttons, icons, a toolbar, etc., and may also accept keyboard input (e.g., key sequences using the CTRL or ALT keys, up and down arrow keys, page up or page down keys).
  • the various controls may allow a user to initiate or terminate fetching or prefetching of target content, open or close an enhanced browsing window, navigate his or her browser to retrieved content (e.g., by directing the browser to a page displayed in an enhanced browsing window), fetch content linked to content displayed in an enhanced browsing window, replace one enhanced browsing window with another, replace the content displayed in an enhanced browsing window with other content, etc.
  • user interface 104 may provide controls, menus or other means that allow the user to customize the enhanced browsing apparatus or change how it operates.
  • User customization options may include: size or position of an enhanced browsing window, number of target links from which to fetch content at a time (e.g., none, all, ten, twenty), how to identify or prioritize target links, default action(s) to take in response to certain user activity (e.g., when the user clicks inside a window or on a link within the displayed target content), how long to delay opening, closing or changing an enhanced browsing window, how or where to display an icon or indicator for opening an enhanced browsing window, etc.
  • user interface 104 builds an enhanced browsing window when target content is retrieved, but keeps the window invisible until and unless the user actually indicates an interest in (e.g., mouses-over) the associated target link or an indicator (e.g., icon) associated with the link. The window is then made visible. Invisible windows may be stored in cache(s) 108 .
  • Content fetcher 106 is responsible for fetching or prefetching content from appropriate sources (e.g., web sites, databases, document repositories, electronic mail gateways) based on default criteria and/or a user's specified criteria. For example, content fetcher 106 may commence prefetching target content immediately after the browser loads or displays a page containing one or more target links, thereby taking advantage of communication bandwidth that is idle while a user examines the page. Any number of links on the browser page may be treated as target links. Content from a specific link may be fetched in response to a predetermined user input (e.g., an ALT-click or ALT-mouse-over of the link or an associated status indicator).
  • appropriate sources e.g., web sites, databases, document repositories, electronic mail gateways
  • content fetcher 106 may commence prefetching target content immediately after the browser loads or displays a page containing one or more target links, thereby taking advantage of communication bandwidth that is idle while a user examines the page. Any number of
  • content fetcher 106 may fetch or prefetch target content when a user expresses an interest in a link by mousing-over or otherwise indicating an interest in a target link or an indicator (e.g., icon) associated with a target link.
  • an indicator associated with a target link may be configured (e.g., by user interface 104 ) to indicate a status of the fetching or prefetching (e.g., commenced, in process, completed, aborted, broken link) and/or a status of the content (e.g., previously viewed, contains a virus, contains spyware, contains obscene material).
  • Content fetcher 106 and/or some other component of enhanced browser apparatus 102 may be configured to identify target links.
  • prefetch templates may be employed to identify target links in some web pages or other content. Briefly, a prefetch template is designed for a specific page (or set of pages) and indicates where on the page a target link (or set of target links, such as a list of search results) may be found. Alternatively, any list of links or set of links apparently arranged in a list format may be treated as target links.
  • target links are chosen (e.g., by the user, according to a default rule or template), they may be prioritized before the corresponding target content is retrieved.
  • Rules for prioritizing target links are discussed below, and may be based upon the order of the links in a list of search results, their position on the page on which they appear, their font size or some other characteristic.
  • user interface 104 Upon retrieval of the target content, user interface 104 and/or some other component of apparatus 102 constructs an enhanced browsing window for the content. As described in a following section, user interface 104 may be configured to display controls or indicators (e.g., icons) for indicating the status of content fetching or prefetching.
  • prefetching and prefetch status indication are not required for all embodiments of the present disclosure. Although prefetching content may speed up a user's browsing or previewing of content, other benefits of the present disclosure may be enjoyed without requiring content to be prefetched.
  • unwanted content e.g., spyware, viruses, pornography
  • Cache(s) 108 include one or more caches for storing target links, target content, prefetch templates, enhanced browsing windows, a user history (e.g., a sequence of sites browsed or previewed) and/or other data.
  • a cache used by enhanced browsing apparatus 102 is separate and distinct from any cache(s) maintained by the browser.
  • Cache(s) 108 need not be included in all embodiments of the present disclosure, or its functions may be performed by some other component of apparatus 102 .
  • target content when displayed in an enhanced browsing window, it may be accompanied by one or more advertisements.
  • the retrieval of ads is managed by ad server interface 110 .
  • the ad server interface interacts with any number of ad sources (e.g., advertisers, media organizations) and/or central server 120 .
  • ad server interface 110 may communicate with central server 120 to determine which ad(s) to retrieve.
  • the ad server interface may then contact the appropriate source to obtain the ad or retrieve it from the central server.
  • the same ads may be displayed in enhanced browsing windows opened for different target links, particularly for all target links appearing on one browser page.
  • Ads may be content-based, to match or reflect target content within an enhanced browsing window, or may be matched to a main browser page containing the associated target link. For example, if target links on the main browser page comprise a list of search results, the search terms that yielded the search results may be used to select an ad. Thus, ad selection may be made by apparatus 102 , central server 120 , some other entity (e.g., an ad source), or any combination of these components.
  • Ad server interface 110 may be optional in other embodiments of the present disclosure, or its functions may be performed by another component of apparatus 102 .
  • Central server 120 maintains a database or other collection of prefetch templates, user behavior (e.g., navigation activity or patterns), prefetch or prioritization heuristics, and/or other data.
  • the central server may collect, from users' enhanced browsing apparatuses, information regarding web pages (or other content) accessed by the users, what links in those pages were selected for browsing or previewing, the order in which they were browsed, etc.
  • This information may be used to help generate prefetch templates, to prioritize fetching or prefetching, and/or for other purposes. For example, by assembling such information on central server 120 from many users' enhanced browsing apparatuses, the most popular links within content viewed by those users can be determined and/or prioritized for prefetching. Some or all of this data may be replicated on, or shared with, enhanced browsing apparatus 102 .
  • Central server 120 may also be a source of ads and content for display in an enhanced browsing window.
  • the central server may be operated by an organization that provides enhanced browser apparatus 102 , or by a different organization.
  • Optional central server interface 112 communicates with central server 120 to access and share data with the central server, as described above.
  • the central server interface may forward to the central server information regarding a user's activity (e.g., sites visited, links clicked, search terms employed) and may retrieve information useful in identifying or prioritizing target links (e.g., prefetch templates, analyses of users' preferred links or content).
  • an enhanced browsing apparatus may include more or fewer components, or the functionality of the components described above may be distributed in a different fashion.
  • an enhanced browsing apparatus may also include a component for scanning target content for viruses, pornography, spyware, adware or other malware or material unsuitable for certain users.
  • One alternative embodiment of the present disclosure may be implemented without prefetching or using cache 108 .
  • a user browses a first page and mouses-over or hovers near a link to a second page or a control (e.g., icon) associated with the link
  • an enhanced browsing window may still be displayed with content from the second page, but the content may not be retrieved until the mouse-over.
  • the apparatus may make use of the browser's cache or another cache already available on the user's computing device.
  • FIG. 2 depicts an enhanced browsing window according to one embodiment of the present disclosure.
  • browser 200 e.g., Microsoft Internet Explorer
  • first page 202 which includes a list of links 204 (e.g., 204 a - 204 i ).
  • Links 204 are search results in this example, but in other implementations may comprise any types of links, to any type of content.
  • the content identified by or associated with links 204 may or may not be inter-related. For example, if the links comprise results of one search operation, as do links 204 in page 202 , their content may be considered inter-related.
  • Enhanced browsing window 210 is positioned so as to allow a user to see portions of links 204 .
  • window 210 may cover links 204 to a greater or lesser degree.
  • any or all of window 210 may be made fully or partially transparent, so that some or all of the content of browser page 202 is viewable even when window 210 is displayed.
  • enhanced browsing window 210 may be constructed and cached prior to being displayed.
  • the window when a user mouses-over the link (e.g., link 204 i ) corresponding to the content 212 of the enhanced browsing window, or a control (e.g., icon, indicator) associated with the link, the window is automatically displayed.
  • the size and/or position of window 210 may be adjustable by a user, but limits may be placed on the user's ability to re-size or re-position the window.
  • Ad frame 220 is also positioned within enhanced browsing window 210 .
  • the ad frame may be arranged in any position or along any edge of the window.
  • ads received along with or as part of content 212 from a location identified by link 204 c may be removed or replaced prior to display of the content within window 210 .
  • Content 212 may be reduced in font size to allow it to more fully or easily fit within window 210 , and/or scroll bars (e.g., scroll bar 214 ) may be provided to allow a user to scroll vertically and/or horizontally. If the user clicks (e.g., left-clicks) within window 210 , page 202 of browser 200 may be replaced by the page or content displayed in the enhanced browsing window. The user may be able to close window 210 by simply moving the cursor out of the enhanced browsing window (e.g., to somewhere within browser page 202 ) or taking other action (e.g., right-clicking within the enhanced browsing window).
  • scroll bars e.g., scroll bar 214
  • a selectable tab or drop-down menu 230 is positioned adjacent to, or within, enhanced browsing window 210 . Clicking on tab 230 opens a menu allowing a user to customize one or more features of the enhanced browsing window or apparatus (e.g., size of window 210 , how long the user must pause over a link before the window opens, degree of transparency).
  • menus or controls for customizing a user's enhanced browsing may be located elsewhere within enhanced browsing window 210 , or may be summoned with a particular command or user interface input.
  • a set of controls may be provided to allow a user to specify how the enhanced browsing apparatus should act when the user takes certain action (e.g., clicks on or mouses-over a link within an enhanced browsing window, clicks within an enhanced browsing window but not on a link, mouses-over a second target link while a first link's content is still being previewed).
  • buttons or controls may be provided with an enhanced browsing window to allow a user to specifically request the target content or target page to be loaded into a browser, to prefetch content or to take some other action.
  • a “hold” button may allow a user to specify that the enhanced browsing window should remain open on its current content regardless of subsequent mouse movements, perhaps until the user selects a “hold off” button or clicks inside or outside the window.
  • Another button or control may be provided to enable a user to immediately return to the results of the latest search he or she conducted. For example, every time the user initiates a search, a “Back to Search Results” button may be configured with the URL (Uniform Resource Locator) of the search results. Then, until the user initiates a new search, he or she can select the button to return (in his or her browser or an enhanced browsing window) to the latest results.
  • URL Uniform Resource Locator
  • FIG. 7 depicts an enhanced browsing window according to another embodiment of the present disclosure.
  • enhanced browser window 710 is employed to preview content within an electronic mail application (e.g., Microsoft Outlook).
  • Microsoft Outlook an electronic mail application
  • content identified by or associated with a link included in the message may be fetched or prefetched before a user selects the link.
  • content 712 within enhanced browsing window 710 comprises content retrieved from a location identified by link 704 .
  • the enhanced browsing window also includes ad frame 720 , which may present ads relevant to content 712 or message 702 .
  • an enhanced browsing window may be employed to preview content of electronic mail messages, such as messages listed or indexed in message folder window 706 .
  • FIG. 3 demonstrates a method for enhanced browsing, according to one embodiment of the present disclosure. This method may be employed with apparatus 102 of FIG. 1 and is thus implemented on a user's client computing device, which is equipped with a browser or similar application.
  • the user's browser is opened at a web page or other collection of content, which may be considered the “browser page” herein to differentiate it from another page or other target content displayed in an enhanced browsing window.
  • the enhanced browsing apparatus applies default or custom rules to locate a target link on the browser page. Any number of additional target links may also be identified. For example, the apparatus may automatically locate all links on the browser page and treat them as target links. Or, the apparatus may apply a prefetch template, customized for the browser page, to identify links that are most likely to be of interest to the user.
  • a prefetch template may be stored (e.g., cached) within the enhanced browsing apparatus, or may be stored on a central server for retrieval by the apparatus before or when the browser page is opened.
  • the template or other information for identifying (and/or prioritizing) target links may be retrieved from the same server that served the browser page, or may be received as part of the browser page.
  • the target content may include all or a portion of the web page, document, image or other data identified by the target link.
  • the target content may include HTML, XML or other markup language, but in this embodiment of the present disclosure is not just an image of the content.
  • the prefetched content will not be presented as “thumbnails” or other non-navigable images, which are often illegible.
  • One or more ads may also be retrieved, to display with the target content.
  • the ads may be retrieved from any suitable ad source, and may be selected based on the target content, the browser page, search terms entered by the user, the user's browsing history, or other information.
  • a target link or status indicator associated with the target link changes appearance (e.g., design, color, size, underlining, bold) to indicate when the target content has been fetched or prefetched.
  • a target link may first appear (in the browser page) in a first color (e.g., light blue), but then change to a different color (e.g., dark blue) after the target content has been fetched.
  • a first color e.g., light blue
  • a different color e.g., dark blue
  • a status indicator or icon associated with the target link changes appearance or is altered to indicate the status of the prefetching of content from the target link has changed (e.g., been initiated, completed, failed).
  • the content may be loaded almost immediately from the enhanced browsing apparatus' cache (or wherever else it was stored).
  • the user's browsing experience is enhanced even without using an enhanced browsing window to preview content.
  • an enhanced browsing window is constructed and populated with the target content and any ads that were retrieved to accompany the content.
  • the content may be resized or may retain its full size, in which case scroll bars may be provided for scrolling vertically and/or horizontally.
  • ads that were received as part of the target content may be retained, excised or replaced.
  • enhanced browser windows may be generated (but not displayed) for any number of the links.
  • enhanced browsing windows may initially be generated for any number of the target links, from zero to fifty. Windows may be generated for the remainder later (e.g., after the user starts previewing content).
  • the enhanced browsing window is cached without being displayed. By constructing the window before it needs to be displayed, the enhanced browsing window can be presented almost instantly when the user indicates an interest in the target link. In the method of FIG. 3 , a separate enhanced browsing window is constructed and cached for each target link whose content was prefetched. Thus, states 304 through 310 may be repeated for any number of target links.
  • the enhanced browsing apparatus detects a user mouse-over or other selection of the target link.
  • a user interface cursor e.g., mouse cursor, a cursor or selector controlled by the TAB key
  • a control e.g., icon, status indicator
  • a predetermined period of time e.g., one second
  • This time period may be adjustable by the user.
  • selection of the target link may be identified by the user's tabbing to the link and pausing for the necessary time period.
  • the enhanced browsing window is made visible.
  • the window is approximately 75% of the size of the user's browser, and may be positioned adjacent to (or overlapping) the target link or a list of links that includes the target link.
  • the screen cursor may be positioned within the enhanced browsing window, near (or over) the target link.
  • enhanced browsing may be extended to the target content so that the user can navigate the content or the enhanced browsing window. That is, one or more links within the target content may be treated as target links, in which case their associated content may be prefetched. Then, if the user mouses-over a target link in the target content, or a control (e.g., status indicator) associated with that link, another enhanced browsing window may be created to display the new target content. Or, the target content of the enhanced browsing window may be replaced with the new target content.
  • a control e.g., status indicator
  • the browser page may be replaced by the target content or the page containing the target content.
  • the same action may be taken if the user leaves the cursor motionless within the enhanced browsing window for a predetermined period of time (e.g., 5 seconds). If the user clicks on a link within the target content, the linked content may replace the target content within the enhanced browsing window or the user's browser may be directed to that content or page.
  • state 318 if the user moves the cursor out of the enhanced browsing window, it may close because it may be assumed that the user is no longer interested in viewing the target content. Or, right-clicking (clicking a mouse button other than the primary button) or executing some other command within the window (e.g., but not on a link) may cause it to close.
  • the window may disappear and be replaced with the enhanced browsing window constructed for the second target content (or the target content may be replaced by the second target content).
  • the cursor may be automatically moved to the next (or previous) link and the corresponding target content will be displayed in an enhanced browsing window.
  • the state of an enhanced browsing window may be retained for some period of time after it is closed. Then, if a link to the same content is moused-over or otherwise selected for enhanced browsing, the window may open with the same state (e.g., centered or scrolled to a portion of the content previously displayed in the window).
  • the enhanced browsing experience described herein differs significantly from a traditional “pop-up” within a web page.
  • Traditional pop-ups when selected, merely display information that was received with or as part of the web page.
  • an enhanced browsing window displays content from a different page or source, and that content may be navigable.
  • the enhanced browsing apparatus may be configured to suppress traditional pop-ups.
  • the illustrated method ends after state 318 .
  • the same or similar ads may accompany each set of target content.
  • the ads may change, however, if the user directs her browser to a different page, initiates a new search (with new search terms) in the browser page, or doesn't click on any of the ads. In the latter case, if a set of ads is presented a number of times and the user expresses no interest in them, another examination may be performed of the user's latest search criteria and/or the content of pages she has chosen to view, and a new set of ads may be selected for placement in an enhanced browsing window.
  • a user's enhanced browsing apparatus or window may be branded or customized by an organization that provides the enhanced browsing apparatus (e.g., a favored web site) or by some other organization.
  • an enhanced browsing window may be constructed with the provider's logo, with a link to the provider, with ads sponsored by the provider, etc.
  • the enhanced browsing apparatus is installed and operated at a central server.
  • a user navigates to the server to engage and employ the apparatus.
  • This implementation may be well suited for thin clients.
  • links may be identified within a web page or other browsable object (e.g., document, image, electronic mail message). Content from any number of links on the page (i.e., zero or more) may be retrieved.
  • a web page or other browsable object e.g., document, image, electronic mail message.
  • prefetching of content may be done in a default manner, or may be based on user-specified criteria and/or criteria customized for a particular web page or site.
  • content from links that are more popular or more likely to be selected by a user may be prefetched before (or instead of) content from links less likely to be selected by the user.
  • a prefetch template may be used to identify a set of links on a page.
  • a prefetch template may be designed for a specific web page or site, to identify target links (or recommended target links) by their location or position on the page. For example, lists of search results (e.g., from a search engine or merchant web site) may be located in various locations on different pages (e.g., in a single column on the left or right hand side of a page, in a two-column table), and prefetch templates for those pages would be designed accordingly.
  • Content described by links other than those identified by a prefetch template may also be prefetched, but the target links identified by the prefetch template may be awarded higher priority.
  • the default order of prefetching target content may match the order in which their links are posted on the page (or in a list of search results), or content for some or all target links may be prefetched simultaneously (e.g., in parallel).
  • Enhanced browsing apparatuses may maintain (or even generate) prefetch templates, or may retrieve them from a central server or other source. Thus, when a particular page is loaded into a browser, an enhanced browsing apparatus operating with the browser may quickly retrieve a prefetch template from the central server.
  • a prefetch template for a web page may comprise a list of target links on that page.
  • the list may be prioritized, and may be derived by observing any number of users' selection of links while browsing or viewing the page.
  • a central server may collect data regarding multiple users' browsing activity (e.g., pages visited, links selected), and distill the data to identify and/or prioritize links on web pages those users' visited.
  • all links on a page may be treated as target links by default, or all links within a list of search results.
  • Content from any number of target links may be prefetched in any order and/or in parallel with other links' content.
  • a link retrieved as part of the content associated with a target link may also be treated as a target link, in which case content that is multiple pages or multiple links removed from the current page (the current page to which a browser is open) may be prefetched without leaving the current page.
  • heuristics may be used to help identify and/or prioritize target links, in addition to or instead of using a prefetch template (e.g., for a page for which no prefetch template is available).
  • a set of heuristics may specify that links having certain characteristics or meeting certain criteria should be target links, or that target links should be prioritized based on those characteristics or criteria.
  • Illustrative characteristics include: the region of a page in which a link is located (e.g., center, top, left side), font size, link color, the number of links to the same content (e.g., the more links there are to a particular page of content, the higher priority it should receive), a link's proximity to an image or other notable content, etc.
  • a user may be able to select or de-select target links for prefetching.
  • the user may be able to enter one particular key sequence (e.g., ALT-B) or select one particular control or button within a user interface to instruct a content prefetcher to target one certain link, or all links, on a page, or some other key sequence (e.g., ALT-N) or control to prevent the apparatus from targeting a certain link or any links.
  • one particular key sequence e.g., ALT-B
  • select one particular control or button within a user interface to instruct a content prefetcher to target one certain link, or all links, on a page, or some other key sequence (e.g., ALT-N) or control to prevent the apparatus from targeting a certain link or any links.
  • a user may be able to train an enhanced browsing apparatus to identify target links.
  • the user may be able to select desired target links on a page (e.g., by drawing a box around them, by mousing-over or clicking on them), after which the apparatus memorizes the links for automatic identification the next time the user visits the page.
  • the user may first initiate a training mode (e.g., by activating a particular user interface control), then select the target links and disengage the training mode.
  • a user may be able to construct or customize a prefetch template, which may be useful if the user often visits a page for which the enhanced browsing apparatus does not have a template.
  • a user interface for the apparatus may provide controls allowing the user to construct the template by identifying locations of target links in the page, by specifying that all links are target links, by selecting individual links as target links, by specifying that certain links are not target links, by choosing characteristics for selecting target links, etc.
  • an enhanced browsing apparatus may collect a user's browsing or previewing (i.e., enhanced browsing) activity to help identify target links.
  • a user's browsing or previewing activity i.e., enhanced browsing activity to help identify target links.
  • the user's enhanced browsing apparatus may automatically treat such links as target links and prefetch their associated content.
  • the enhanced browsing apparatus may prioritize prefetching of the links' content accordingly.
  • Data accumulated by the apparatus may be shared with a central server in order to accumulate and analyze data for multiple users, which may then be distributed to their (and/or other users') enhanced browsing apparatuses to help identify or prioritize target links. For example, based on activity data collected from users who visited a particular web site, the central server may identify certain links (or links in a certain location of a page at that site) as being most popular. That information may be shared with users' apparatuses to make those links target links. In one implementation, however, users may be provided with an option to not share information regarding their browsing activity.
  • a centralized database for identifying and/or prioritizing target links may be maintained.
  • Individual enhanced browsing apparatuses may receive data from the database on periodic intervals, when a browser is opened (or opened to a particular page), or on some other schedule. For example, when a browser is directed to a particular page, the database may be accessed to retrieve pertinent data.
  • Similar data may be retrieved from web sites. This information may indicate which pages/links were most often selected by the web sites' visitors, the most popular order in which they were selected, etc. This information may be retrieved by a central server or by a user's enhanced browsing apparatus.
  • links may be chosen as target links, or target links may be prioritized for prefetching, based on a point system. For example, from information accumulated by the enhanced browsing apparatus or a central server, links on a web page may be assigned points based on their popularity (e.g., how often they were selected), the relevance of the associated content, or some other characteristic(s). For example, points may be awarded based on heuristics (e.g., font size, location of a link within a page). The more points awarded to a link, the more likely it is treated as a target link and/or the higher priority it may receive for prefetching.
  • heuristics e.g., font size, location of a link within a page
  • Prefetching is not limited to links present or visible in a single page.
  • a page displayed in a browser may be too long to view at once, and so some links on that page may be off-screen.
  • a list of links may span multiple pages, with each page linked to the next (e.g., using “previous” and “next” buttons). Therefore, in one method of prefetching content for enhanced browsing, links may be target links even if they are off-screen or on a page linked to the current page.
  • any number of pages that continue or are forward-linked to a current page may be prefetched, and/or links appearing on those pages.
  • the target link's appearance may be altered. For example, the link may be changed to a different color (e.g., gray, yellow) to alert a user that the link is not functional.
  • Prefetching may fail because a target link is broken or a “page not found” error is received, a necessary certificate or other security token is not available, or for various other reasons.
  • status indicators may be displayed in association with target links, to indicate the status of content fetching or prefetching, and/or the status of the content itself.
  • prefetched content or content to be prefetched, is scanned for viruses, obscene or pornographic material, other malware (e.g., spyware, adware), etc.
  • viruses e.g., spyware, adware
  • FIG. 4 demonstrates a method of prefetching electronic data or content, according to one embodiment of the present disclosure. As described above, prefetching may be performed in many different ways in other embodiments.
  • a user's browser is open to a web page or other electronic content (e.g., document, image, electronic mail message), which may be considered the “browser page” herein to differentiate it from a page or other target content displayed in an enhanced browsing window.
  • a web page or other electronic content e.g., document, image, electronic mail message
  • a set of data for identifying target links in the browser page may be retrieved from local or remote storage (e.g., from a central server).
  • the data may include a prefetch template, a list of specific links, heuristics, etc.
  • one or more target links are selected in a default manner (e.g., all links on the page) and/or using data retrieved in state 404 .
  • a default manner e.g., all links on the page
  • data retrieved in state 404 For example, if the page contains a relatively small number of links (e.g., five, ten), they may all be considered target links (and prefetching may begin immediately) without waiting for data designed to facilitate the identification of target links.
  • Some or all of the links are to pages or sites different from the browser page, and therefore will require prefetching of content from different locations than the browser page was received from.
  • the target links may be prioritized.
  • data for prioritizing target links may be retrieved separately or in conjunction with data for identifying target links.
  • Data for prioritizing target links may include information regarding the relative popularities of links on the page (e.g., from a central server, from the web site that provided the browser page), a recommended order of priority, heuristics, etc.
  • the target content is prefetched. If the target links were prioritized, their content may be prefetched in priority order. Additionally, content from multiple target links may be retrieved in parallel. The number of prefetch operations performed in parallel may depend upon the available communication bandwidth. For example, if the user has a broadband connection, more prefetches may be done in parallel than if the user has a dial-up connection.
  • the target content is retrieved as is.
  • the content is retrieved in its true form (e.g., HTML, XML), and is not simply converted into an image (e.g., a snapshot, a thumbnail) of the content.
  • the prefetched content may include the full content described by a target link or located at the specified location (e.g., URL or Uniform Resource Locator). Or, some of the content located at or retrieved from that location (e.g., an ad, an image) may be discarded.
  • a target link or located at the specified location e.g., URL or Uniform Resource Locator
  • state 412 it is determined whether prefetching should proceed to the next level (i.e., to links within prefetched content) or another page. If so, another page is selected, such as a page retrieved as target content in state 410 , and the method returns to state 404 . Otherwise, the method ends.
  • State 412 may be applied sometime after target content is retrieved. For example, after content is retrieved in state 410 , it may be cached until a user chooses to preview it in an enhanced browsing window. When this occurs, the method of FIG. 4 may be applied to the page or content being previewed.
  • identification of target links and/or prioritization of target links for prefetching may be dynamic, and depend upon a user's enhanced browsing activity. For example, if a user selects for previewing a first link in a particular position on a web page, it may be assumed that he or she will also want to preview content from links close to the first link. Thus, some prediction may be made to what content a viewer may wish to preview.
  • content may be prefetched from a pay-per-click or pay-for-performance ad (e.g., a textual ad, a banner, an image) without the prefetching counting as a “click.”
  • a pay-per-click or pay-for-performance ad e.g., a textual ad, a banner, an image
  • an advertisement or other type of content may register each user “click through” (or selection) of the ad, with each click through generating revenue to an entity that presented the ad.
  • content from the ad is prefetched like other content, but no “click through” is registered until the user actually selects the ad for browsing (or, in one alternative implementation, until he mouses-over the ad).
  • the URL or XML code used for the prefetching may include a tag, keyword or other indicator that the ad content is not being retrieved as part of a click through.
  • a normal “click through” of the ad may be initiated. This helps ensure that the ad revenue is correctly apportioned.
  • the content may be served from the prefetched version rather than awaiting the newly requested copy.
  • content is fetched when a user mouses-over an icon or other graphical object associated with a link to the content.
  • the content is not prefetched before the user expresses an interest in the link, it is fetched in reaction to the mouse-over.
  • a method and apparatus are provided for performing look-ahead security scanning or analysis of electronic content a user may access.
  • Performing look-ahead security may involve scanning the content for various types or forms of security threats.
  • security threat encompasses any content that may compromise or adversely affect a computing device or its use, but may also include content that a user of the device does not want to receive.
  • Security threats therefore include viruses, worms, trojan horses, spyware, adware, cookies, scripts, phishing attacks, buffer overflows, etc., as well as undesirable content such as pornography or advertisements.
  • a look-ahead security module may search for specific threats (e.g., known viruses or cross-site scripts), or may search generally for malicious code, malware or undesirable content. Any type of data or information may be analyzed or examined for security threats, including text, executable or interpretable code, graphics, and so on.
  • threats e.g., known viruses or cross-site scripts
  • Any type of data or information may be analyzed or examined for security threats, including text, executable or interpretable code, graphics, and so on.
  • content that is scanned may comprise target content being fetched or prefetched for display in an enhanced browsing window.
  • FIG. 9 illustrates a computing environment in which an implementation of this embodiment of the present disclosure may be operated.
  • client computing device 902 which may be a mobile, desktop or workstation computer, a personal digital assistant or other device capable of providing the user access to electronic content.
  • Content accessed on client device 902 may be retrieved from various sources 910 , and may include web pages, documents, graphics, scripts, applets, etc.
  • Client device 902 includes look-ahead security module 904 , one or more safe caches 906 and one or more applications 908 allowing a user to access content from sources 910 .
  • Illustrative applications include a browser, a word processing program, a spreadsheet program, a database management system, an electronic mail program, an instant messaging program, a graphics program, and so on.
  • look-ahead security module 904 detects a link displayed by the application to content offered by a content source 910 . Before a user clicks on or selects the link to access the content (in the same or a different application), security module 904 retrieves the content, places it in safe cache 906 and analyzes it to determine if it contains a security threat.
  • Safe cache 906 comprises data storage (e.g., memory, disk storage) that can be used to isolate the proactively retrieved content while it is scanned or analyzed by look-ahead security module 904 .
  • an executable or interpretable portion of the content e.g., an applet, a script
  • an application 908 can open or access the content. This may be done to observe its behavior and help determine whether the content comprises a security threat.
  • a safe cache is designed to prevent the content from altering or possibly even accessing memory or storage locations outside the safe cache, on client device 902 or elsewhere.
  • a virtual operating system, virtual computer or other construct may be implemented using safe cache 906 to emulate an environment in which the content would normally be opened.
  • Security module 904 can thus determine what type of input, output or other operation(s) the content is designed to perform. Its operation can be compared to known viruses, worms, trojan horses or other malicious code to determine if the content poses a threat.
  • a script, URL Uniform Resource Locator
  • data pattern or other code may alternatively be analyzed without executing or interpreting it within a safe cache.
  • a data, string or code pattern may be analyzed to determine if it may be intended to facilitate a buffer overflow.
  • a script or URL may be parsed to determine if it is part of a cross-site script or phishing attack.
  • look-ahead security module 904 may scan content retrieved from within client computing device 902 .
  • Security scanning or analysis may be performed by look-ahead security module 904 for content corresponding to any number of links within a document or other set of data opened by application 908 . Security threats within such content can therefore be detected and dealt with before the same (or a different) application opens or presents the content to the user.
  • look-ahead security module 904 can prevent the content from ever being able to infect or otherwise affect the client computing device. And, the look-ahead nature of the security module allows the user to be warned of possible security threats (e.g., content that appears to be malicious or undesirable but does not precisely match a known threat) even before he or she attempts to open or access the content.
  • possible security threats e.g., content that appears to be malicious or undesirable but does not precisely match a known threat
  • a link to content analyzed by security module 904 may be altered to indicate the status of the content. For example, one color or attribute (e.g., font, font size) may be used for the link before the content is analyzed. A different color or attribute may be applied after analysis, to indicate that the content contains a security threat, does not contain a security threat or may contain a threat (e.g., the analysis was inconclusive).
  • one color or attribute e.g., font, font size
  • a different color or attribute may be applied after analysis, to indicate that the content contains a security threat, does not contain a security threat or may contain a threat (e.g., the analysis was inconclusive).
  • an icon or indicator associated with the link may be altered, or different icons/indicators may be used, to indicate whether a security threat was detected.
  • This implementation may be applied with an embodiment of the present disclosure that provides the user with enhanced browsing, wherein the icon or indicator may be used to open fetched or prefetched content.
  • warning message or alert may be displayed to alert the user to the presence of a security threat within the content.
  • the lack of such an alert may indicate that the content is safe.
  • a warning message may identify a specific security threat (e.g., by providing the name of a detected virus) and/or may report the type of threat (e.g., virus, spyware, pornography).
  • a user may be presented with various options or actions to be taken after content is scanned. For example, a link to content containing a definite threat may be deleted or disabled to prevent it from being activated. Or, a threat may be ignored (thereby allowing the content to be opened), the document may be closed, the threat may be disabled or excised from the content, etc.
  • central server 920 may be employed to perform look-ahead security scanning and/or collect results of security scanning performed by client computing devices.
  • Central server 920 may perform look-ahead security scanning or analysis in addition to, or in place of, client device 902 .
  • client computing devices may be coupled to central server 920 , with some or all of them relying upon the central server to perform security scanning.
  • Look-ahead security module 924 may operate similarly to security module 904 of client device 902 , to proactively retrieve content for security scanning within a safe cache 926 .
  • central server 920 may perform look-ahead security scanning for thin clients or other devices that have low communication bandwidth connections, limited processing capability or other limitations.
  • look-ahead security module 924 of central server 920 may crawl or “spider” the Internet or another collection of content sources (e.g., an intranet, a local or wide area network) to retrieve content for security scanning.
  • security module 924 may comprise a search engine designed to search for virtually any type of security threat and/or undesirable content, without waiting for a user or user application to access or attempt to access the content.
  • Database 928 may be used to assemble various results, statistics or other metadata regarding security scanning performed by a client computing device and/or central server 920 .
  • results may be transmitted to database 928 .
  • Such results may identify the content in any suitable manner (e.g., by filename, Uniform Resource Identifier or URI), and indicate what security threats were found, if any.
  • Database 928 may therefore be consulted when a look-ahead security module operating on client computing device 902 or central server 920 identifies a link to content that should be scanned. If an identity of the content matches a result stored in the database, the stored results may be adopted instead of re-scanning the content. Any suitable means may be employed to match the identities of a current piece of content and content that was previously scanned or analyzed (e.g., name, URI, CRC, checksum, size).
  • Central server 920 may be operated by an organization that provides look-ahead security module 904 , by a content source, or some other entity.
  • look-ahead security scanning of any type of linked content may be performed on either or both a client computing device and a central server.
  • the scanning is performed before the content is opened by an application designed to provide a user access to the content (e.g., for viewing, for editing), and/or before the user even selects or expresses an interest in the link or the content.
  • a look-ahead security module may apply look-ahead security to any or all content linked to a document opened by an application.
  • Links and associated content may be prioritized for scanning based on location or order within the page, a location of linked content, type of content, etc.
  • FIG. 10 is a flowchart demonstrating a method of performing look-ahead security, according to one embodiment of the present disclosure.
  • security scanning or analysis may be performed locally at a client device and/or at a central server.
  • the client device may scan a first content object (e.g., a script, a web page) linked to a document opened in an application executing on the client, while the central server scans content linked to the first content object.
  • a first content object e.g., a script, a web page
  • an application executing on a user's client computing device opens a document (e.g., a word processing document, a list of electronic mail messages, a chat window, a web page, a spreadsheet) containing any number of links to electronic data or content.
  • a document e.g., a word processing document, a list of electronic mail messages, a chat window, a web page, a spreadsheet
  • the link may be a traditional HTML (HyperText Markup Language) hyperlink, or may comprise virtually any other type of link (e.g., script-based, flash-based, XML or Extensible Markup Language).
  • the linked content may comprise another document or some other type of content that can be accessed with a computing device, and may include static or dynamic text or graphics, executable or interpretable code, etc.
  • a link and its associated content are identified (e.g., by a look-ahead security module operating on the client device).
  • the link may be identified before a user clicks on the link or takes other action to open the associated content.
  • the content may be identified by filename, URI, path, location, the link or other means, and may be located within or external to the client device. As exemplified by a typical web page, the content may be offered by a source other than the source of the document containing the link to the content.
  • a security threat may be more likely to be found within content not controlled by the provider of the document. Therefore, links to content offered by the document provider may not be subjected to look-ahead security, or may receive lower priority than links to content from other sources.
  • links may be prioritized based on some estimate of risk or danger.
  • links to content from unknown providers or providers known to have previously offered content containing a security threat
  • a database maintained on a central server may be consulted to determine if a security threat was previously identified within the content.
  • the database may be maintained by a provider of the look-ahead security module or a third party (e.g., a content provider, a provider of other security related software).
  • a safe cache may be configured to allow the content to exhibit its normal behavior (e.g., within a virtual operating system or on a virtual desktop), but may prevent the content from actually altering memory, storage or other components of the computing device containing the safe cache.
  • the safe cache may be located on the user's client computing device, or may be located on a central server. Yet further, content from multiple links in the document may be analyzed for security threats, and some analysis may be performed on the client device, while other analysis is done on the central server.
  • the central server may proactively spider or crawl any number of content sources to retrieve and analyze content.
  • any or all of operations 1002 - 1006 may be omitted.
  • the safe cache is separate from any cache employed by the application that opened the document. This helps ensure that malicious content never has an opportunity to infect the client device.
  • the content when the content is opened for the user, it may be opened from the safe cache (e.g., rather than an application's cache), especially if the user chooses to ignore any warnings or alerts posted by the look-ahead security module. This may be done to prevent the content from loading or running any malicious code.
  • the safe cache e.g., rather than an application's cache
  • the content is scanned or analyzed within the safe cache.
  • the analysis may search the content for any type or types of security threats or undesirable components, and may therefore catch content that would otherwise damage or alter the user's client device, or that would be objectionable to the user if opened on the device.
  • multiple programs or modules may be invoked separately or in an integrated manner. For example, if the content is sequestered in a safe cache on the client computing device, scanning software included with a look-ahead security module may be invoked, but other security software on the client may also be invoked (e.g., an anti-virus program, a program for eradicating adware) or software may be imported from a central server to assist in the scanning. Similarly, if the safe cache is located on the central server, any security software available on the central server may be employed.
  • a third party tool or program may also be employed.
  • an anti-virus software provider's server may be contacted to learn of the latest viruses, worms or other threats.
  • a data pattern or code pattern indicative of a security threat may be retrieved from a third party and compared to content within a safe cache on the client computing device or the central server.
  • tools, utilities and other software for detecting security threats and undesirable content from virtually any provider may be applied to content that has been isolated within a safe cache.
  • the link to the content, or an associated icon/indicator may be configured or modified to reflect a result of the scanning.
  • some attribute of the link or an indicator placed near the link may be altered (e.g., color, size).
  • the link may be disabled (permanently or temporarily).
  • a window or dialog box may be opened to report the scan results, and may identify any specific threats that were identified (e.g., by name). The results may indicate that a security threat (or undesirable content) was or was not found, or that the scan was inconclusive.
  • a textual or graphical measure of risk may be provided.
  • Information regarding a detected threat may be-retrieved from a central server or a third party and reported to the user. Such information may include a level of risk, the threat's impact on the client device, etc.
  • results of the scan may be reported to a central security database.
  • Scan results may be collected to allow preemptory disabling of links to content previously determined to contain a threat, to track the activity of hackers, spammers and/or other threat sources, etc.
  • operation 1016 if the content is deemed safe (e.g., no threats detected, no serious threats detected), the method advances to operation 1020 . If a security threat was detected or the scan was inconclusive, the method continues with operation 1018 .
  • the user may be offered any number of options for proceeding.
  • Illustrative options include ignoring the danger (and allowing the content to be opened), quarantining the content, disabling the link, closing the document, opening the content in a safe mode (e.g., in a virtual desktop) that prevents the content from adversely altering the client computing device, excising the threat from the content and allowing the remainder to be opened, etc.
  • the method may end (e.g., if the user chooses to disable the link or close the document), may proceed to operation 1020 , may return to operation 1002 to open another document, may return to operation 1004 to select another link, etc.
  • the content is to be accessed.
  • the content may be free of security threats or the user may have chosen to ignore any threats.
  • the content may be opened in the same application that opened the original document, or in a different application.
  • the content may be copied from the safe cache into a cache or other memory controlled by the application that opens the content, or may be opened within the safe cache.
  • the method may end or may return to operation 1004 to select a link within the content or another link within the original document.
  • buttons or other indicators are displayed within a page of electronic data to indicate the status of content fetching or prefetching from target links within that page, and/or the status of the target content.
  • the indicators which may be considered “status indicators,” may comprise any type of object (e.g., an animated or static icon) that can embedded within electronic content and provide a visual and/or audio status indication.
  • a status indicator When configured to indicate content status, a status indicator may reveal whether a security threat was detected within the target content.
  • security threats may include viruses, spyware, adware, other malware, pornography, other types of obscene or inappropriate content, etc.
  • a status indicator may also, or instead, indicate the status of a target link or an electronic connection to a content location identified by the link. For example, a status indicator may reveal that a link is broken, that an electronic connection to the linked site or page has low bandwidth or is noisy, that a connection is fast or slow, or may provide some other information regarding the quality or status of the link or communication connection. Status indicators may be received as part of the web page or other content in which they are displayed. Alternatively, the indicators may be dynamically inserted by some script or code included in the web page, by a user interface configured to facilitate enhanced browsing (e.g., user interface 104 of FIG. 1 ), another component of an enhanced browsing apparatus, or by some other client application or browser plug-in.
  • Individual status indicators may be associated with each target link (or one indicator may be associated with multiple target links), and may comprise controls for taking some action relating to enhanced browsing. For example, left-clicking or mousing-over an indicator associated with a target link (with or without some other key input, such as an ALT key) may serve as a trigger for fetching, re-fetching or prefetching the corresponding target content and/or displaying an enhanced browsing window containing the content.
  • Some other action may open a menu or set of options for configuring an enhanced browsing experience (e.g., to turn prefetching on or off, adjust the timing with which an enhanced browsing window is opened or closed, choose the type of information to indicate with an indicator, configure user interface controls).
  • indicators are inserted when target links are identified, and may change appearance to indicate that prefetching of target content is initiated, completed, delayed, impossible, etc.
  • An indication that prefetching is complete may mean that the target content has been prefetched and is ready for display in an enhanced browsing window.
  • An indication of successful prefetching may inherently indicate that the content has been cached, or such status may be separately indicated.
  • Indications of prefetching failure may differ for different reasons for the failure (e.g., connection timed out, target content unavailable, broken link) or may be uniform and simply reveal that prefetching could not be completed.
  • a status indicator may indicate that prefetching is partially complete, and may even indicate how complete (e.g., by fraction or percentage).
  • Embodiments of the present disclosure may be implemented within a search result listing, a shopping site, electronic mail (web or client-based), online classified ads, job boards, blogs, news story listing, and virtually any other type of application or utility that involves collections of links. These implementations may therefore be configured for operation with browsers, electronic mail programs, news readers, search clients, word processing applications, spreadsheet programs, databases, etc.
  • a status indicator may be placed beside, above, below or in some other location that may readily indicate an association between the indicator and the associated link. Placement of status indicators may be configurable by users.
  • Indicators may be embedded into a web page via DHTML (Dynamic HyperText Markup Language), javaScript or some other programming or scripting language.
  • the indicators may become part of the layout of the page in which they appear, or may float over the browsing window and therefore not be part of the page.
  • Indicators need not always be visible. Whether a particular indicator is displayed may depend on the number of target links on a page, the type of information represented by the indicator, how the page is laid out, etc. For example, if a page comprises multiple frames with many links, indicators associated with some links may not appear until a cursor is moved into a particular frame. In one embodiment, a status indicator may not be displayed for a link if content cannot be prefetched from that link.
  • a status indicator associated with the corresponding target link may change appearance.
  • a status indicator may flash, blink, change color or intensity, change sound, changed design, exhibit motion, etc.
  • an indicator indicating a first status of the prefetching may be replaced by another indicator indicating a different status.
  • the status indicator associated with target content currently displayed in an enhanced. browsing window may be highlighted or otherwise marked to show that it is the current status indicator.
  • FIG. 8 demonstrates how status indicators for indicating prefetching and/or content status may appear in one embodiment of the present disclosure.
  • web page 802 is displayed by browser 800 , and includes target links 804 a - 804 d .
  • Individual indicators 814 a - 814 d are associated with the target links.
  • a status indicator comprises a rectangular icon, possibly pronounced of a miniature web page.
  • an icon Before prefetching of content for an associated target link commences, an icon may be plain, dim or opaque, as shown by indicator 814 c .
  • indicator 814 c When prefetching successfully completes, as shown by indicator 814 a , a lightning bolt, check mark or other affirmative symbol is added to the icon.
  • a status indicator (e.g., indicator 814 b ) may include an arrow or other symbol of activity. If a particular target link's content cannot be fetched (e.g., or prefetching times out), the associated status indicator may be marked with an “X”, a slash or other negative symbol, as illustrated by indicator 814 d.
  • a status indicator such as indicator 814 c may first appear when a target link is identified.
  • the indicator may retain the same appearance until prefetching succeeds (e.g., indicator 814 a ) or fails (e.g., indicator 814 d ).
  • indicator 814 b may not be employed, especially if a high-speed data connection is available, which would allow prefetching to be completed quickly.
  • content from a first target link is displayed when a user mouses-over or selects in some other manner an indicator associated with the first target link.
  • the user may then rotate a mouse scroll wheel or provide other input (e.g., press an arrow key) to display content fetched or prefetched from a next target link or previous target link, depending on the direction of rotation.
  • content from multiple target links may be viewed quickly, without requiring fine cursor movement.
  • the main browser page When a scroll wheel (or equivalent input) is used to move from one status indicator to another, the main browser page may be scrolled by the distance between the two status indicators, unless the page can no longer be scrolled in the corresponding direction. Regardless of whether the main browser page can be scrolled the same distance, the cursor used to mouse-over the status indicator may be repositioned to the next status indicator. A time delay may be imposed when a user scrolls from one status indicator to another, to help prevent from scrolling too far or to the wrong status indicator.
  • the cursor is automatically moved to the next, or previous, status indicator.
  • the web page in which the target links are displayed may also scroll (e.g., to keep the cursor in relatively the same location of the display screen).
  • the target links and associated status indicators need not be aligned linearly. If not linear in alignment, as the web page scrolls in one direction the cursor may be offset to place it over the next indicator.
  • an enhanced browsing window in which target content is displayed normally closes after some period of time when the user's cursor is outside the enhanced browsing window (e.g., when it is hovering over the associated status indicator), in this embodiment of the present disclosure, that behavior may be modified so that the window does not close while the cursor remains on (or near) an indicator. For example, until the cursor is no longer positioned above a status indicator, or some other action is taken, scrolling the mouse wheel may continue to cause content from different target links to be displayed (in the same or different enhanced browsing windows).
  • buttons may affect the user's enhanced browsing experience in similar or different ways. For example, pressing up and down arrow keys (or left and right arrow keys) while a mouse cursor is positioned within the enhanced browsing window may cause the displayed target content to scroll. Pressing those keys while the cursor is in the main browser page, however, may cause the cursor to move to the previous or next status indicator (and change the target content displayed in an enhanced browsing window).
  • pressing page-up and page-down keys or clicking appropriate controls e.g., “previous” and “next,” “forward” and “backward” while a mouse cursor is positioned within the enhanced browsing window may cause the displayed target content to be replaced by the content associated with the previous or next status indicator.
  • pressing page-up and page-down keys or clicking appropriate controls e.g., “previous” and “next,” “forward” and “backward” while a mouse cursor is positioned within the enhanced browsing window may cause the displayed target content to be replaced by the content associated with the previous or next status indicator.
  • Providing the same input while the cursor is positioned in the main browser page may cause the content of that page to scroll.
  • an enhanced browsing stripe or column is provided for facilitating enhanced browsing of target content identified by multiple links in a page. For example, when a list of search result links (e.g., from a search engine, from a merchant or auction site) is displayed in a browser, the enhanced browsing stripe may be overlaid or superimposed on the list.
  • search result links e.g., from a search engine, from a merchant or auction site
  • a user interface cursor may then be moved within the stripe and, as the cursor passes over or adjacent to a link, an enhanced browsing window may be opened to display the target content. Or, if an enhanced browsing window is already open, the displayed target content may change as the cursor reaches different links.
  • an enhanced browsing stripe or column may be horizontal, vertical, diagonal or even non-linear, so as to overlay or remain close to links in a browser page.
  • a stripe may be of any thickness (e.g., one-quarter inch, one centimeter), and may be transparent or semi-transparent (e.g., light gray) so as to allow a user to read or identify a link underneath the stripe.
  • the stripe When a list of links is I-irk presented (e.g., in a browser page), the stripe may or may not be automatically applied. If not, when a user mouses-over or selects a first target link in a list and an enhanced browsing window is displayed with the corresponding target content, the stripe may be presented at that time. The stripe may therefore appear adjacent to an enhanced browsing window or as one edge or border of the window.
  • stripe 230 is placed adjacent to the left edge of enhanced browsing window 210 , but only extends over the list of links 204 , not the full length of the window.
  • the stripe may extend the full length of the window in other implementations.
  • stripe 230 extends below the bottom edge of window 210 , so that it appears over all links 204 .
  • a user interface cursor e.g., mouse cursor 240 in FIG. 2
  • a user interface cursor may be moved to a position within the stripe and on top of or near the target link whose content is displayed within the window. This may make it easier for a user to quickly preview content from other links, by moving the cursor within the stripe to those links.
  • the stripe may be closed or removed if the cursor is moved (or clicked) outside of the stripe and an open enhanced browsing window. Alternatively, the cursor may be initially placed within the enhanced browsing window.
  • the web page or other content containing the list of links may be automatically scrolled to reveal additional links.
  • the stripe will automatically extend as the content is scrolled, for as long as additional links appear.
  • a stripe may extend even beyond the list of links, to allow a user to continue scrolling the web page (e.g., to the end of the page). If an enhanced browsing window is open when the web page is scrolled, the window may remain in the same location of the display device as scrolling continues.
  • An enhanced browsing stripe may be generated and maintained by a user interface or other component of an enhanced browsing apparatus.
  • FIG. 5 demonstrates a method of using an enhanced browsing stripe or column to facilitate enhanced browsing, according to one embodiment of the present disclosure.
  • a user's browser is opened at a web page or other electronic content (e.g., document, image, electronic mail message) that contains a list of search result links.
  • the web page may be considered the “browser page” herein to differentiate it from a page or other target content displayed in an enhanced browsing window.
  • target links are identified, including some or all of the search result links. Any or all links may be identified by default, a prefetch template may be applied, a list of most popular links may be used, etc. The links may be prioritized, and content identified by some or all target links is retrieved.
  • Enhanced browsing windows may be constructed (but not yet displayed) for target content for some or all of the target links.
  • all target content is retrieved, but not necessarily all at the same time (i.e., in parallel).
  • an enhanced browsing stripe is displayed on top of the list of search results.
  • the stripe may be displayed as soon as one or more target links' content is retrieved, may be displayed when a first enhanced browsing window is displayed, or may be displayed as soon as the target links are identified.
  • target content for the links is displayed in one or more enhanced browsing windows.
  • a first window may be opened when the user mouses-over a first target link. That window may remain open while the user moves the cursor, and other links' content may replace the first link's content in the window.
  • an enhanced browsing window may open when the user mouses-over a target link, and then close when the cursor leaves the link.
  • state 510 if the cursor is moved to the edge of the browser window and the list of search results extends to another page or screen, the browser page will be scrolled as needed (e.g., upward, to the lefty to bring other links onscreen.
  • the enhanced browsing stripe will extend or elongate as the page scrolls.
  • a method and apparatus are provided for facilitating a user's navigation or browsing of search results or some other collection of interrelated links to electronic data.
  • a graphical history navigation tree is rendered, wherein each node corresponds to a different web page or other set of data (e.g., documents, images, electronic mail messages).
  • the tree may be displayed anywhere within the user's display screen, such as within a window placed immediately below an enhanced browsing window (or immediately below a location at which an enhanced browsing window may be opened), along the left or right side of the display screen, etc.
  • a history navigation tree may start with a root representing a new set of search results or a new browsing session, and thereafter grow in any direction (e.g., from left to right, from top to bottom).
  • a new tree root may be placed when a new search is initiated, when a new browser window is opened, or anytime a user requests a new tree be started.
  • Execution of a new search may be detected by monitoring the web site or page a user is browsing. Initiation of a new browsing session may be assumed when a browser is opened. If the site the user is browsing employs a search engine and the user engages the engine, a root of a new history navigation tree may be placed at that time. Any previous history navigation trees may still appear in the same window, but may be scrolled off-screen as the current tree grows.
  • the user can quickly navigate to or preview content previously visited by selecting the appropriate node.
  • the user clicks e.g., left-clicks
  • the user's browser is opened to the corresponding content.
  • the user mouses-over a node e.g., for a predetermined period of time
  • the corresponding content may be opened for previewing in an enhanced browsing window.
  • an enhanced browsing apparatus's cache may store content corresponding to any number of nodes in the current history navigation tree, and/or previous trees.
  • the content may be retrieved from the target page or site at the time the user clicks on or mouses-over a node.
  • a node When the user clicks on or mouses-over a node corresponding to a particular web domain or site, a list of links visited at that domain may be displayed.
  • a node may represent a collection of web pages or content, not just a single document.
  • a user may be permitted to alter the appearance of a node. For example, if the user decides that a particular page warrants a closer examination if nothing more interesting or helpful is found, he may choose to change the node's color, size or other characteristic (e.g., make it blink, animate it) to mark it.
  • One particular marking may be applied to identify the node corresponding to content the user is currently browsing or previewing.
  • the user may be able to notate a node and/or search (e.g., to name the search) by selecting it (e.g., right-clicking) and entering his notes into a file that will be saved with the tree.
  • search e.g., to name the search
  • the appearance of a node or a link between nodes may be configured to reflect a security status of associated content. For example, a node corresponding to content that has been determined to contain a security threat may have a different color, shape size or other attribute than nodes associated with safe content.
  • a new search/browsing history navigation tree may be started for each new search.
  • this may simply result in a new branch being added to the current (or previous) tree.
  • a search/browsing history navigation tree may be generated and maintained by a user interface or other component of an enhanced browsing apparatus.
  • FIG. 6 depicts a search/browsing history navigation tree, according to one embodiment of the present disclosure.
  • Program code for generating such a tree may be implemented as a plug-in to an existing browser.
  • window 602 tree frame 604 and ad frame 606 .
  • the horizontal nature of window 602 makes the window suited for placement above or below an enhanced browsing window.
  • window 602 may be oriented vertically.
  • the history navigation tree displayed in tree frame 604 begins with root 610 , which, in this example, corresponds to a search for a used Honda automobile. This search may have returned any number of links to relevant content. Among those links, the user has so far browsed or previewed web pages or sites identified by two top-level links, corresponding to nodes 612 , 614 .
  • nodes As the user visited or previewed content linked to those pages, additional nodes were added to represent that content. As shown in FIG. 6 , any number of nodes may be notated. Such notations may be automatically extracted from HTML of the corresponding content, or may be specified by the user. logos of organizations associated with a node's content may be displayed in addition to (or instead of) descriptive text.
  • Window 602 is expanded in FIG. 6 to allow for closer inspection.
  • the window may be relatively narrow in height (when aligned horizontally) or width (when aligned vertically), on the order of 0.5 inches to 1.5 inches.
  • the visual history navigation tree allows a user to easily track his navigation and quickly jump from one node's content to another's. Because window 602 may remain open even after the user navigates away from the search results, he can quickly and easily return. Window 602 may include standard controls (e.g., buttons) to close, expand, minimize or otherwise manipulate the window.
  • standard controls e.g., buttons
  • a history navigation tree may be saved (e.g., to disk)
  • the user may open a history navigation tree window (e.g., using the normal browser drop-down menus), which may be automatically populated with the most recent tree.
  • Ads displayed in ad frame 606 may include ads relevant to the search associated with the tree in tree frame 604 , ads relevant to the specific node the user is at, pay-per-click sponsored ads, etc.
  • Either or both of tree frame 604 and ad frame 606 may include scroll bars (horizontal and/or vertical).
  • the program environment in which a present embodiment of the present disclosure is executed illustratively incorporates a general-purpose computer or a special purpose device such as a hand-held computer. Details of such devices (e.g., processor, memory, data storage, display) may be omitted for the sake of clarity.
  • Suitable computer-readable media may include volatile (e.g., RAM) and/or non-volatile (e.g., ROM, disk) memory, carrier waves and transmission media (e.g., copper wire, coaxial cable, fiber optic media).
  • carrier waves may take the form of electrical, electromagnetic or optical signals conveying digital data streams along a local network, a publicly accessible network such as the Internet or some other communication link.

Abstract

A method scans a second web page linked to a first web page being displayed by a browser in a browser window. The method identifies, in the first web page, a target link to the second web page. Prior to receiving a user selection of the target link, the method prefetches content from the second web page and loads it into a safe cache before receiving the user selection of the target link and before the content of the second web page is opened by an application configured to provide access to the content of the second web page. The method scans the prefetched content from the second web page for a security threat, within the safe cache, which is configured to prevent the prefetched content from altering a memory location or storage location external to the safe cache.

Description

RELATED APPLICATIONS
This application is a continuation of U.S. patent application Ser. No. 13/659,981, filed Oct. 25, 2012, now U.S. Pat. No. 8,959,630, which is a continuation of U.S. patent application Ser. No. 13/237,641, filed Sep. 20, 2011, now U.S. Pat. No. 8,327,440, which is a divisional of U.S. patent application Ser. No. 11/264,418, filed Nov. 1, 2005, now U.S. Pat. No. 8,037,527, which (1) is a continuation-in-part of U.S. patent application Ser. No. 10/985,700, filed Nov. 10, 2004, now abandoned, and (2) claims priority to U.S. Provisional Patent Application No. 60/625,891, filed Nov. 8, 2004. All of the foregoing patent applications are hereby incorporated herein by reference in their entireties.
BACKGROUND
This disclosure relates to the field of computer systems. More particularly, a method and apparatus are provided for improving the quality and efficiency of users' browsing experiences and reducing the dangers posed by malware that may be encountered while browsing.
Today's browsers provide users with substandard browsing, primarily because their focus is limited to a single web page at any given time. Specifically, a browser generally displays just a single page, which may include hyperlinks to any number of other pages or sites. The browser does not allow the user to see what is on a linked page until he or she redirects the browser to that page (e.g., by selecting a hyperlink). Only then can the user determine whether that page contains anything of interest to her. If not, she must retrace her action to return to another possible branching point (e.g., by clicking a “back” button).
This pattern—of selecting a link to go to a new page, reviewing its content, and possibly selecting a link on that page—may continue any number of levels deep, all of which must be retraced to return to a starting point. When that starting point is a list of links to web sites or pages (e.g., at a search engine site) or a list of links to goods or services (e.g., at a retail or auction site), a user may have to traverse a number of chains of linked pages, and continually return to the starting point, in the hope of finding content that more closely matches her interest.
In addition, when the user selects a link to navigate to a corresponding page, only then does the browser retrieve the content of that page. Depending on the bandwidth or type of communication link available to the user, and the status of the starting point and target web site (e.g., how congested the web server is), there is often a noticeable time lag before the target page is fully displayed. When the user accesses numerous pages, as is typical during a search session with a search engine or retail/auction site, the combined duration of the time lags can cause a significant amount of wasted time. A user wishing to quickly review several links or pages can become very frustrated with her browser's response time. And, if an error is encountered while trying to load a page, the user may have to try reloading it multiple times before she is successful or before she gives up.
Further, users receive little assistance, if any, while navigating multiple chains of linked pages. For example, when a user browses through multiple chains from a page of search results provided by a search engine, she may come across pages that, while not fully matching her interest, may bear further examination if better pages are not found. Traditionally, she would have to remember how she reached that page (e.g., the sequence of links she selected to get there) or add a bookmark to her browser. Remembering sequences of links becomes more and more difficult as they (and her browsing session) get longer and longer. And, accumulating bookmarks that are of little or no interest makes bookmark management increasingly difficult.
Yet further, in a method of enhanced browsing as described in U.S. patent application Ser. No. 10/985,700, content of linked pages may be retrieved before (e.g., prefetched) or when a link to that content (or an icon associated with the link) is moused-over or clicked on. The retrieved content may be displayed within an enhanced browsing window positioned over the main browsing page. With such enhanced browsing it would be helpful to indicate the status of the content retrieval to reveal, for example, whether retrieval has commenced or completed, whether retrieval is possible, whether a link is non-functioning, etc.
Also, the threat of (e.g., viruses, trojan horses, phishing attacks, worms, spyware, adware) and other electronic security threats continues to grow, but existing browsers do little to identify or prevent such threats from affecting a user's computer. Instead, separate programs (e.g., anti-virus software) are generally used to attempt to detect threatening content. However, these specialized programs typically scan content only after a user navigates to a page containing that content. Thus, the content is already loaded into the user's browser window before it is analyzed to determine if it contains anything that may be harmful or annoying. As a result, before it is scanned the content may already have a chance to generate a pop-up advertisement, replicate a worm, plant a cookie, modify the user's computer configuration, or have other undesirable effect.
SUMMARY
A method and apparatus are provided for security scanning of electronic or digital content. Within a document (e.g., a web page, a word processing document, a list of electronic mail messages), a link to other content or another document is selected by a computing device, before a user clicks on the link to open the content. The content is placed into a safe cache that prevents the content from adversely affecting the user's computing device.
The content is scanned and/or its behavior is analyzed to detect security threats and/or undesirable content (e.g., viruses, worms, scripts, adware, spyware, phishing attacks, buffer overflows, pornography). Results of the analysis may be collected at a central server. The link or an associated indicator may be configured to indicate whether a threat is present; more information may be provided as desired. A user may be provided with various options to ignore a threat, disable the link, etc.
Thus, in an embodiment of the present disclosure, prefetching of links and linked content is combined with security scanning to detect threats or undesired content before the content is loaded into an application and before a user even chooses to open the content. As a result, a security threat within linked content may be dealt with before the content is ever opened or loaded.
Look-ahead security scanning may be combined with a method of enhanced browsing to enable prefetching of linked content before a user requests the content. The content is scanned for threats and an enhanced browsing window may be constructed for the content to allow it to be quickly rendered when the user requests the content.
DESCRIPTION OF THE FIGURES
FIG. 1 is a block diagram depicting an enhanced browsing apparatus, in accordance with an embodiment of the present disclosure.
FIG. 2 depicts an enhanced browsing window, in accordance with an embodiment of the present disclosure.
FIG. 3 is a flowchart demonstrating a method of providing enhanced browsing, in accordance with an embodiment of the present disclosure.
FIG. 4 is a flowchart demonstrating a method of prefetching target content, in accordance with an embodiment of the present disclosure.
FIG. 5 depicts a method of using an enhanced browsing column or stripe, in accordance with an embodiment of the present disclosure.
FIG. 6 illustrates a navigation tree for facilitating a user's navigation of content that was browsed or searched, in accordance with an embodiment of the present disclosure.
FIG. 7 depicts an enhanced browsing window, in accordance with an alternative embodiment of the present disclosure.
FIG. 8 depicts illustrative icons for indicating the status of target content or target content retrieval, in accordance with an embodiment of the present disclosure.
FIG. 9 depicts a computing environment in which look-ahead security scanning may be performed in accordance with an embodiment of the present disclosure.
FIG. 10 is a flowchart demonstrating a method of performing look-ahead security, in accordance with an embodiment of the present disclosure.
DETAILED DESCRIPTION
The following description is presented to enable any person skilled in the art to make and use the invention, and is provided in the context of particular applications of the invention and their requirements. Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art and the general principles defined herein may be applied to other embodiments and applications without departing from the scope of the present invention. Thus, the present invention is not intended to be limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features disclosed herein.
Introduction
In one embodiment of the present disclosure, a method and apparatus are provided for enhanced browsing of electronic data. A user browses or navigates his browser to a first electronic page (e.g., web page, document, electronic mail message) that contains one or more links or references to other pages or other collections of content. When he selects (e.g., mouses-over or places a cursor over) a link to a second page or an indicator (e.g., an icon) associated with the link, an enhanced browsing window or frame containing content of the second page is displayed on top of or in front of the browser.
In this embodiment, the enhanced browsing window contains actual content from the second page, such as HTML (HyperText Markup Language), not just an image (e.g., a .gif or .jpg image) of the content. The content of the second page may be prefetched before the user chooses to preview it, in which case the enhanced browsing window can be displayed almost immediately when the user selects or hovers a cursor over the link to the second page. The contents of the window may change as the user mouses-over other links, or separate enhanced browsing windows may be generated for each link.
For purposes of describing embodiments of the present disclosure, a “link” that identifies or is associated with data that may be retrieved or prefetched may take any form—graphical, textual or other. A link may therefore include any object (e.g., an icon) or information that embodies or is accompanied by a link (e.g., a hyperlink) or reference to other electronic data or content.
An apparatus for providing enhanced browsing may include various program modules, which may be written in software using any appropriate programming language, or may be coded in firmware. An illustrative apparatus includes a graphical user interface for presenting the enhanced browsing window and controls associated with enhanced browsing, a cache for caching content for display in the window, and a fetcher or prefetcher for fetching the content. The apparatus may also include one or more interfaces to servers storing ads for display in an enhanced browsing window and data describing users' viewing activity. One such interface couples the enhanced browsing apparatus to a central server for facilitating enhanced browsing. The apparatus may be constructed as a plug-in to an existing browser (e.g., Internet Explorer, Firefox), a plug-in to another application (e.g., Microsoft Outlook) or as a complete browser or other application.
The content of the second page displayed in an enhanced browsing window may be augmented with ads, particularly ads relevant to the content. For example, the content may be analyzed to determine a theme or nature of the second page or, if the link to the second page is part of a list of search results, the ads may be selected based on search criteria that yielded the search results. In one implementation of this embodiment the present disclosure, ads retrieved as part of the second page's content may be replaced with different ads. Details of this enhanced browsing embodiment of the present disclosure are provided in a following section. In another embodiment of the present disclosure, content of a page linked to a browsed web page (or other content) is prefetched, possibly for viewing in an enhanced browsing window. Various methods or heuristics may be applied to determine which linked pages or content to fetch or prefetch. Illustratively, when the user's browser displays a page of search results from a search engine (e.g., google.com, yahoo.com), prefetching is done automatically for some or all of the linked pages or content (e.g., web pages or sites that may have information relevant to the user's search criteria). Similarly, when the browser displays a list of links to goods or services offered for sale at a merchant or auction site (e.g., amazon.com, ebay.com), prefetching of content may automatically begin with the linked items. Prefetching may be initiated as soon as the browser receives or displays the main browser page. The prefetching may therefore coincide with the user's review of the page and/or a list of linked pages or links to other content. Thus, before the user even selects a link to content that he would like to see, that content (and/or other content) may be prefetched. Icons or other indicators may be associated with links and configured to indicate the status of the prefetching of content through the links.
In implementations of this embodiment of the present disclosure, a choice of what to prefetch may be heuristically determined based on the font size of a link, the link's location on the browser page, its position within a list of links, etc. Further details of this embodiment of the present disclosure for prefetching are provided in a following section.
In another embodiment of the present disclosure, prefetched content (or content that is to be prefetched) may be scanned for viruses, spyware, adware, trojan horses, pornography and/or other undesired content or code. Illustratively, the content may be placed in a safe cache for purposes of scanning. If a threat or possible threat is detected, a user may be alerted and provided with any number of options regarding how to proceed (e.g., delete the content, ignore the warning, prevent access to the site or page, notify a central authority or other interested party). Details of this embodiment are described in a following section.
In yet another embodiment of the present disclosure, a mechanism is provided for maintaining a user's ability to enjoy an enhanced browsing experience while scrolling through a list of links (e.g., hyperlinks). In one implementation of this embodiment, a graphical stripe or column overlaps or is superimposed on the list. The stripe may be arranged as (or adjacent to) a border or edge of an enhanced browsing window. The list of links may extend multiple pages or screens, and the stripe is configured to extend as the list is scrolled into view. The user may scroll through the list by sliding a user interface cursor along or within the stripe (e.g., up/down or left/right). While navigating within the stripe, content described by the links is previewed or displayed in an enhanced browsing window or a series of windows.
Also while navigating within the stripe, as the cursor nears the boundary of the main browser in a list that is too long to fully display within the browser, the contents of the browser are scrolled. As the cursor crosses over or is aligned with a link, content from that link is displayed in an enhanced browsing window, or a separate window may be opened and closed for each link. Thus, in this embodiment of the present disclosure, the user can very quickly scan the content of some or all links in a list. Further details of this browsing stripe embodiment of the present disclosure are provided in a following section.
In an alternative implementation of this embodiment of the present disclosure, a user operates a mouse wheel or provides other control input (e.g., an arrow key, page up or page down key), while an enhanced browsing window is open with a first page of content, to quickly exchange the current window or contents of the window with content from another link in a series of links. Illustratively, the mouse wheel is operated while a cursor is located proximate to (e.g., on top of, adjacent to) an icon or indicator associated with a link to the first page. When the scroll wheel is rotated, the cursor moves to the icon associated with the next link, and the page containing the links may also scroll.
In another embodiment of the present disclosure, the apparatus displays a graphical depiction of a user's navigation or viewing of content (e.g., web pages, documents, electronic mail messages). The depiction may be rendered as a vertical or horizontal tree, wherein each node corresponds to one item (e.g., web page, image, document) or one set of items.
In one implementation of this embodiment, a tree root is created when the user initiates a new search (e.g., on a search engine site or at a site offering a good or service) and a page of search results is displayed in the user's browser. When the user navigates to a page linked to the current (e.g., search results) page, a new node in the tree is generated and connected to the previous node. As the user navigates deeper by selecting additional links, more and more nodes are added. To quickly move backward in his search, the user may click on a node and be taken back to the corresponding content. From there, he may choose to navigate a different path. Similarly, the user may quickly move to any other content represented in the tree by selecting the appropriate node.
The user may be able to mark a node by altering its appearance (e.g., color, size, pattern); this may facilitate the user's return to a particular page. Further details of this embodiment of the present disclosure are provided in a following section.
Enhanced Browsing
FIG. 1 depicts an apparatus for enhanced browsing of electronic data, according to one embodiment of the present disclosure. In the illustrated implementation, the apparatus is configured as a plug-in or add-on to a web browser such as Internet Explorer by Microsoft Corporation, Firefox by the Mozilla Foundation, Netscape Communicator by Netscape Communications Corporation, etc. In other implementations, the apparatus may be provided as part of a distinct application or browser, or as a plug-in or add-on to a different type of application (e.g., electronic mail, instant messaging, database).
The term “target link” may be used herein to refer to a link whose content is, or may be, selected for retrieval for display in an enhanced browsing window. Similarly, the term “target content” may be used to refer to content that is or should be retrieved for display, with or without prefetching.
Enhanced browsing apparatus 102 operates on virtually any type of computing device (e.g., computer, personal digital assistant, web-enabled telephone) and comprises user interface 104, content prefetcher or fetcher 106, cache(s) 108, ad server interface 110 and optional central server interface 112. The apparatus is coupled to a host browser in a manner similar to other plug-ins.
Enhanced browsing apparatus 102 is coupled to computer systems or networks containing web sites, web pages, documents, electronic mail messages and/or other electronic data or content. The apparatus may be coupled to these entities by any types of communication links, which may be shared (e.g., network) or dedicated, and wired or wireless. In particular, apparatus 102 may be coupled to a central server, which may include or be coupled to a database or other collection of data for facilitating enhanced browsing, as described below. Content accessed through enhanced browsing apparatus 102 may also, or instead, be stored on the same computing device as the apparatus.
User interface 104 is configured to build, display and manipulate an enhanced browsing window. The user interface may also provide any number and type of controls to allow a user to navigate or manipulate content within such a window, such as buttons, icons, a toolbar, etc., and may also accept keyboard input (e.g., key sequences using the CTRL or ALT keys, up and down arrow keys, page up or page down keys).
The various controls may allow a user to initiate or terminate fetching or prefetching of target content, open or close an enhanced browsing window, navigate his or her browser to retrieved content (e.g., by directing the browser to a page displayed in an enhanced browsing window), fetch content linked to content displayed in an enhanced browsing window, replace one enhanced browsing window with another, replace the content displayed in an enhanced browsing window with other content, etc.
In particular, user interface 104 may provide controls, menus or other means that allow the user to customize the enhanced browsing apparatus or change how it operates. User customization options may include: size or position of an enhanced browsing window, number of target links from which to fetch content at a time (e.g., none, all, ten, twenty), how to identify or prioritize target links, default action(s) to take in response to certain user activity (e.g., when the user clicks inside a window or on a link within the displayed target content), how long to delay opening, closing or changing an enhanced browsing window, how or where to display an icon or indicator for opening an enhanced browsing window, etc.
In one embodiment of the present disclosure, user interface 104 builds an enhanced browsing window when target content is retrieved, but keeps the window invisible until and unless the user actually indicates an interest in (e.g., mouses-over) the associated target link or an indicator (e.g., icon) associated with the link. The window is then made visible. Invisible windows may be stored in cache(s) 108.
Content fetcher 106 is responsible for fetching or prefetching content from appropriate sources (e.g., web sites, databases, document repositories, electronic mail gateways) based on default criteria and/or a user's specified criteria. For example, content fetcher 106 may commence prefetching target content immediately after the browser loads or displays a page containing one or more target links, thereby taking advantage of communication bandwidth that is idle while a user examines the page. Any number of links on the browser page may be treated as target links. Content from a specific link may be fetched in response to a predetermined user input (e.g., an ALT-click or ALT-mouse-over of the link or an associated status indicator).
In embodiments of the present disclosure described herein, content fetcher 106 may fetch or prefetch target content when a user expresses an interest in a link by mousing-over or otherwise indicating an interest in a target link or an indicator (e.g., icon) associated with a target link. As described in following sections, an indicator associated with a target link may be configured (e.g., by user interface 104) to indicate a status of the fetching or prefetching (e.g., commenced, in process, completed, aborted, broken link) and/or a status of the content (e.g., previously viewed, contains a virus, contains spyware, contains obscene material).
Content fetcher 106 and/or some other component of enhanced browser apparatus 102 (e.g., a separate target identification module) may be configured to identify target links. As described in the following section, prefetch templates may be employed to identify target links in some web pages or other content. Briefly, a prefetch template is designed for a specific page (or set of pages) and indicates where on the page a target link (or set of target links, such as a list of search results) may be found. Alternatively, any list of links or set of links apparently arranged in a list format may be treated as target links.
However target links are chosen (e.g., by the user, according to a default rule or template), they may be prioritized before the corresponding target content is retrieved. Rules for prioritizing target links are discussed below, and may be based upon the order of the links in a list of search results, their position on the page on which they appear, their font size or some other characteristic.
Depending on any priority assigned to a particular target link, the associated content is retrieved by content fetcher 106. Upon retrieval of the target content, user interface 104 and/or some other component of apparatus 102 constructs an enhanced browsing window for the content. As described in a following section, user interface 104 may be configured to display controls or indicators (e.g., icons) for indicating the status of content fetching or prefetching.
It should be noted that prefetching and prefetch status indication are not required for all embodiments of the present disclosure. Although prefetching content may speed up a user's browsing or previewing of content, other benefits of the present disclosure may be enjoyed without requiring content to be prefetched.
For example, it may be desirable to detect unwanted content (e.g., spyware, viruses, pornography) regardless of whether the content is being prefetched or just fetched. Or, a user may find it helpful to be reminded that he or she has already viewed the content, saved the target link to a favorites list, decided or indicated whether the content is or is not helpful or enjoyable, etc.
Cache(s) 108 include one or more caches for storing target links, target content, prefetch templates, enhanced browsing windows, a user history (e.g., a sequence of sites browsed or previewed) and/or other data. In the embodiment of the present disclosure depicted in FIG. 1, a cache used by enhanced browsing apparatus 102 is separate and distinct from any cache(s) maintained by the browser. Cache(s) 108 need not be included in all embodiments of the present disclosure, or its functions may be performed by some other component of apparatus 102.
In the illustrated embodiment of the present disclosure, when target content is displayed in an enhanced browsing window, it may be accompanied by one or more advertisements. The retrieval of ads is managed by ad server interface 110. The ad server interface interacts with any number of ad sources (e.g., advertisers, media organizations) and/or central server 120. For example, when an advertisement is needed, ad server interface 110 may communicate with central server 120 to determine which ad(s) to retrieve. The ad server interface may then contact the appropriate source to obtain the ad or retrieve it from the central server. The same ads may be displayed in enhanced browsing windows opened for different target links, particularly for all target links appearing on one browser page.
Ads may be content-based, to match or reflect target content within an enhanced browsing window, or may be matched to a main browser page containing the associated target link. For example, if target links on the main browser page comprise a list of search results, the search terms that yielded the search results may be used to select an ad. Thus, ad selection may be made by apparatus 102, central server 120, some other entity (e.g., an ad source), or any combination of these components. Ad server interface 110 may be optional in other embodiments of the present disclosure, or its functions may be performed by another component of apparatus 102.
Central server 120 maintains a database or other collection of prefetch templates, user behavior (e.g., navigation activity or patterns), prefetch or prioritization heuristics, and/or other data. In particular, the central server may collect, from users' enhanced browsing apparatuses, information regarding web pages (or other content) accessed by the users, what links in those pages were selected for browsing or previewing, the order in which they were browsed, etc.
This information may be used to help generate prefetch templates, to prioritize fetching or prefetching, and/or for other purposes. For example, by assembling such information on central server 120 from many users' enhanced browsing apparatuses, the most popular links within content viewed by those users can be determined and/or prioritized for prefetching. Some or all of this data may be replicated on, or shared with, enhanced browsing apparatus 102.
Central server 120 may also be a source of ads and content for display in an enhanced browsing window. The central server may be operated by an organization that provides enhanced browser apparatus 102, or by a different organization.
Optional central server interface 112 communicates with central server 120 to access and share data with the central server, as described above. Thus, the central server interface may forward to the central server information regarding a user's activity (e.g., sites visited, links clicked, search terms employed) and may retrieve information useful in identifying or prioritizing target links (e.g., prefetch templates, analyses of users' preferred links or content).
In other embodiments, an enhanced browsing apparatus may include more or fewer components, or the functionality of the components described above may be distributed in a different fashion. For example, and as described in a following section, an enhanced browsing apparatus may also include a component for scanning target content for viruses, pornography, spyware, adware or other malware or material unsuitable for certain users.
One alternative embodiment of the present disclosure may be implemented without prefetching or using cache 108. In this embodiment, when a user browses a first page and mouses-over or hovers near a link to a second page or a control (e.g., icon) associated with the link, an enhanced browsing window may still be displayed with content from the second page, but the content may not be retrieved until the mouse-over. And, the apparatus may make use of the browser's cache or another cache already available on the user's computing device.
FIG. 2 depicts an enhanced browsing window according to one embodiment of the present disclosure. In FIG. 2, browser 200 (e.g., Microsoft Internet Explorer) is open to a first page 202, which includes a list of links 204 (e.g., 204 a-204 i). Links 204 are search results in this example, but in other implementations may comprise any types of links, to any type of content. The content identified by or associated with links 204 may or may not be inter-related. For example, if the links comprise results of one search operation, as do links 204 in page 202, their content may be considered inter-related.
Enhanced browsing window 210 is positioned so as to allow a user to see portions of links 204. However, in other implementations, window 210 may cover links 204 to a greater or lesser degree. Alternatively, any or all of window 210 may be made fully or partially transparent, so that some or all of the content of browser page 202 is viewable even when window 210 is displayed. As described above, enhanced browsing window 210 may be constructed and cached prior to being displayed.
In the embodiment of the present disclosure depicted in FIG. 2, when a user mouses-over the link (e.g., link 204 i) corresponding to the content 212 of the enhanced browsing window, or a control (e.g., icon, indicator) associated with the link, the window is automatically displayed. The size and/or position of window 210 may be adjustable by a user, but limits may be placed on the user's ability to re-size or re-position the window.
Ad frame 220 is also positioned within enhanced browsing window 210. The ad frame may be arranged in any position or along any edge of the window. Illustratively, ads received along with or as part of content 212 from a location identified by link 204 c may be removed or replaced prior to display of the content within window 210.
Content 212 may be reduced in font size to allow it to more fully or easily fit within window 210, and/or scroll bars (e.g., scroll bar 214) may be provided to allow a user to scroll vertically and/or horizontally. If the user clicks (e.g., left-clicks) within window 210, page 202 of browser 200 may be replaced by the page or content displayed in the enhanced browsing window. The user may be able to close window 210 by simply moving the cursor out of the enhanced browsing window (e.g., to somewhere within browser page 202) or taking other action (e.g., right-clicking within the enhanced browsing window).
In one embodiment of the present disclosure, a selectable tab or drop-down menu 230 is positioned adjacent to, or within, enhanced browsing window 210. Clicking on tab 230 opens a menu allowing a user to customize one or more features of the enhanced browsing window or apparatus (e.g., size of window 210, how long the user must pause over a link before the window opens, degree of transparency). Alternatively, menus or controls for customizing a user's enhanced browsing may be located elsewhere within enhanced browsing window 210, or may be summoned with a particular command or user interface input.
In other embodiments of the present disclosure, other user interface controls or options may be provided. For example, a set of controls may be provided to allow a user to specify how the enhanced browsing apparatus should act when the user takes certain action (e.g., clicks on or mouses-over a link within an enhanced browsing window, clicks within an enhanced browsing window but not on a link, mouses-over a second target link while a first link's content is still being previewed).
In one implementation, buttons or controls (e.g., “load,” “prefetch content from all links”) may be provided with an enhanced browsing window to allow a user to specifically request the target content or target page to be loaded into a browser, to prefetch content or to take some other action. For example, a “hold” button may allow a user to specify that the enhanced browsing window should remain open on its current content regardless of subsequent mouse movements, perhaps until the user selects a “hold off” button or clicks inside or outside the window.
Another button or control may be provided to enable a user to immediately return to the results of the latest search he or she conducted. For example, every time the user initiates a search, a “Back to Search Results” button may be configured with the URL (Uniform Resource Locator) of the search results. Then, until the user initiates a new search, he or she can select the button to return (in his or her browser or an enhanced browsing window) to the latest results.
FIG. 7 depicts an enhanced browsing window according to another embodiment of the present disclosure. In FIG. 7, enhanced browser window 710 is employed to preview content within an electronic mail application (e.g., Microsoft Outlook).
In the illustrated implementation, when electronic mail message 702 is displayed, content identified by or associated with a link included in the message (e.g., link 704) may be fetched or prefetched before a user selects the link. Thus, content 712 within enhanced browsing window 710 comprises content retrieved from a location identified by link 704. The enhanced browsing window also includes ad frame 720, which may present ads relevant to content 712 or message 702.
In another implementation, an enhanced browsing window may be employed to preview content of electronic mail messages, such as messages listed or indexed in message folder window 706.
FIG. 3 demonstrates a method for enhanced browsing, according to one embodiment of the present disclosure. This method may be employed with apparatus 102 of FIG. 1 and is thus implemented on a user's client computing device, which is equipped with a browser or similar application.
In state 302, the user's browser is opened at a web page or other collection of content, which may be considered the “browser page” herein to differentiate it from another page or other target content displayed in an enhanced browsing window.
In state 304, the enhanced browsing apparatus applies default or custom rules to locate a target link on the browser page. Any number of additional target links may also be identified. For example, the apparatus may automatically locate all links on the browser page and treat them as target links. Or, the apparatus may apply a prefetch template, customized for the browser page, to identify links that are most likely to be of interest to the user.
A prefetch template may be stored (e.g., cached) within the enhanced browsing apparatus, or may be stored on a central server for retrieval by the apparatus before or when the browser page is opened. As yet another alternative, the template or other information for identifying (and/or prioritizing) target links may be retrieved from the same server that served the browser page, or may be received as part of the browser page.
In state 306, content associated with the target link is prefetched. The target content may include all or a portion of the web page, document, image or other data identified by the target link. Thus, the target content may include HTML, XML or other markup language, but in this embodiment of the present disclosure is not just an image of the content. As will be seen below, because the actual content is prefetched, it can be presented in a readable, understandable manner, and can be navigated (e.g., if it contains links). In particular, the prefetched content will not be presented as “thumbnails” or other non-navigable images, which are often illegible.
One or more ads may also be retrieved, to display with the target content. As described above, the ads may be retrieved from any suitable ad source, and may be selected based on the target content, the browser page, search terms entered by the user, the user's browsing history, or other information.
In one embodiment of the present disclosure, a target link or status indicator associated with the target link changes appearance (e.g., design, color, size, underlining, bold) to indicate when the target content has been fetched or prefetched. In one implementation, a target link may first appear (in the browser page) in a first color (e.g., light blue), but then change to a different color (e.g., dark blue) after the target content has been fetched. Multiple color palettes may be employed to allow link colors to be changed easily and rapidly.
In another implementation, described in a following section, a status indicator or icon associated with the target link changes appearance or is altered to indicate the status of the prefetching of content from the target link has changed (e.g., been initiated, completed, failed).
In yet another implementation, after content for a target link is prefetched, if the user navigates the browser to that link (i.e., by clicking on it), the content may be loaded almost immediately from the enhanced browsing apparatus' cache (or wherever else it was stored). Thus, the user's browsing experience is enhanced even without using an enhanced browsing window to preview content.
In state 308, an enhanced browsing window is constructed and populated with the target content and any ads that were retrieved to accompany the content. The content may be resized or may retain its full size, in which case scroll bars may be provided for scrolling vertically and/or horizontally. In different implementations of this embodiment of the present disclosure, ads that were received as part of the target content may be retained, excised or replaced.
In one implementation, when target content from multiple target links is prefetched, enhanced browser windows may be generated (but not displayed) for any number of the links. Thus, if content is prefetched for fifty target links, enhanced browsing windows may initially be generated for any number of the target links, from zero to fifty. Windows may be generated for the remainder later (e.g., after the user starts previewing content).
In state 310, the enhanced browsing window is cached without being displayed. By constructing the window before it needs to be displayed, the enhanced browsing window can be presented almost instantly when the user indicates an interest in the target link. In the method of FIG. 3, a separate enhanced browsing window is constructed and cached for each target link whose content was prefetched. Thus, states 304 through 310 may be repeated for any number of target links.
In state 312, the enhanced browsing apparatus detects a user mouse-over or other selection of the target link. When a user interface cursor (e.g., mouse cursor, a cursor or selector controlled by the TAB key) appears over or adjacent to the target link or a control (e.g., icon, status indicator) associated with the target link, a predetermined period of time (e.g., one second) may be required to pass before the window containing the target content will be switched to visible status. This time period may be adjustable by the user. Illustratively, if the user employs a keyboard for input (e.g., instead of a mouse), selection of the target link may be identified by the user's tabbing to the link and pausing for the necessary time period.
In state 314, when it is determined that the user has moused-over or otherwise selected or expressed an interest in the target link, the enhanced browsing window is made visible. In one implementation, the window is approximately 75% of the size of the user's browser, and may be positioned adjacent to (or overlapping) the target link or a list of links that includes the target link. The screen cursor may be positioned within the enhanced browsing window, near (or over) the target link.
In optional state 316, enhanced browsing may be extended to the target content so that the user can navigate the content or the enhanced browsing window. That is, one or more links within the target content may be treated as target links, in which case their associated content may be prefetched. Then, if the user mouses-over a target link in the target content, or a control (e.g., status indicator) associated with that link, another enhanced browsing window may be created to display the new target content. Or, the target content of the enhanced browsing window may be replaced with the new target content.
Illustratively, if the user clicks on the target link associated with the target content, or left-clicks (i.e., clicks the primary mouse button) within the target content (but not on a link), the browser page may be replaced by the target content or the page containing the target content. The same action may be taken if the user leaves the cursor motionless within the enhanced browsing window for a predetermined period of time (e.g., 5 seconds). If the user clicks on a link within the target content, the linked content may replace the target content within the enhanced browsing window or the user's browser may be directed to that content or page.
In state 318, if the user moves the cursor out of the enhanced browsing window, it may close because it may be assumed that the user is no longer interested in viewing the target content. Or, right-clicking (clicking a mouse button other than the primary button) or executing some other command within the window (e.g., but not on a link) may cause it to close.
If the user moves the cursor from the window to a second target link, the window may disappear and be replaced with the enhanced browsing window constructed for the second target content (or the target content may be replaced by the second target content). In one embodiment of the present disclosure, if the user rotates a scroll wheel or generates other predetermined input (e.g., up arrow or down arrow), the cursor may be automatically moved to the next (or previous) link and the corresponding target content will be displayed in an enhanced browsing window.
In one embodiment, the state of an enhanced browsing window may be retained for some period of time after it is closed. Then, if a link to the same content is moused-over or otherwise selected for enhanced browsing, the window may open with the same state (e.g., centered or scrolled to a portion of the content previously displayed in the window).
As one skilled in the art will recognize, the enhanced browsing experience described herein differs significantly from a traditional “pop-up” within a web page. Traditional pop-ups, when selected, merely display information that was received with or as part of the web page. In contrast, an enhanced browsing window displays content from a different page or source, and that content may be navigable. In one implementation, the enhanced browsing apparatus may be configured to suppress traditional pop-ups.
The illustrated method ends after state 318.
In one implementation of this embodiment of the present disclosure, as a user mouses-over different target links and new enhanced browsing windows are opened, the same or similar ads may accompany each set of target content. The ads may change, however, if the user directs her browser to a different page, initiates a new search (with new search terms) in the browser page, or doesn't click on any of the ads. In the latter case, if a set of ads is presented a number of times and the user expresses no interest in them, another examination may be performed of the user's latest search criteria and/or the content of pages she has chosen to view, and a new set of ads may be selected for placement in an enhanced browsing window.
In another implementation of this embodiment of the present disclosure, a user's enhanced browsing apparatus or window may be branded or customized by an organization that provides the enhanced browsing apparatus (e.g., a favored web site) or by some other organization. In this case, an enhanced browsing window may be constructed with the provider's logo, with a link to the provider, with ads sponsored by the provider, etc.
In yet another implementation, the enhanced browsing apparatus is installed and operated at a central server. In this implementation a user navigates to the server to engage and employ the apparatus. This implementation may be well suited for thin clients.
Prefetching Target Content
In one embodiment of the present disclosure, methods are provided for identifying and/or prioritizing target links for retrieval of associated target content. The links may be identified within a web page or other browsable object (e.g., document, image, electronic mail message). Content from any number of links on the page (i.e., zero or more) may be retrieved.
As described in the preceding section, prefetching of content may be done in a default manner, or may be based on user-specified criteria and/or criteria customized for a particular web page or site. Thus, content from links that are more popular or more likely to be selected by a user may be prefetched before (or instead of) content from links less likely to be selected by the user.
In one implementation of this embodiment of the present disclosure, a prefetch template may be used to identify a set of links on a page. A prefetch template may be designed for a specific web page or site, to identify target links (or recommended target links) by their location or position on the page. For example, lists of search results (e.g., from a search engine or merchant web site) may be located in various locations on different pages (e.g., in a single column on the left or right hand side of a page, in a two-column table), and prefetch templates for those pages would be designed accordingly.
Content described by links other than those identified by a prefetch template may also be prefetched, but the target links identified by the prefetch template may be awarded higher priority. Illustratively, the default order of prefetching target content may match the order in which their links are posted on the page (or in a list of search results), or content for some or all target links may be prefetched simultaneously (e.g., in parallel).
Enhanced browsing apparatuses may maintain (or even generate) prefetch templates, or may retrieve them from a central server or other source. Thus, when a particular page is loaded into a browser, an enhanced browsing apparatus operating with the browser may quickly retrieve a prefetch template from the central server.
In another implementation, a prefetch template for a web page (or other content) may comprise a list of target links on that page. The list may be prioritized, and may be derived by observing any number of users' selection of links while browsing or viewing the page. Thus, a central server may collect data regarding multiple users' browsing activity (e.g., pages visited, links selected), and distill the data to identify and/or prioritize links on web pages those users' visited.
In other implementations of this embodiment of the present disclosure, all links on a page may be treated as target links by default, or all links within a list of search results. Content from any number of target links may be prefetched in any order and/or in parallel with other links' content. Yet further, a link retrieved as part of the content associated with a target link may also be treated as a target link, in which case content that is multiple pages or multiple links removed from the current page (the current page to which a browser is open) may be prefetched without leaving the current page.
In yet other implementations, heuristics may be used to help identify and/or prioritize target links, in addition to or instead of using a prefetch template (e.g., for a page for which no prefetch template is available). For example, a set of heuristics may specify that links having certain characteristics or meeting certain criteria should be target links, or that target links should be prioritized based on those characteristics or criteria. Illustrative characteristics include: the region of a page in which a link is located (e.g., center, top, left side), font size, link color, the number of links to the same content (e.g., the more links there are to a particular page of content, the higher priority it should receive), a link's proximity to an image or other notable content, etc.
In another implementation of this embodiment a user may be able to select or de-select target links for prefetching. For example, the user may be able to enter one particular key sequence (e.g., ALT-B) or select one particular control or button within a user interface to instruct a content prefetcher to target one certain link, or all links, on a page, or some other key sequence (e.g., ALT-N) or control to prevent the apparatus from targeting a certain link or any links.
A user may be able to train an enhanced browsing apparatus to identify target links. For example, the user may be able to select desired target links on a page (e.g., by drawing a box around them, by mousing-over or clicking on them), after which the apparatus memorizes the links for automatic identification the next time the user visits the page. Illustratively, to train the apparatus the user may first initiate a training mode (e.g., by activating a particular user interface control), then select the target links and disengage the training mode.
In one implementation, a user may be able to construct or customize a prefetch template, which may be useful if the user often visits a page for which the enhanced browsing apparatus does not have a template. A user interface for the apparatus may provide controls allowing the user to construct the template by identifying locations of target links in the page, by specifying that all links are target links, by selecting individual links as target links, by specifying that certain links are not target links, by choosing characteristics for selecting target links, etc.
As described above, an enhanced browsing apparatus may collect a user's browsing or previewing (i.e., enhanced browsing) activity to help identify target links. Thus, if the user frequently selects or navigates to links arrayed along the right side of pages at a particular site, upon a subsequent visit to that site the user's enhanced browsing apparatus may automatically treat such links as target links and prefetch their associated content. Similarly, if the user selects links in a set of links in a particular order (e.g., top to bottom, bottom to top, left to right), the enhanced browsing apparatus may prioritize prefetching of the links' content accordingly.
Data accumulated by the apparatus may be shared with a central server in order to accumulate and analyze data for multiple users, which may then be distributed to their (and/or other users') enhanced browsing apparatuses to help identify or prioritize target links. For example, based on activity data collected from users who visited a particular web site, the central server may identify certain links (or links in a certain location of a page at that site) as being most popular. That information may be shared with users' apparatuses to make those links target links. In one implementation, however, users may be provided with an option to not share information regarding their browsing activity.
Thus, a centralized database for identifying and/or prioritizing target links may be maintained. Individual enhanced browsing apparatuses may receive data from the database on periodic intervals, when a browser is opened (or opened to a particular page), or on some other schedule. For example, when a browser is directed to a particular page, the database may be accessed to retrieve pertinent data.
In addition to, or instead of, collecting at a central database data regarding users' activity (e.g., what sites they visited, what links they clicked on), similar data may be retrieved from web sites. This information may indicate which pages/links were most often selected by the web sites' visitors, the most popular order in which they were selected, etc. This information may be retrieved by a central server or by a user's enhanced browsing apparatus.
In one method of prefetching, links may be chosen as target links, or target links may be prioritized for prefetching, based on a point system. For example, from information accumulated by the enhanced browsing apparatus or a central server, links on a web page may be assigned points based on their popularity (e.g., how often they were selected), the relevance of the associated content, or some other characteristic(s). For example, points may be awarded based on heuristics (e.g., font size, location of a link within a page). The more points awarded to a link, the more likely it is treated as a target link and/or the higher priority it may receive for prefetching.
Prefetching is not limited to links present or visible in a single page. For example, a page displayed in a browser may be too long to view at once, and so some links on that page may be off-screen. Further, and as can be seen with search result listings, a list of links may span multiple pages, with each page linked to the next (e.g., using “previous” and “next” buttons). Therefore, in one method of prefetching content for enhanced browsing, links may be target links even if they are off-screen or on a page linked to the current page. In general, any number of pages that continue or are forward-linked to a current page (e.g., by “next” buttons) may be prefetched, and/or links appearing on those pages.
In addition, when a web page or other content that contains links is prefetched or displayed in an enhanced browsing window, those links may be treated as target links. Thus, a user may use the enhanced browsing window to quickly navigate several levels or links away from the page to which his or her browser is currently opened.
In one method of prefetching, when target content cannot be retrieved, the target link's appearance may be altered. For example, the link may be changed to a different color (e.g., gray, yellow) to alert a user that the link is not functional. Prefetching may fail because a target link is broken or a “page not found” error is received, a necessary certificate or other security token is not available, or for various other reasons.
Alternatively, and as described in a following section, status indicators may be displayed in association with target links, to indicate the status of content fetching or prefetching, and/or the status of the content itself.
In one implementation of an embodiment of the present disclosure described in another following section, prefetched content, or content to be prefetched, is scanned for viruses, obscene or pornographic material, other malware (e.g., spyware, adware), etc.
FIG. 4 demonstrates a method of prefetching electronic data or content, according to one embodiment of the present disclosure. As described above, prefetching may be performed in many different ways in other embodiments.
In state 402, a user's browser is open to a web page or other electronic content (e.g., document, image, electronic mail message), which may be considered the “browser page” herein to differentiate it from a page or other target content displayed in an enhanced browsing window.
In state 404, a set of data for identifying target links in the browser page may be retrieved from local or remote storage (e.g., from a central server). The data may include a prefetch template, a list of specific links, heuristics, etc.
In state 406, one or more target links are selected in a default manner (e.g., all links on the page) and/or using data retrieved in state 404. For example, if the page contains a relatively small number of links (e.g., five, ten), they may all be considered target links (and prefetching may begin immediately) without waiting for data designed to facilitate the identification of target links. Some or all of the links are to pages or sites different from the browser page, and therefore will require prefetching of content from different locations than the browser page was received from.
In state 408, the target links may be prioritized. For example, data for prioritizing target links may be retrieved separately or in conjunction with data for identifying target links. Data for prioritizing target links may include information regarding the relative popularities of links on the page (e.g., from a central server, from the web site that provided the browser page), a recommended order of priority, heuristics, etc.
In state 410, the target content is prefetched. If the target links were prioritized, their content may be prefetched in priority order. Additionally, content from multiple target links may be retrieved in parallel. The number of prefetch operations performed in parallel may depend upon the available communication bandwidth. For example, if the user has a broadband connection, more prefetches may be done in parallel than if the user has a dial-up connection.
In this embodiment of the present disclosure, the target content is retrieved as is. In other words, the content is retrieved in its true form (e.g., HTML, XML), and is not simply converted into an image (e.g., a snapshot, a thumbnail) of the content.
Illustratively, the prefetched content may include the full content described by a target link or located at the specified location (e.g., URL or Uniform Resource Locator). Or, some of the content located at or retrieved from that location (e.g., an ad, an image) may be discarded.
In state 412, it is determined whether prefetching should proceed to the next level (i.e., to links within prefetched content) or another page. If so, another page is selected, such as a page retrieved as target content in state 410, and the method returns to state 404. Otherwise, the method ends.
State 412 may be applied sometime after target content is retrieved. For example, after content is retrieved in state 410, it may be cached until a user chooses to preview it in an enhanced browsing window. When this occurs, the method of FIG. 4 may be applied to the page or content being previewed.
In another method of prefetching, identification of target links and/or prioritization of target links for prefetching may be dynamic, and depend upon a user's enhanced browsing activity. For example, if a user selects for previewing a first link in a particular position on a web page, it may be assumed that he or she will also want to preview content from links close to the first link. Thus, some prediction may be made to what content a viewer may wish to preview.
In yet another implementation of this embodiment of the present disclosure, content may be prefetched from a pay-per-click or pay-for-performance ad (e.g., a textual ad, a banner, an image) without the prefetching counting as a “click.” In particular, an advertisement or other type of content may register each user “click through” (or selection) of the ad, with each click through generating revenue to an entity that presented the ad.
In this implementation, content from the ad is prefetched like other content, but no “click through” is registered until the user actually selects the ad for browsing (or, in one alternative implementation, until he mouses-over the ad). Illustratively, when the ad content is prefetched, the URL or XML code used for the prefetching may include a tag, keyword or other indicator that the ad content is not being retrieved as part of a click through. When the user selects the link (i.e., generates a click through), then a normal “click through” of the ad may be initiated. This helps ensure that the ad revenue is correctly apportioned. However, the content may be served from the prefetched version rather than awaiting the newly requested copy.
In another method of prefetching target content, content is fetched when a user mouses-over an icon or other graphical object associated with a link to the content. Thus, if the content is not prefetched before the user expresses an interest in the link, it is fetched in reaction to the mouse-over.
Look-Ahead Security Scanning
In one embodiment of the present disclosure, a method and apparatus are provided for performing look-ahead security scanning or analysis of electronic content a user may access. Performing look-ahead security may involve scanning the content for various types or forms of security threats.
The term “security threat” as used to describe implementations of this embodiment of the present disclosure, encompasses any content that may compromise or adversely affect a computing device or its use, but may also include content that a user of the device does not want to receive. Security threats therefore include viruses, worms, trojan horses, spyware, adware, cookies, scripts, phishing attacks, buffer overflows, etc., as well as undesirable content such as pornography or advertisements.
As described below, a look-ahead security module may search for specific threats (e.g., known viruses or cross-site scripts), or may search generally for malicious code, malware or undesirable content. Any type of data or information may be analyzed or examined for security threats, including text, executable or interpretable code, graphics, and so on.
An embodiment of the present disclosure described in this section may be implemented with an embodiment of the present disclosure described in another section. For example, content that is scanned may comprise target content being fetched or prefetched for display in an enhanced browsing window.
FIG. 9 illustrates a computing environment in which an implementation of this embodiment of the present disclosure may be operated. In this environment, a user operates client computing device 902, which may be a mobile, desktop or workstation computer, a personal digital assistant or other device capable of providing the user access to electronic content. Content accessed on client device 902 may be retrieved from various sources 910, and may include web pages, documents, graphics, scripts, applets, etc.
Client device 902 includes look-ahead security module 904, one or more safe caches 906 and one or more applications 908 allowing a user to access content from sources 910. Illustrative applications include a browser, a word processing program, a spreadsheet program, a database management system, an electronic mail program, an instant messaging program, a graphics program, and so on.
In one implementation, while application 908 executes, look-ahead security module 904 detects a link displayed by the application to content offered by a content source 910. Before a user clicks on or selects the link to access the content (in the same or a different application), security module 904 retrieves the content, places it in safe cache 906 and analyzes it to determine if it contains a security threat.
Safe cache 906 comprises data storage (e.g., memory, disk storage) that can be used to isolate the proactively retrieved content while it is scanned or analyzed by look-ahead security module 904. In one implementation, an executable or interpretable portion of the content (e.g., an applet, a script) may be executed or interpreted while the content is stored in the safe cache, and before an application 908 can open or access the content. This may be done to observe its behavior and help determine whether the content comprises a security threat.
More particularly, in one implementation a safe cache is designed to prevent the content from altering or possibly even accessing memory or storage locations outside the safe cache, on client device 902 or elsewhere. For example, a virtual operating system, virtual computer or other construct may be implemented using safe cache 906 to emulate an environment in which the content would normally be opened. Security module 904 can thus determine what type of input, output or other operation(s) the content is designed to perform. Its operation can be compared to known viruses, worms, trojan horses or other malicious code to determine if the content poses a threat.
A script, URL (Uniform Resource Locator), data pattern or other code may alternatively be analyzed without executing or interpreting it within a safe cache. For example, a data, string or code pattern may be analyzed to determine if it may be intended to facilitate a buffer overflow. A script or URL may be parsed to determine if it is part of a cross-site script or phishing attack.
Although the security module may primarily analyze content retrieved from sources external to the client computing device, in other implementations look-ahead security module 904 may scan content retrieved from within client computing device 902.
Security scanning or analysis may be performed by look-ahead security module 904 for content corresponding to any number of links within a document or other set of data opened by application 908. Security threats within such content can therefore be detected and dealt with before the same (or a different) application opens or presents the content to the user.
Unlike some traditional threat-detection software, look-ahead security module 904 can prevent the content from ever being able to infect or otherwise affect the client computing device. And, the look-ahead nature of the security module allows the user to be warned of possible security threats (e.g., content that appears to be malicious or undesirable but does not precisely match a known threat) even before he or she attempts to open or access the content.
In one implementation, a link to content analyzed by security module 904 may be altered to indicate the status of the content. For example, one color or attribute (e.g., font, font size) may be used for the link before the content is analyzed. A different color or attribute may be applied after analysis, to indicate that the content contains a security threat, does not contain a security threat or may contain a threat (e.g., the analysis was inconclusive).
In another implementation, an icon or indicator associated with the link may be altered, or different icons/indicators may be used, to indicate whether a security threat was detected. This implementation may be applied with an embodiment of the present disclosure that provides the user with enhanced browsing, wherein the icon or indicator may be used to open fetched or prefetched content.
In yet another implementation, when a user expresses an interest in the content, by clicking (or mousing over) the link or an associated icon or indicator, a warning message or alert may be displayed to alert the user to the presence of a security threat within the content. The lack of such an alert may indicate that the content is safe. A warning message may identify a specific security threat (e.g., by providing the name of a detected virus) and/or may report the type of threat (e.g., virus, spyware, pornography).
A user may be presented with various options or actions to be taken after content is scanned. For example, a link to content containing a definite threat may be deleted or disabled to prevent it from being activated. Or, a threat may be ignored (thereby allowing the content to be opened), the document may be closed, the threat may be disabled or excised from the content, etc.
In the embodiment of the present disclosure depicted in FIG. 9, central server 920 may be employed to perform look-ahead security scanning and/or collect results of security scanning performed by client computing devices. Central server 920 may perform look-ahead security scanning or analysis in addition to, or in place of, client device 902.
Any number of client computing devices may be coupled to central server 920, with some or all of them relying upon the central server to perform security scanning. Look-ahead security module 924 may operate similarly to security module 904 of client device 902, to proactively retrieve content for security scanning within a safe cache 926.
In one implementation, central server 920 may perform look-ahead security scanning for thin clients or other devices that have low communication bandwidth connections, limited processing capability or other limitations.
In another implementation, look-ahead security module 924 of central server 920 may crawl or “spider” the Internet or another collection of content sources (e.g., an intranet, a local or wide area network) to retrieve content for security scanning. Thus, security module 924 may comprise a search engine designed to search for virtually any type of security threat and/or undesirable content, without waiting for a user or user application to access or attempt to access the content.
Database 928 may be used to assemble various results, statistics or other metadata regarding security scanning performed by a client computing device and/or central server 920. Thus, when a client device or the central server scans some content, the results of that scan may be transmitted to database 928. Such results may identify the content in any suitable manner (e.g., by filename, Uniform Resource Identifier or URI), and indicate what security threats were found, if any.
Database 928 may therefore be consulted when a look-ahead security module operating on client computing device 902 or central server 920 identifies a link to content that should be scanned. If an identity of the content matches a result stored in the database, the stored results may be adopted instead of re-scanning the content. Any suitable means may be employed to match the identities of a current piece of content and content that was previously scanned or analyzed (e.g., name, URI, CRC, checksum, size).
Central server 920 may be operated by an organization that provides look-ahead security module 904, by a content source, or some other entity.
In the environment depicted in FIG. 9, look-ahead security scanning of any type of linked content may be performed on either or both a client computing device and a central server. Advantageously, the scanning is performed before the content is opened by an application designed to provide a user access to the content (e.g., for viewing, for editing), and/or before the user even selects or expresses an interest in the link or the content.
A look-ahead security module may apply look-ahead security to any or all content linked to a document opened by an application. Links and associated content may be prioritized for scanning based on location or order within the page, a location of linked content, type of content, etc.
FIG. 10 is a flowchart demonstrating a method of performing look-ahead security, according to one embodiment of the present disclosure. In this embodiment, security scanning or analysis may be performed locally at a client device and/or at a central server. For example, the client device may scan a first content object (e.g., a script, a web page) linked to a document opened in an application executing on the client, while the central server scans content linked to the first content object.
In operation 1002 of this method, an application executing on a user's client computing device (e.g., a word processor, an electronic mail client, an instant messenger client, a web browser, a spreadsheet program) opens a document (e.g., a word processing document, a list of electronic mail messages, a chat window, a web page, a spreadsheet) containing any number of links to electronic data or content.
The link may be a traditional HTML (HyperText Markup Language) hyperlink, or may comprise virtually any other type of link (e.g., script-based, flash-based, XML or Extensible Markup Language). The linked content may comprise another document or some other type of content that can be accessed with a computing device, and may include static or dynamic text or graphics, executable or interpretable code, etc.
In operation 1004, a link and its associated content are identified (e.g., by a look-ahead security module operating on the client device). The link may be identified before a user clicks on the link or takes other action to open the associated content.
The content may be identified by filename, URI, path, location, the link or other means, and may be located within or external to the client device. As exemplified by a typical web page, the content may be offered by a source other than the source of the document containing the link to the content.
A security threat may be more likely to be found within content not controlled by the provider of the document. Therefore, links to content offered by the document provider may not be subjected to look-ahead security, or may receive lower priority than links to content from other sources.
Thus, links may be prioritized based on some estimate of risk or danger. In particular, links to content from unknown providers (or providers known to have previously offered content containing a security threat) may be followed and checked before other links.
In optional operation 1006, when the linked content is identified, a database maintained on a central server (or elsewhere) may be consulted to determine if a security threat was previously identified within the content. The database may be maintained by a provider of the look-ahead security module or a third party (e.g., a content provider, a provider of other security related software).
In operation 1008, the linked content is retrieved and stored in a safe cache or proxy cache. As described above, a safe cache may be configured to allow the content to exhibit its normal behavior (e.g., within a virtual operating system or on a virtual desktop), but may prevent the content from actually altering memory, storage or other components of the computing device containing the safe cache.
The safe cache may be located on the user's client computing device, or may be located on a central server. Yet further, content from multiple links in the document may be analyzed for security threats, and some analysis may be performed on the client device, while other analysis is done on the central server.
In one implementation featuring a central server having a safe cache, the central server may proactively spider or crawl any number of content sources to retrieve and analyze content. In this implementation, any or all of operations 1002-1006 may be omitted.
In the illustrated embodiment of the present disclosure, the safe cache is separate from any cache employed by the application that opened the document. This helps ensure that malicious content never has an opportunity to infect the client device.
Yet further, when the content is opened for the user, it may be opened from the safe cache (e.g., rather than an application's cache), especially if the user chooses to ignore any warnings or alerts posted by the look-ahead security module. This may be done to prevent the content from loading or running any malicious code.
In operation 1010, the content is scanned or analyzed within the safe cache. The analysis may search the content for any type or types of security threats or undesirable components, and may therefore catch content that would otherwise damage or alter the user's client device, or that would be objectionable to the user if opened on the device.
To assist in the security scanning, multiple programs or modules may be invoked separately or in an integrated manner. For example, if the content is sequestered in a safe cache on the client computing device, scanning software included with a look-ahead security module may be invoked, but other security software on the client may also be invoked (e.g., an anti-virus program, a program for eradicating adware) or software may be imported from a central server to assist in the scanning. Similarly, if the safe cache is located on the central server, any security software available on the central server may be employed.
In addition, however, a third party tool or program may also be employed. For example, an anti-virus software provider's server may be contacted to learn of the latest viruses, worms or other threats. Or, a data pattern or code pattern indicative of a security threat may be retrieved from a third party and compared to content within a safe cache on the client computing device or the central server. Thus, tools, utilities and other software for detecting security threats and undesirable content from virtually any provider may be applied to content that has been isolated within a safe cache.
In operation 1012, the link to the content, or an associated icon/indicator, may be configured or modified to reflect a result of the scanning. Illustratively, if a threat is detected, some attribute of the link or an indicator placed near the link may be altered (e.g., color, size). Or, the link may be disabled (permanently or temporarily).
In one implementation, after the content is scanned, if the user highlights, clicks on, mouses-over or otherwise expresses an interest in the content, link or associated indicator, more details of the scan may be provided. For example, a window or dialog box may be opened to report the scan results, and may identify any specific threats that were identified (e.g., by name). The results may indicate that a security threat (or undesirable content) was or was not found, or that the scan was inconclusive. Illustratively, a textual or graphical measure of risk may be provided.
Information regarding a detected threat may be-retrieved from a central server or a third party and reported to the user. Such information may include a level of risk, the threat's impact on the client device, etc.
In optional operation 1014, results of the scan may be reported to a central security database. Scan results may be collected to allow preemptory disabling of links to content previously determined to contain a threat, to track the activity of hackers, spammers and/or other threat sources, etc.
In operation 1016, if the content is deemed safe (e.g., no threats detected, no serious threats detected), the method advances to operation 1020. If a security threat was detected or the scan was inconclusive, the method continues with operation 1018.
In operation 1018, the user may be offered any number of options for proceeding. Illustrative options include ignoring the danger (and allowing the content to be opened), quarantining the content, disabling the link, closing the document, opening the content in a safe mode (e.g., in a virtual desktop) that prevents the content from adversely altering the client computing device, excising the threat from the content and allowing the remainder to be opened, etc.
Depending on the user's choice, the method may end (e.g., if the user chooses to disable the link or close the document), may proceed to operation 1020, may return to operation 1002 to open another document, may return to operation 1004 to select another link, etc.
In operation 1020, the content is to be accessed. The content may be free of security threats or the user may have chosen to ignore any threats. The content may be opened in the same application that opened the original document, or in a different application. The content may be copied from the safe cache into a cache or other memory controlled by the application that opens the content, or may be opened within the safe cache.
After operation 1020, the method may end or may return to operation 1004 to select a link within the content or another link within the original document.
The method described above in conjunction with FIG. 10 is just one method of performing look-ahead security. Other methods may be derived from the preceding description, the figures and other sections of this document without exceeding the scope of the present disclosure.
Indicating Fetching and/or Content Status
In one embodiment of the present disclosure for providing enhanced browsing, icons, buttons or other indicators are displayed within a page of electronic data to indicate the status of content fetching or prefetching from target links within that page, and/or the status of the target content. The indicators, which may be considered “status indicators,” may comprise any type of object (e.g., an animated or static icon) that can embedded within electronic content and provide a visual and/or audio status indication.
When configured to indicate content status, a status indicator may reveal whether a security threat was detected within the target content. As described in a preceding section, security threats may include viruses, spyware, adware, other malware, pornography, other types of obscene or inappropriate content, etc.
A status indicator may also, or instead, indicate the status of a target link or an electronic connection to a content location identified by the link. For example, a status indicator may reveal that a link is broken, that an electronic connection to the linked site or page has low bandwidth or is noisy, that a connection is fast or slow, or may provide some other information regarding the quality or status of the link or communication connection. Status indicators may be received as part of the web page or other content in which they are displayed. Alternatively, the indicators may be dynamically inserted by some script or code included in the web page, by a user interface configured to facilitate enhanced browsing (e.g., user interface 104 of FIG. 1), another component of an enhanced browsing apparatus, or by some other client application or browser plug-in.
Individual status indicators may be associated with each target link (or one indicator may be associated with multiple target links), and may comprise controls for taking some action relating to enhanced browsing. For example, left-clicking or mousing-over an indicator associated with a target link (with or without some other key input, such as an ALT key) may serve as a trigger for fetching, re-fetching or prefetching the corresponding target content and/or displaying an enhanced browsing window containing the content.
Some other action (e.g., right-clicking on an indicator, ALT-clicking) may open a menu or set of options for configuring an enhanced browsing experience (e.g., to turn prefetching on or off, adjust the timing with which an enhanced browsing window is opened or closed, choose the type of information to indicate with an indicator, configure user interface controls).
In one embodiment of the present disclosure, indicators are inserted when target links are identified, and may change appearance to indicate that prefetching of target content is initiated, completed, delayed, impossible, etc. An indication that prefetching is complete may mean that the target content has been prefetched and is ready for display in an enhanced browsing window. An indication of successful prefetching may inherently indicate that the content has been cached, or such status may be separately indicated.
Indications of prefetching failure may differ for different reasons for the failure (e.g., connection timed out, target content unavailable, broken link) or may be uniform and simply reveal that prefetching could not be completed. A status indicator may indicate that prefetching is partially complete, and may even indicate how complete (e.g., by fraction or percentage).
Embodiments of the present disclosure may be implemented within a search result listing, a shopping site, electronic mail (web or client-based), online classified ads, job boards, blogs, news story listing, and virtually any other type of application or utility that involves collections of links. These implementations may therefore be configured for operation with browsers, electronic mail programs, news readers, search clients, word processing applications, spreadsheet programs, databases, etc. A status indicator may be placed beside, above, below or in some other location that may readily indicate an association between the indicator and the associated link. Placement of status indicators may be configurable by users.
Indicators may be embedded into a web page via DHTML (Dynamic HyperText Markup Language), javaScript or some other programming or scripting language. The indicators may become part of the layout of the page in which they appear, or may float over the browsing window and therefore not be part of the page.
Indicators need not always be visible. Whether a particular indicator is displayed may depend on the number of target links on a page, the type of information represented by the indicator, how the page is laid out, etc. For example, if a page comprises multiple frames with many links, indicators associated with some links may not appear until a cursor is moved into a particular frame. In one embodiment, a status indicator may not be displayed for a link if content cannot be prefetched from that link.
As prefetching of target content proceeds, a status indicator associated with the corresponding target link may change appearance. For example, a status indicator may flash, blink, change color or intensity, change sound, changed design, exhibit motion, etc. Or, an indicator indicating a first status of the prefetching may be replaced by another indicator indicating a different status. The status indicator associated with target content currently displayed in an enhanced. browsing window may be highlighted or otherwise marked to show that it is the current status indicator.
FIG. 8 demonstrates how status indicators for indicating prefetching and/or content status may appear in one embodiment of the present disclosure. In FIG. 8, web page 802 is displayed by browser 800, and includes target links 804 a-804 d. Individual indicators 814 a-814 d are associated with the target links.
In this embodiment of the present disclosure, a status indicator comprises a rectangular icon, possibly reminiscent of a miniature web page. Before prefetching of content for an associated target link commences, an icon may be plain, dim or opaque, as shown by indicator 814 c. When prefetching successfully completes, as shown by indicator 814 a, a lightning bolt, check mark or other affirmative symbol is added to the icon.
For a target link whose content is currently being prefetched, a status indicator (e.g., indicator 814 b) may include an arrow or other symbol of activity. If a particular target link's content cannot be fetched (e.g., or prefetching times out), the associated status indicator may be marked with an “X”, a slash or other negative symbol, as illustrated by indicator 814 d.
In an alternative embodiment of the present disclosure, a status indicator such as indicator 814 c may first appear when a target link is identified. The indicator may retain the same appearance until prefetching succeeds (e.g., indicator 814 a) or fails (e.g., indicator 814 d). In this alternative embodiment, therefore, indicator 814 b may not be employed, especially if a high-speed data connection is available, which would allow prefetching to be completed quickly.
In one embodiment of the present disclosure, content from a first target link is displayed when a user mouses-over or selects in some other manner an indicator associated with the first target link. The user may then rotate a mouse scroll wheel or provide other input (e.g., press an arrow key) to display content fetched or prefetched from a next target link or previous target link, depending on the direction of rotation. Thus, in this embodiment of the present disclosure, content from multiple target links may be viewed quickly, without requiring fine cursor movement.
When a scroll wheel (or equivalent input) is used to move from one status indicator to another, the main browser page may be scrolled by the distance between the two status indicators, unless the page can no longer be scrolled in the corresponding direction. Regardless of whether the main browser page can be scrolled the same distance, the cursor used to mouse-over the status indicator may be repositioned to the next status indicator. A time delay may be imposed when a user scrolls from one status indicator to another, to help prevent from scrolling too far or to the wrong status indicator.
In one implementation of this embodiment, the cursor is automatically moved to the next, or previous, status indicator. And, the web page in which the target links are displayed may also scroll (e.g., to keep the cursor in relatively the same location of the display screen). The target links and associated status indicators need not be aligned linearly. If not linear in alignment, as the web page scrolls in one direction the cursor may be offset to place it over the next indicator.
If an enhanced browsing window in which target content is displayed normally closes after some period of time when the user's cursor is outside the enhanced browsing window (e.g., when it is hovering over the associated status indicator), in this embodiment of the present disclosure, that behavior may be modified so that the window does not close while the cursor remains on (or near) an indicator. For example, until the cursor is no longer positioned above a status indicator, or some other action is taken, scrolling the mouse wheel may continue to cause content from different target links to be displayed (in the same or different enhanced browsing windows).
Other user input may affect the user's enhanced browsing experience in similar or different ways. For example, pressing up and down arrow keys (or left and right arrow keys) while a mouse cursor is positioned within the enhanced browsing window may cause the displayed target content to scroll. Pressing those keys while the cursor is in the main browser page, however, may cause the cursor to move to the previous or next status indicator (and change the target content displayed in an enhanced browsing window).
Similarly, pressing page-up and page-down keys or clicking appropriate controls (e.g., “previous” and “next,” “forward” and “backward”) while a mouse cursor is positioned within the enhanced browsing window may cause the displayed target content to be replaced by the content associated with the previous or next status indicator. Providing the same input while the cursor is positioned in the main browser page, however, may cause the content of that page to scroll.
Enhanced Browsing Stripe
In one embodiment of the present disclosure, an enhanced browsing stripe or column is provided for facilitating enhanced browsing of target content identified by multiple links in a page. For example, when a list of search result links (e.g., from a search engine, from a merchant or auction site) is displayed in a browser, the enhanced browsing stripe may be overlaid or superimposed on the list.
A user interface cursor may then be moved within the stripe and, as the cursor passes over or adjacent to a link, an enhanced browsing window may be opened to display the target content. Or, if an enhanced browsing window is already open, the displayed target content may change as the cursor reaches different links.
In different implementations, an enhanced browsing stripe or column may be horizontal, vertical, diagonal or even non-linear, so as to overlay or remain close to links in a browser page. A stripe may be of any thickness (e.g., one-quarter inch, one centimeter), and may be transparent or semi-transparent (e.g., light gray) so as to allow a user to read or identify a link underneath the stripe.
When a list of links is I-irk presented (e.g., in a browser page), the stripe may or may not be automatically applied. If not, when a user mouses-over or selects a first target link in a list and an enhanced browsing window is displayed with the corresponding target content, the stripe may be presented at that time. The stripe may therefore appear adjacent to an enhanced browsing window or as one edge or border of the window.
In FIG. 2, stripe 230 is placed adjacent to the left edge of enhanced browsing window 210, but only extends over the list of links 204, not the full length of the window. The stripe may extend the full length of the window in other implementations. As can be seen in FIG. 2, stripe 230 extends below the bottom edge of window 210, so that it appears over all links 204.
In one implementation, when an enhanced browsing window is opened and an enhanced browsing stripe displayed, a user interface cursor (e.g., mouse cursor 240 in FIG. 2) may be moved to a position within the stripe and on top of or near the target link whose content is displayed within the window. This may make it easier for a user to quickly preview content from other links, by moving the cursor within the stripe to those links. The stripe may be closed or removed if the cursor is moved (or clicked) outside of the stripe and an open enhanced browsing window. Alternatively, the cursor may be initially placed within the enhanced browsing window.
If the cursor is moved within the stripe to one end of the stripe, and the list of links associated with the stripe extends past that end, off the display device (e.g., to another page or screen), the web page or other content containing the list of links may be automatically scrolled to reveal additional links. The stripe will automatically extend as the content is scrolled, for as long as additional links appear. Alternatively, a stripe may extend even beyond the list of links, to allow a user to continue scrolling the web page (e.g., to the end of the page). If an enhanced browsing window is open when the web page is scrolled, the window may remain in the same location of the display device as scrolling continues.
An enhanced browsing stripe may be generated and maintained by a user interface or other component of an enhanced browsing apparatus.
FIG. 5 demonstrates a method of using an enhanced browsing stripe or column to facilitate enhanced browsing, according to one embodiment of the present disclosure.
In state 502, a user's browser is opened at a web page or other electronic content (e.g., document, image, electronic mail message) that contains a list of search result links. The web page may be considered the “browser page” herein to differentiate it from a page or other target content displayed in an enhanced browsing window.
In state 504, target links are identified, including some or all of the search result links. Any or all links may be identified by default, a prefetch template may be applied, a list of most popular links may be used, etc. The links may be prioritized, and content identified by some or all target links is retrieved.
Enhanced browsing windows may be constructed (but not yet displayed) for target content for some or all of the target links. Illustratively, all target content is retrieved, but not necessarily all at the same time (i.e., in parallel).
In state 506, an enhanced browsing stripe is displayed on top of the list of search results. The stripe may be displayed as soon as one or more target links' content is retrieved, may be displayed when a first enhanced browsing window is displayed, or may be displayed as soon as the target links are identified.
In state 508, as the user moves a user interface cursor over target links, but within the enhanced browsing stripe, target content for the links is displayed in one or more enhanced browsing windows. For example, a first window may be opened when the user mouses-over a first target link. That window may remain open while the user moves the cursor, and other links' content may replace the first link's content in the window. Alternatively, an enhanced browsing window may open when the user mouses-over a target link, and then close when the cursor leaves the link.
In state 510, if the cursor is moved to the edge of the browser window and the list of search results extends to another page or screen, the browser page will be scrolled as needed (e.g., upward, to the lefty to bring other links onscreen. The enhanced browsing stripe will extend or elongate as the page scrolls. After state 510, the method ends.
Graphical History Navigation Tree for Searching/Browsing
In one embodiment of the present disclosure, a method and apparatus are provided for facilitating a user's navigation or browsing of search results or some other collection of interrelated links to electronic data. In one implementation of this embodiment, a graphical history navigation tree is rendered, wherein each node corresponds to a different web page or other set of data (e.g., documents, images, electronic mail messages).
The tree may be displayed anywhere within the user's display screen, such as within a window placed immediately below an enhanced browsing window (or immediately below a location at which an enhanced browsing window may be opened), along the left or right side of the display screen, etc. Within its window, a history navigation tree may start with a root representing a new set of search results or a new browsing session, and thereafter grow in any direction (e.g., from left to right, from top to bottom). A new tree root may be placed when a new search is initiated, when a new browser window is opened, or anytime a user requests a new tree be started.
Execution of a new search may be detected by monitoring the web site or page a user is browsing. Initiation of a new browsing session may be assumed when a browser is opened. If the site the user is browsing employs a search engine and the user engages the engine, a root of a new history navigation tree may be placed at that time. Any previous history navigation trees may still appear in the same window, but may be scrolled off-screen as the current tree grows.
In one embodiment, each time the user navigates (e.g., in the browser) to or previews (e.g., in an enhanced browsing window) one of the search result listings (or some other top-level link within the page being browsed), a new child node is added to the current tree and connected to the root. As the user continues to navigate or preview linked content, yet more nodes are added and linked to the history navigation tree. Thus, for each page, site or other collection of content the user accesses, another node is added to the tree.
Thereafter, the user can quickly navigate to or preview content previously visited by selecting the appropriate node. Illustratively, if the user clicks (e.g., left-clicks) on a node, the user's browser is opened to the corresponding content. If the user mouses-over a node (e.g., for a predetermined period of time) or right-clicks on the node, the corresponding content may be opened for previewing in an enhanced browsing window.
Thus, an enhanced browsing apparatus's cache may store content corresponding to any number of nodes in the current history navigation tree, and/or previous trees. Alternatively, the content may be retrieved from the target page or site at the time the user clicks on or mouses-over a node.
When the user clicks on or mouses-over a node corresponding to a particular web domain or site, a list of links visited at that domain may be displayed. Thus, a node may represent a collection of web pages or content, not just a single document.
A user may be permitted to alter the appearance of a node. For example, if the user decides that a particular page warrants a closer examination if nothing more interesting or helpful is found, he may choose to change the node's color, size or other characteristic (e.g., make it blink, animate it) to mark it. One particular marking may be applied to identify the node corresponding to content the user is currently browsing or previewing.
Similarly, the user may be able to notate a node and/or search (e.g., to name the search) by selecting it (e.g., right-clicking) and entering his notes into a file that will be saved with the tree.
The appearance of a node or a link between nodes may be configured to reflect a security status of associated content. For example, a node corresponding to content that has been determined to contain a security threat may have a different color, shape size or other attribute than nodes associated with safe content.
As described above, a new search/browsing history navigation tree may be started for each new search. However, when a user merely modifies the search terms of a current (or previous) search, this may simply result in a new branch being added to the current (or previous) tree.
A search/browsing history navigation tree may be generated and maintained by a user interface or other component of an enhanced browsing apparatus.
FIG. 6 depicts a search/browsing history navigation tree, according to one embodiment of the present disclosure. Program code for generating such a tree may be implemented as a plug-in to an existing browser.
In FIG. 6, window 602 tree frame 604 and ad frame 606. The horizontal nature of window 602 makes the window suited for placement above or below an enhanced browsing window. In other embodiments, window 602 may be oriented vertically.
The history navigation tree displayed in tree frame 604 begins with root 610, which, in this example, corresponds to a search for a used Honda automobile. This search may have returned any number of links to relevant content. Among those links, the user has so far browsed or previewed web pages or sites identified by two top-level links, corresponding to nodes 612, 614.
As the user visited or previewed content linked to those pages, additional nodes were added to represent that content. As shown in FIG. 6, any number of nodes may be notated. Such notations may be automatically extracted from HTML of the corresponding content, or may be specified by the user. Logos of organizations associated with a node's content may be displayed in addition to (or instead of) descriptive text.
Window 602 is expanded in FIG. 6 to allow for closer inspection. In different implementations of this embodiment of the present disclosure, the window may be relatively narrow in height (when aligned horizontally) or width (when aligned vertically), on the order of 0.5 inches to 1.5 inches.
The visual history navigation tree allows a user to easily track his navigation and quickly jump from one node's content to another's. Because window 602 may remain open even after the user navigates away from the search results, he can quickly and easily return. Window 602 may include standard controls (e.g., buttons) to close, expand, minimize or otherwise manipulate the window.
Because a history navigation tree may be saved (e.g., to disk), the user may open a history navigation tree window (e.g., using the normal browser drop-down menus), which may be automatically populated with the most recent tree.
Ads displayed in ad frame 606 may include ads relevant to the search associated with the tree in tree frame 604, ads relevant to the specific node the user is at, pay-per-click sponsored ads, etc. Either or both of tree frame 604 and ad frame 606 may include scroll bars (horizontal and/or vertical).
The program environment in which a present embodiment of the present disclosure is executed illustratively incorporates a general-purpose computer or a special purpose device such as a hand-held computer. Details of such devices (e.g., processor, memory, data storage, display) may be omitted for the sake of clarity.
It should also be understood that the techniques of the present disclosure may be implemented using a variety of technologies. For example, the methods described herein may be implemented in software executing on a computer system, or implemented in hardware utilizing either a combination of microprocessors or other specially designed application specific integrated circuits, programmable logic devices, or various combinations thereof. In particular, the methods described herein may be implemented by a series of computer-executable instructions residing on a suitable computer-readable medium. Suitable computer-readable media may include volatile (e.g., RAM) and/or non-volatile (e.g., ROM, disk) memory, carrier waves and transmission media (e.g., copper wire, coaxial cable, fiber optic media). Exemplary carrier waves may take the form of electrical, electromagnetic or optical signals conveying digital data streams along a local network, a publicly accessible network such as the Internet or some other communication link.
The foregoing embodiments of the present disclosure have been presented for purposes of illustration and description only. They are not intended to be exhaustive or to limit the invention to the forms disclosed. Accordingly, the scope of the invention is defined by the appended claims, not the preceding disclosure.

Claims (17)

The invention claimed is:
1. A method of secure scanning of a second web page linked to a first web page being displayed by a browser in a browser window on a client computing device, the method comprising:
identifying, in the first web page, a target link to the second web page, wherein the target link is identified from one or more links that are contained within the first web page;
prior to receiving a user selection of the target link or of an indicator associated with the target link, prefetching content from the second web page, the content including web page data, applets, or scripts;
loading the prefetched content from the second web page into a safe cache on the client computing device before receiving the user selection of the target link or of the indicator associated with the target link and before the content of the second web page is opened by an application configured to provide access to the content of the second web page on the client computing device;
scanning the prefetched content from the second web page for a security threat, within the safe cache, wherein the safe cache is configured to prevent the prefetched content from altering a memory location or storage location external to the safe cache;
detecting placement of a cursor proximate to the target link or the indicator associated with the target link; and
in response to the detecting:
in response to identifying a security threat with the prefetched content, presenting a warning along with one or more selectable options, including an option to ignore the warning; and
in response to identifying no security threat with the prefetched content or receiving from the user a selectable option to ignore the warning, causing display of a second window comprising the prefetched content.
2. The method of claim 1, further comprising prior to said causing display of a second window:
generating but not displaying the second window;
populating the second window with the prefetched content; and
caching the second window.
3. The method of claim 1, wherein the second window is an enhanced browsing window lacking one or more functions provided by the browser window.
4. The method of claim 1, wherein the second window is configured to close in response to movement of the cursor out of the second window.
5. The method of claim 1, wherein:
the indicator is configured with a first appearance if no security threat is identified in the prefetched content; and
the indicator is configured with a different appearance if a security threat is identified in the prefetched content.
6. The method of claim 1, wherein the prefetched content contains executable code and said scanning comprises executing the code within the safe cache to determine a behavior of the executable code.
7. The method of claim 1, further comprising:
notifying a central server of a result of the scanning the prefetched content for a security threat.
8. The method of claim 7, further comprising:
prior to said scanning, querying the central server for a result of a previous scanning of the prefetched content.
9. The method of claim 1, wherein the security threat comprises one or more of a virus, a worm, or a trojan horse.
10. The method of claim 1, wherein the security threat comprises one or more of spyware or adware.
11. The method of claim 1, wherein the security threat comprises one or more of a phishing attack, a cookie, or a script.
12. A non-transitory computer-readable storage medium storing instructions thereon that, if executed by a client computing device, cause the client computing device to perform operations of enhanced browsing with security scanning, the instructions comprising:
instructions to identify, in a first web page, a target link to a second web page, wherein the target link is identified from one or more links that are displayed within the first web page;
instructions to, prior to receiving a user selection of the target link or of an indicator associated with the target link, prefetch content from the second web page, the content including web page data, applets, or scripts;
instructions to load the prefetched content into a safe cache on the client computing device before receiving the user selection of the target link or of the associated indicator and before the content of the second web page is opened by an application configured to provide access to the content of the second web page on the client computing device;
instructions to scan the prefetched content for a security threat, within the safe cache, wherein the safe cache is configured to prevent the prefetched content from altering a memory location or storage location external to the safe cache;
instructions to detect placement of a cursor proximate to the target link or the associated indicator; and
instructions to, in response to said detecting:
in response to identifying a security threat with the prefetched content, present a warning along with one or more selectable options, including an option to ignore the warning; and
in response to identifying no security threat with the prefetched content or receiving from the user a selectable option to ignore the warning, cause display of a second window comprising the prefetched content.
13. The computer-readable storage medium of claim 12, wherein the instructions further comprise:
instructions to generate but not display the second window;
instructions to populate the second window with the prefetched content; and
instructions to cache the second window.
14. A method of enhanced browsing with security scanning, the method comprising:
identifying, in a first document displayed on a client computing device, a target link to content, wherein the target link is identified by the client computing device from one or more links that are contained within the first document;
prior to receiving a user selection of the target link or of an indicator associated with the target link, prefetching the content which, in addition to a Uniform Resource Locator (URL), includes web page data, applets, or scripts;
loading the content into a safe cache on the client computing device before receiving a user selection of the target link and before the content is opened by an application configured to provide access to the content on the client computing device;
while the content is in the safe cache:
preventing the content from altering a memory location or storage location external to the safe cache; and
scanning the content on the client computing device to identify a presence or absence of a security threat;
detecting placement of a cursor proximate to the target link or the associated indicator; and
in response to the detecting:
in response to identifying a security threat within the content, presenting one or more selectable options to initiate in response to the identified security threat; and
in response to identifying no security threat within the content or receiving from the user a selectable option to ignore an identified security threat, causing display of a second window comprising the content.
15. The method of claim 14, further comprising:
before receiving the user selection of the target link or of the associated indicator, displaying an indicator to indicate whether a security threat was detected within the content, wherein said displaying an indicator comprises altering an appearance of the indicator associated with the target link.
16. The method of claim 14, wherein the content contains executable code and said scanning comprises executing the code within the safe cache to determine a behavior of the code.
17. The method of claim 14, wherein the application is a word processing program.
US14/329,861 2004-09-27 2014-07-11 Enhanced browsing with security scanning Active US9270699B2 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
US14/329,861 US9270699B2 (en) 2004-11-08 2014-07-11 Enhanced browsing with security scanning
US15/047,775 US9584539B2 (en) 2004-09-27 2016-02-19 Enhanced browsing with security scanning
US15/444,181 US9942260B2 (en) 2004-09-27 2017-02-27 Enhanced browsing with security scanning
US15/949,992 US10382471B2 (en) 2004-09-27 2018-04-10 Enhanced browsing with security scanning
US16/532,099 US11122072B2 (en) 2004-09-27 2019-08-05 Enhanced browsing with security scanning

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US62589104P 2004-11-08 2004-11-08
US10/985,700 US20060069618A1 (en) 2004-09-27 2004-11-10 Method and apparatus for enhanced browsing
US11/264,418 US8037527B2 (en) 2004-11-08 2005-11-01 Method and apparatus for look-ahead security scanning
US13/237,641 US8327440B2 (en) 2004-11-08 2011-09-20 Method and apparatus for enhanced browsing with security scanning
US13/659,981 US8959630B2 (en) 2004-11-08 2012-10-25 Enhanced browsing with security scanning
US14/329,861 US9270699B2 (en) 2004-11-08 2014-07-11 Enhanced browsing with security scanning

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US13/659,981 Continuation US8959630B2 (en) 2004-09-27 2012-10-25 Enhanced browsing with security scanning

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/047,775 Continuation US9584539B2 (en) 2004-09-27 2016-02-19 Enhanced browsing with security scanning

Publications (2)

Publication Number Publication Date
US20150013009A1 US20150013009A1 (en) 2015-01-08
US9270699B2 true US9270699B2 (en) 2016-02-23

Family

ID=36317894

Family Applications (7)

Application Number Title Priority Date Filing Date
US13/237,641 Active US8327440B2 (en) 2004-09-27 2011-09-20 Method and apparatus for enhanced browsing with security scanning
US13/659,981 Active US8959630B2 (en) 2004-09-27 2012-10-25 Enhanced browsing with security scanning
US14/329,861 Active US9270699B2 (en) 2004-09-27 2014-07-11 Enhanced browsing with security scanning
US15/047,775 Active US9584539B2 (en) 2004-09-27 2016-02-19 Enhanced browsing with security scanning
US15/444,181 Active US9942260B2 (en) 2004-09-27 2017-02-27 Enhanced browsing with security scanning
US15/949,992 Active US10382471B2 (en) 2004-09-27 2018-04-10 Enhanced browsing with security scanning
US16/532,099 Active 2025-03-11 US11122072B2 (en) 2004-09-27 2019-08-05 Enhanced browsing with security scanning

Family Applications Before (2)

Application Number Title Priority Date Filing Date
US13/237,641 Active US8327440B2 (en) 2004-09-27 2011-09-20 Method and apparatus for enhanced browsing with security scanning
US13/659,981 Active US8959630B2 (en) 2004-09-27 2012-10-25 Enhanced browsing with security scanning

Family Applications After (4)

Application Number Title Priority Date Filing Date
US15/047,775 Active US9584539B2 (en) 2004-09-27 2016-02-19 Enhanced browsing with security scanning
US15/444,181 Active US9942260B2 (en) 2004-09-27 2017-02-27 Enhanced browsing with security scanning
US15/949,992 Active US10382471B2 (en) 2004-09-27 2018-04-10 Enhanced browsing with security scanning
US16/532,099 Active 2025-03-11 US11122072B2 (en) 2004-09-27 2019-08-05 Enhanced browsing with security scanning

Country Status (1)

Country Link
US (7) US8327440B2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9584539B2 (en) * 2004-09-27 2017-02-28 Cufer Asset Ltd. L.L.C. Enhanced browsing with security scanning
US9602620B1 (en) * 2011-09-26 2017-03-21 Google Inc. Content-facilitated speculative preparation and rendering
US10592591B2 (en) 2004-09-27 2020-03-17 Cufer Asset Ltd. L.L.C. Enhanced browsing with indication of prefetching status
US10788984B2 (en) 2015-05-08 2020-09-29 Alibaba Group Holding Limited Method, device, and system for displaying user interface

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7975297B2 (en) 2005-08-16 2011-07-05 Microsoft Corporation Anti-phishing protection
US7814425B1 (en) * 2005-12-30 2010-10-12 Aol Inc. Thumbnail image previews
US7631263B2 (en) * 2006-06-02 2009-12-08 Scenera Technologies, Llc Methods, systems, and computer program products for characterizing links to resources not activated
US9015148B2 (en) * 2009-09-21 2015-04-21 Microsoft Corporation Suggesting related search queries during web browsing
US8984048B1 (en) 2010-04-18 2015-03-17 Viasat, Inc. Selective prefetch scanning
US8601052B2 (en) * 2010-10-04 2013-12-03 Qualcomm Incorporated System and method of performing domain name server pre-fetching
US10200756B2 (en) 2011-02-11 2019-02-05 Sony Interactive Entertainment LLC Synchronization of favorites and/or recently viewed lists between registered content playback devices
US9161073B2 (en) * 2011-02-11 2015-10-13 Sony Corporation System and method to remove outdated or erroneous assets from favorites or recently-viewed lists
US9955202B2 (en) 2011-02-11 2018-04-24 Sony Network Entertainment International Llc Removal of unavailable services and/or content items from a list of favorite and/or recently viewed services and/or content items associated with a user account
US9456050B1 (en) 2011-04-11 2016-09-27 Viasat, Inc. Browser optimization through user history analysis
US9106607B1 (en) 2011-04-11 2015-08-11 Viasat, Inc. Browser based feedback for optimized web browsing
US9912718B1 (en) 2011-04-11 2018-03-06 Viasat, Inc. Progressive prefetching
US9037638B1 (en) * 2011-04-11 2015-05-19 Viasat, Inc. Assisted browsing using hinting functionality
US8645501B2 (en) 2011-05-05 2014-02-04 Qualcomm Innovation Center, Inc. Adaptive DNS pre-fetching
US10162604B2 (en) * 2011-06-16 2018-12-25 Microsoft Technology Licensing, Llc Navigation history visualization in integrated development environment
CN102419808B (en) * 2011-09-28 2015-07-01 奇智软件(北京)有限公司 Method, device and system for detecting safety of download link
US8578499B1 (en) * 2011-10-24 2013-11-05 Trend Micro Incorporated Script-based scan engine embedded in a webpage for protecting computers against web threats
CA2779235C (en) * 2012-06-06 2019-05-07 Ibm Canada Limited - Ibm Canada Limitee Identifying unvisited portions of visited information
USD745875S1 (en) * 2012-12-13 2015-12-22 Symantec Corporation Display device with graphical user interface
EP2760183A1 (en) * 2013-01-28 2014-07-30 British Telecommunications public limited company System for detecting hyperlink faults
US10742601B2 (en) * 2013-03-14 2020-08-11 Fortinet, Inc. Notifying users within a protected network regarding events and information
US20140282014A1 (en) * 2013-03-14 2014-09-18 Apple Inc. Presenting snapshots of plug-in content in user interfaces
US20140380472A1 (en) * 2013-06-24 2014-12-25 Lenovo (Singapore) Pte. Ltd. Malicious embedded hyperlink detection
US20150046787A1 (en) * 2013-08-06 2015-02-12 International Business Machines Corporation Url tagging based on user behavior
KR102213490B1 (en) 2013-09-03 2021-02-08 삼성전자주식회사 Electronic device and method for controlling screen
US9396170B2 (en) * 2013-11-11 2016-07-19 Globalfoundries Inc. Hyperlink data presentation
US9203849B2 (en) 2013-12-04 2015-12-01 Apple Inc. Preventing URL confusion attacks
US10469510B2 (en) * 2014-01-31 2019-11-05 Juniper Networks, Inc. Intermediate responses for non-html downloads
US10146934B2 (en) * 2014-03-14 2018-12-04 International Business Machines Corporation Security information sharing between applications
RU2689439C2 (en) * 2014-05-13 2019-05-28 Опера Софтвэар Ас Improved performance of web access
US10855797B2 (en) 2014-06-03 2020-12-01 Viasat, Inc. Server-machine-driven hint generation for improved web page loading using client-machine-driven feedback
US10949507B2 (en) * 2014-10-17 2021-03-16 Vulpecula, Llc. Methods, systems, and computer program products for web browsing
KR102295145B1 (en) * 2014-12-22 2021-08-31 삼성전자주식회사 Security of Screen in Electronic Device
US9984088B1 (en) * 2015-03-31 2018-05-29 Maginatics Llc User driven data pre-fetch
US10303898B2 (en) * 2015-05-11 2019-05-28 Finjan Mobile, Inc. Detection and blocking of web trackers for mobile browsers
RU2622626C2 (en) * 2015-09-30 2017-06-16 Акционерное общество "Лаборатория Касперского" System and method for detecting phishing scripts
BR112018007818B1 (en) 2015-10-20 2023-10-17 Viasat, Inc. METHOD FOR UPDATE SUGGESTION MODEL AND MACHINE-DRIVEN SUGGESTION GENERATION SYSTEM
CN105893425A (en) * 2015-12-04 2016-08-24 乐视致新电子科技(天津)有限公司 Page display method and apparatus
US10268654B2 (en) 2016-03-21 2019-04-23 Cake Technologies, Inc. Accessing content from suppressed URL index
US10860715B2 (en) * 2016-05-26 2020-12-08 Barracuda Networks, Inc. Method and apparatus for proactively identifying and mitigating malware attacks via hosted web assets
US10241856B2 (en) * 2016-09-09 2019-03-26 Oracle International Corporation Memory quarantine
US20180084002A1 (en) * 2016-09-20 2018-03-22 Re-Sec Technologies Ltd. Malicious hyperlink protection
US10855714B2 (en) * 2016-10-31 2020-12-01 KnowBe4, Inc. Systems and methods for an artificial intelligence driven agent
CN108153565B (en) * 2016-12-02 2021-07-20 阿里巴巴集团控股有限公司 Method and device for providing page information
US10749894B2 (en) * 2017-02-15 2020-08-18 Cisco Technology, Inc. Prefetch intrusion detection system
KR102391965B1 (en) * 2017-02-23 2022-04-28 삼성전자주식회사 Method and apparatus for displaying screen for virtual reality streaming service
US10579222B2 (en) * 2017-05-17 2020-03-03 Salesforce.Com, Inc. Keyboard access to hover functionality
US10757115B2 (en) * 2017-07-04 2020-08-25 Chronicle Llc Detecting safe internet resources
CN107390974B (en) * 2017-07-21 2020-09-01 北京小米移动软件有限公司 Code searching method, device, terminal and storage medium for webpage debugging
US10860674B2 (en) 2017-07-25 2020-12-08 Cake Technologies, Inc. Page compete
US10721072B2 (en) * 2017-09-29 2020-07-21 Xilinx, Inc. Network interface device and method
JP7073070B2 (en) * 2017-10-11 2022-05-23 キヤノン株式会社 A server that provides client devices, methods, processing programs, and programs.
US11119632B2 (en) * 2018-01-03 2021-09-14 Mimecast Services Ltd. Systems and methods for proactive analysis of artifacts associated with information resources
US11178169B2 (en) * 2018-12-27 2021-11-16 Paypal, Inc. Predicting online electronic attacks based on other attacks
CN110018870B (en) * 2019-03-07 2021-02-12 深圳赛安特技术服务有限公司 Terminal window display method and device, computer equipment and storage medium
US11386170B2 (en) * 2020-03-31 2022-07-12 Bmc Software, Inc. Search data curation and enrichment for deployed technology
US20230359330A1 (en) * 2022-05-03 2023-11-09 Mimecast Services Ltd. Systems and methods for analysis of visually-selected information resources
US11811896B1 (en) * 2023-03-01 2023-11-07 Bank Of America Corporation Pre-fetch engine with security access controls for mesh data network

Citations (146)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5307086A (en) 1991-10-08 1994-04-26 International Business Machines Corporation Method of implementing a preview window in an object oriented programming system
US5495566A (en) 1994-11-22 1996-02-27 Microsoft Corporation Scrolling contents of a window
US5659693A (en) 1992-08-27 1997-08-19 Starfish Software, Inc. User interface with individually configurable panel interface for use in a computer system
US5664948A (en) 1994-07-29 1997-09-09 Seiko Communications Holding N.V. Delivery of data including preloaded advertising data
US5680562A (en) 1993-06-11 1997-10-21 Apple Computer, Inc. Computer system with graphical user interface including automated enclosures
US5715445A (en) 1994-09-02 1998-02-03 Wolfe; Mark A. Document retrieval system employing a preloading procedure
US5781909A (en) 1996-02-13 1998-07-14 Microtouch Systems, Inc. Supervised satellite kiosk management system with combined local and remote data storage
US5796967A (en) 1988-07-15 1998-08-18 International Business Machines Corporation Method for presenting applications in an interactive service
US5805815A (en) 1995-12-18 1998-09-08 At&T Corp. Method and apparatus for providing interim data displays while awaiting of retrieval linked information
US5872922A (en) 1995-03-07 1999-02-16 Vtel Corporation Method and apparatus for a video conference user interface
US5877746A (en) 1995-11-16 1999-03-02 Apple Computer, Inc. User interface for all-in-one integrated office system
US5880733A (en) 1996-04-30 1999-03-09 Microsoft Corporation Display system and method for displaying windows of an operating system to provide a three-dimensional workspace for a computer system
US5890172A (en) 1996-10-08 1999-03-30 Tenretni Dynamics, Inc. Method and apparatus for retrieving data from a network using location identifiers
US5963952A (en) 1997-02-21 1999-10-05 International Business Machines Corp. Internet browser based data entry architecture
US5973688A (en) 1997-10-31 1999-10-26 May; Gregory J Computing system having delayed keyboard shortcut hints
US5978847A (en) 1996-12-26 1999-11-02 Intel Corporation Attribute pre-fetch of web pages
US5987466A (en) 1997-11-25 1999-11-16 International Business Machines Corporation Presenting web pages with discrete, browser-controlled complexity levels
US5991713A (en) 1997-11-26 1999-11-23 International Business Machines Corp. Efficient method for compressing, storing, searching and transmitting natural language text
US5991740A (en) 1997-06-10 1999-11-23 Messer; Stephen Dale Data processing system for integrated tracking and management of commerce related activities on a public access network
US6011537A (en) 1997-01-27 2000-01-04 Slotznick; Benjamin System for delivering and simultaneously displaying primary and secondary information, and for displaying only the secondary information during interstitial space
US6025844A (en) 1997-06-12 2000-02-15 Netscape Communications Corporation Method and system for creating dynamic link views
US6035330A (en) 1996-03-29 2000-03-07 British Telecommunications World wide web navigational mapping system and method
US6067565A (en) 1998-01-15 2000-05-23 Microsoft Corporation Technique for prefetching a web page of potential future interest in lieu of continuing a current information download
US6085226A (en) 1998-01-15 2000-07-04 Microsoft Corporation Method and apparatus for utility-directed prefetching of web pages into local cache using continual computation and user models
US6088803A (en) 1997-12-30 2000-07-11 Intel Corporation System for virus-checking network data during download to a client device
US6128655A (en) 1998-07-10 2000-10-03 International Business Machines Corporation Distribution mechanism for filtering, formatting and reuse of web based content
US6182133B1 (en) 1998-02-06 2001-01-30 Microsoft Corporation Method and apparatus for display of information prefetching and cache status having variable visual indication based on a period of time since prefetching
US6182072B1 (en) 1997-03-26 2001-01-30 Webtv Networks, Inc. Method and apparatus for generating a tour of world wide web sites
US6199098B1 (en) 1996-02-23 2001-03-06 Silicon Graphics, Inc. Method and apparatus for providing an expandable, hierarchical index in a hypertextual, client-server environment
US6208354B1 (en) 1998-11-03 2001-03-27 Ati International Srl Method and apparatus for displaying multiple graphics images in a mixed video graphics display
US6222541B1 (en) 1998-01-20 2001-04-24 International Business Machines Corporation Method and apparatus for fast-path location and selection of links
US6230168B1 (en) 1997-11-26 2001-05-08 International Business Machines Corp. Method for automatically constructing contexts in a hypertext collection
US6243091B1 (en) 1997-11-21 2001-06-05 International Business Machines Corporation Global history view
US20010003194A1 (en) 1999-12-01 2001-06-07 Satoshi Shimura Content supply apparatus and machine readable recording media for recording a program
US6256028B1 (en) 1998-08-14 2001-07-03 Microsoft Corporation Dynamic site browser
US6262724B1 (en) 1999-04-15 2001-07-17 Apple Computer, Inc. User interface for presenting media information
US20010016845A1 (en) 1997-02-10 2001-08-23 Bruce Tribbensee Method and apparatus for receiving information in response to a request from an email client
US20010029538A1 (en) 2000-02-15 2001-10-11 Justin Blockton Method and system for collecting and providing multimedia content
US20010037314A1 (en) 2000-03-30 2001-11-01 Ishikawa Mark M. System, method and apparatus for authenticating the distribution of data
US6317791B1 (en) 1998-06-30 2001-11-13 Webtv Networks, Inc. System and method for distributing data over a communications network for display during start-up
US20010040584A1 (en) 1999-02-16 2001-11-15 Deleeuw William C. Method of enabling display transparency for application programs without native transparency support
US20010047375A1 (en) 1999-07-14 2001-11-29 Marcus Fest Method for selecting multiple hyperlinks
US20010050658A1 (en) 2000-06-12 2001-12-13 Milton Adams System and method for displaying online content in opposing-page magazine format
US20020010757A1 (en) 1999-12-03 2002-01-24 Joel Granik Method and apparatus for replacement of on-line advertisements
US6356908B1 (en) 1999-07-30 2002-03-12 International Business Machines Corporation Automatic web page thumbnail generation
US20020030697A1 (en) 2000-08-11 2002-03-14 Tomoya Oikawa Information reading apparatus and information reading method
US20020032699A1 (en) 1996-06-17 2002-03-14 Nicholas Hector Edwards User interface for network browser including pre processor for links embedded in hypermedia documents
US20020059166A1 (en) 2000-11-02 2002-05-16 Waytech Development Inc Method and system for extracting contents of web pages
US20020057299A1 (en) 1999-07-15 2002-05-16 Dobronsky Oren System and method for the dynamic improvement of internet browser navigability
US20020080170A1 (en) 2000-03-13 2002-06-27 Goldberg Elisha Y. Information management system
US20020091739A1 (en) 2001-01-09 2002-07-11 Ferlitsch Andrew Rodney Systems and methods for manipulating electronic information using a three-dimensional iconic representation
US6421733B1 (en) 1997-03-25 2002-07-16 Intel Corporation System for dynamically transcoding data transmitted between computers
US20020094868A1 (en) 2001-01-16 2002-07-18 Alma Tuck Methods for interactive internet advertising, apparatuses and systems including same
US20020107884A1 (en) 2001-02-08 2002-08-08 International Business Machines Corporation Prioritizing and visually distinguishing sets of hyperlinks in hypertext world wide web documents in accordance with weights based upon attributes of web documents linked to such hyperlinks
US6441834B1 (en) 1998-03-26 2002-08-27 Sap Portals, Inc. Hyper-relational correlation server
US20020124022A1 (en) 2000-12-29 2002-09-05 Yoo Chin-Woo Method and apparatus for processing web documents using multi-browse function
US6448986B1 (en) 1999-09-07 2002-09-10 Spotware Technologies Llc Method and system for displaying graphical objects on a display screen
US20020126155A1 (en) 2001-01-20 2002-09-12 Catherine Lin-Hendel Automated scrolling of browser content and automated activation of browser links
US20020135617A1 (en) 2001-03-23 2002-09-26 Backweb Technologies Ltd. Proactive desktop portal
US20020143826A1 (en) 2001-03-29 2002-10-03 International Business Machines Corporation Method, apparatus, and program for magnifying the text of a link while still retaining browser function in the magnified display
US20020147779A1 (en) 2001-04-05 2002-10-10 International Business Machines Corporation Method and computer program product for providing email that guides a recipient through a set of associated web pages
US20020147788A1 (en) 1996-09-13 2002-10-10 Julien T. Nguyen Dynamic preloading of web pages
US20020163545A1 (en) 2001-05-01 2002-11-07 Hii Samuel S. Method of previewing web page content while interacting with multiple web page controls
US20020165925A1 (en) 2001-03-08 2002-11-07 International Business Machines Corporation Predictive caching and highlighting of web pages
US20020169828A1 (en) 2000-10-24 2002-11-14 Simon Blanchard Method and device for prefetching a referenced resource
US20020182578A1 (en) 2001-06-01 2002-12-05 Rachman Bruce A. Online course support method and system
US20020186249A1 (en) 1999-10-28 2002-12-12 Qi Lu Method and system of facilitating automatic login to a web site using an internet browser
US6496208B1 (en) 1998-09-10 2002-12-17 Microsoft Corporation Method and apparatus for visualizing and exploring large hierarchical structures
US20020192623A1 (en) 2001-06-15 2002-12-19 Brad Sather Method and apparatus for delivering educational training and assessment via the internet
US20030009495A1 (en) 2001-06-29 2003-01-09 Akli Adjaoute Systems and methods for filtering electronic content
US20030014415A1 (en) 2000-02-23 2003-01-16 Yuval Weiss Systems and methods for generating and providing previews of electronic files such as web files
US20030023582A1 (en) 2001-07-27 2003-01-30 International Business Machines Corporation Identifying links of interest in a web page
US20030043193A1 (en) 2001-08-28 2003-03-06 Alegria Andrew P. System and method of improving performance of a web browser
US6549218B1 (en) 1999-03-31 2003-04-15 Microsoft Corporation Dynamic effects for computer display windows
US20030080995A1 (en) 2001-10-12 2003-05-01 United Virtualities, Inc. Contextually adaptive web browser
US20030090510A1 (en) 2000-02-04 2003-05-15 Shuping David T. System and method for web browsing
US20030110272A1 (en) 2001-12-11 2003-06-12 Du Castel Bertrand System and method for filtering content
US6604103B1 (en) 1994-09-02 2003-08-05 Mark A. Wolfe System and method for information retrieval employing a preloading procedure
US20030146939A1 (en) 2001-09-24 2003-08-07 John Petropoulos Methods and apparatus for mouse-over preview of contextually relevant information
US20030163454A1 (en) 2002-02-26 2003-08-28 Brian Jacobsen Subject specific search engine
US20030163372A1 (en) 2001-12-07 2003-08-28 Kolsy Mohammed H. Delivering content and advertisement
US6651044B1 (en) 1996-03-25 2003-11-18 Martin L. Stoneman Intelligent sociable computer systems
US6667751B1 (en) 2000-07-13 2003-12-23 International Business Machines Corporation Linear web browser history viewer
US6675202B1 (en) 2000-05-30 2004-01-06 Cary D. Perttunen Methods, articles and apparatus for providing a browsing session
US6675159B1 (en) 2000-07-27 2004-01-06 Science Applic Int Corp Concept-based search and retrieval system
US20040006609A1 (en) 2002-06-20 2004-01-08 Skrepetos Nicholas C. System and method for dynamically extending the capabilities of an application for enhancing a user's web browsing experience
US6678793B1 (en) 2000-09-27 2004-01-13 International Business Machines Corporation User-based selective cache content replacement technique
US20040024640A1 (en) 2000-12-21 2004-02-05 Engle Joseph Craig System and method for manipulating internet-based advertisements
US20040044571A1 (en) 2002-08-27 2004-03-04 Bronnimann Eric Robert Method and system for providing advertising listing variance in distribution feeds over the internet to maximize revenue to the advertising distributor
US20040049541A1 (en) 2002-09-10 2004-03-11 Swahn Alan Earl Information retrieval and display system
US20040054968A1 (en) 2001-07-03 2004-03-18 Daniel Savage Web page with system for displaying miniature visual representations of search engine results
US20040064471A1 (en) 1999-07-30 2004-04-01 Brown Michael Wayne Web page thumbnails and user configured complementary information provided from a server
US20040093562A1 (en) 2002-08-23 2004-05-13 Diorio Donato S. System and method for a hierarchical browser
US6741188B1 (en) 1999-10-22 2004-05-25 John M. Miller System for dynamically pushing information to a user utilizing global positioning system
US20040125149A1 (en) 2002-12-30 2004-07-01 Eugene Lapidous Method and apparatus for managing display of popup windows
US6763334B1 (en) 1999-12-09 2004-07-13 Action Click Co., Ltd. System and method of arranging delivery of advertisements over a network such as the internet
US20040141016A1 (en) 2002-11-29 2004-07-22 Shinji Fukatsu Linked contents browsing support device, linked contents continuous browsing support device, and method and program therefor, and recording medium therewith
US20040158799A1 (en) 2003-02-07 2004-08-12 Breuel Thomas M. Information extraction from html documents by structural matching
US20040168121A1 (en) 2002-06-20 2004-08-26 Bellsouth Intellectual Property Corporation System and method for providing substitute content in place of blocked content
US20040167928A1 (en) 2002-09-24 2004-08-26 Darrell Anderson Serving content-relevant advertisements with client-side device support
US6785732B1 (en) * 2000-09-11 2004-08-31 International Business Machines Corporation Web server apparatus and method for virus checking
US20040189695A1 (en) 2003-03-24 2004-09-30 James Brian Kurtz Extensible object previewer in a shell browser
US20040189696A1 (en) 2003-03-31 2004-09-30 Kenneth Shirriff System and method for internet content selection and retrieval
US20040205514A1 (en) * 2002-06-28 2004-10-14 Microsoft Corporation Hyperlink preview utility and method
US20040205633A1 (en) 2002-01-11 2004-10-14 International Business Machines Corporation Previewing file or document content
US20040250219A1 (en) 2003-06-03 2004-12-09 Nec Corporation Page browsing apparatus
US20050004844A1 (en) 2003-04-23 2005-01-06 Olivier Attia Integrating barcode scanner enabled services in existing e-commerce applications using a floating pop-up web window
US20050022013A1 (en) 2001-10-04 2005-01-27 Joerg Schwenk Method for customized data output on a web site
US20050021851A1 (en) 2003-06-09 2005-01-27 Kimmo Hamynen System, apparatus, and method for directional control input browsing in smart phones
US20050050443A1 (en) 2003-08-26 2005-03-03 International Business Machines Corporation System and method for starting a buffer pool
US20050055644A1 (en) 2003-09-04 2005-03-10 International Business Machines Corporation Method, system and program product for obscuring supplemental web content
US20050055632A1 (en) 2003-08-18 2005-03-10 Schwartz Daniel M. Method of producing and delivering an electronic magazine in full-screen format
US20050055426A1 (en) 2000-06-12 2005-03-10 Kim Smith System, method and computer program product that pre-caches content to provide timely information to a user
US6874126B1 (en) 2001-11-30 2005-03-29 View Space Technologies Method and apparatus for controlling content display by the cursor motion
US20050086109A1 (en) 2003-10-17 2005-04-21 Mcfadden Jeffrey A. Methods and apparatus for posting messages on documents delivered over a computer network
US20050086612A1 (en) 2003-07-25 2005-04-21 David Gettman Graphical user interface for an information display system
US20050097438A1 (en) 2003-09-24 2005-05-05 Jacobson Mark D. Method and system for creating a digital document altered in response to at least one event
US20050119935A1 (en) 2003-12-01 2005-06-02 International Business Machines Corporation System and method for managing the display of unsolicited instant web advertisements
US20050138143A1 (en) 2003-12-23 2005-06-23 Thompson Blake A. Pre-fetching linked content
US20050149874A1 (en) 2003-12-11 2005-07-07 Nokia Corporation Internet terminal, WWW-browser located in the terminal and a method for setting a display mode of the terminal
US20050149726A1 (en) 2003-10-21 2005-07-07 Amit Joshi Systems and methods for secure client applications
US20050198587A1 (en) 2001-11-27 2005-09-08 Pennell Mark E. Method and apparatus for defeating a mechanism that blocks windows
US20050216856A1 (en) 2004-03-23 2005-09-29 Matti Michael C System and method for displaying information on an interface device
US20050235203A1 (en) 2002-03-15 2005-10-20 Koninklijke Philips Electronics N.V. Previewing documents on a computer system
US20060020904A1 (en) 2004-07-09 2006-01-26 Antti Aaltonen Stripe user interface
US7007237B1 (en) 2000-05-03 2006-02-28 Microsoft Corporation Method and system for accessing web pages in the background
US20060047634A1 (en) 2004-08-26 2006-03-02 Aaron Jeffrey A Filtering information at a data network based on filter rules associated with consumer processing devices
US20060053224A1 (en) 2004-09-07 2006-03-09 Routeone Llc, A Michigan Limited Liability Company Method and system for communicating and exchanging data between browser frames
US20060069618A1 (en) 2004-09-27 2006-03-30 Scott Milener Method and apparatus for enhanced browsing
US20060069617A1 (en) 2004-09-27 2006-03-30 Scott Milener Method and apparatus for prefetching electronic data for enhanced browsing
US20060070012A1 (en) 2004-09-27 2006-03-30 Scott Milener Method and apparatus for enhanced browsing
US20060069996A1 (en) 2004-09-30 2006-03-30 Greaves P D Fisheye viewer and wiggly icon
US20060074984A1 (en) 2004-09-27 2006-04-06 Scott Milener Graphical tree depicting search or browsing history
US20060101514A1 (en) 2004-11-08 2006-05-11 Scott Milener Method and apparatus for look-ahead security scanning
US20060101341A1 (en) 2004-11-10 2006-05-11 James Kelly Method and apparatus for enhanced browsing, using icons to indicate status of content and/or content retrieval
US7047033B2 (en) 2000-02-01 2006-05-16 Infogin Ltd Methods and apparatus for analyzing, processing and formatting network information such as web-pages
US7051029B1 (en) 2001-01-05 2006-05-23 Revenue Science, Inc. Identifying and reporting on frequent sequences of events in usage data
US20060143568A1 (en) 2004-11-10 2006-06-29 Scott Milener Method and apparatus for enhanced browsing
US7117443B1 (en) 2001-09-24 2006-10-03 Zilka Kevin J Network browser graphical user interface for managing web content
US20060277478A1 (en) 2005-06-02 2006-12-07 Microsoft Corporation Temporary title and menu bar
US7429993B2 (en) 2004-09-17 2008-09-30 Microsoft Corporation Method and system for presenting functionally-transparent, unobtrusive on-screen windows
US7506260B2 (en) 2003-10-31 2009-03-17 Yahoo! Inc. Method and system of providing browser functionality through a browser button
US7640361B1 (en) * 2001-08-24 2009-12-29 Mcafee, Inc. Systems and methods for converting infected electronic files to a safe format
US7765143B1 (en) 2003-11-04 2010-07-27 Trading Technologies International, Inc. System and method for event driven virtual workspace
US7774799B1 (en) 2003-03-26 2010-08-10 Microsoft Corporation System and method for linking page content with a media file and displaying the links
US7792925B1 (en) 2001-03-20 2010-09-07 Apple Inc. One click full-screen video system and method

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6993591B1 (en) 1998-09-30 2006-01-31 Lucent Technologies Inc. Method and apparatus for prefetching internet resources based on estimated round trip time
AU2001264870A1 (en) 2000-05-25 2001-12-03 Qmgn, Inc. Enhanced downloading from a computer network and profiling of a user of a computer network
US20030135824A1 (en) 2002-01-15 2003-07-17 International Business Machines Corporation System for delayed viewing of selected documents hyperlinked to hypertext documents received at a user interactive receiving display station in a computer controlled communication network
US20040088375A1 (en) 2002-11-01 2004-05-06 Sethi Bhupinder S. Method for prefetching Web pages to improve response time networking
US7590631B2 (en) 2004-09-02 2009-09-15 Hewlett-Packard Development Company, L.P. System and method for guiding navigation through a hypertext system
US8327440B2 (en) * 2004-11-08 2012-12-04 Bt Web Solutions, Llc Method and apparatus for enhanced browsing with security scanning
US20080120289A1 (en) 2006-11-22 2008-05-22 Alon Golan Method and systems for real-time active refinement of search results

Patent Citations (154)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5796967A (en) 1988-07-15 1998-08-18 International Business Machines Corporation Method for presenting applications in an interactive service
US5307086A (en) 1991-10-08 1994-04-26 International Business Machines Corporation Method of implementing a preview window in an object oriented programming system
US5659693A (en) 1992-08-27 1997-08-19 Starfish Software, Inc. User interface with individually configurable panel interface for use in a computer system
US5680562A (en) 1993-06-11 1997-10-21 Apple Computer, Inc. Computer system with graphical user interface including automated enclosures
US5664948A (en) 1994-07-29 1997-09-09 Seiko Communications Holding N.V. Delivery of data including preloaded advertising data
US6301576B1 (en) 1994-09-02 2001-10-09 Mark A. Wolfe Document retrieval system for retrieval of a first search document and a last search document from database
US5715445A (en) 1994-09-02 1998-02-03 Wolfe; Mark A. Document retrieval system employing a preloading procedure
US5946682A (en) 1994-09-02 1999-08-31 Wolfe; Mark A. Document retrieval system and method employing a preloading procedure
US6604103B1 (en) 1994-09-02 2003-08-05 Mark A. Wolfe System and method for information retrieval employing a preloading procedure
US5495566A (en) 1994-11-22 1996-02-27 Microsoft Corporation Scrolling contents of a window
US5872922A (en) 1995-03-07 1999-02-16 Vtel Corporation Method and apparatus for a video conference user interface
US5877746A (en) 1995-11-16 1999-03-02 Apple Computer, Inc. User interface for all-in-one integrated office system
US5805815A (en) 1995-12-18 1998-09-08 At&T Corp. Method and apparatus for providing interim data displays while awaiting of retrieval linked information
US5781909A (en) 1996-02-13 1998-07-14 Microtouch Systems, Inc. Supervised satellite kiosk management system with combined local and remote data storage
US6199098B1 (en) 1996-02-23 2001-03-06 Silicon Graphics, Inc. Method and apparatus for providing an expandable, hierarchical index in a hypertextual, client-server environment
US6651044B1 (en) 1996-03-25 2003-11-18 Martin L. Stoneman Intelligent sociable computer systems
US6035330A (en) 1996-03-29 2000-03-07 British Telecommunications World wide web navigational mapping system and method
US5880733A (en) 1996-04-30 1999-03-09 Microsoft Corporation Display system and method for displaying windows of an operating system to provide a three-dimensional workspace for a computer system
US20020032699A1 (en) 1996-06-17 2002-03-14 Nicholas Hector Edwards User interface for network browser including pre processor for links embedded in hypermedia documents
US6584498B2 (en) 1996-09-13 2003-06-24 Planet Web, Inc. Dynamic preloading of web pages
US20020147788A1 (en) 1996-09-13 2002-10-10 Julien T. Nguyen Dynamic preloading of web pages
US7647550B1 (en) 1996-09-13 2010-01-12 Nguyen Julien T Dynamic preloading of web pages
US5890172A (en) 1996-10-08 1999-03-30 Tenretni Dynamics, Inc. Method and apparatus for retrieving data from a network using location identifiers
US5978847A (en) 1996-12-26 1999-11-02 Intel Corporation Attribute pre-fetch of web pages
US6011537A (en) 1997-01-27 2000-01-04 Slotznick; Benjamin System for delivering and simultaneously displaying primary and secondary information, and for displaying only the secondary information during interstitial space
US20010016845A1 (en) 1997-02-10 2001-08-23 Bruce Tribbensee Method and apparatus for receiving information in response to a request from an email client
US5963952A (en) 1997-02-21 1999-10-05 International Business Machines Corp. Internet browser based data entry architecture
US6421733B1 (en) 1997-03-25 2002-07-16 Intel Corporation System for dynamically transcoding data transmitted between computers
US6182072B1 (en) 1997-03-26 2001-01-30 Webtv Networks, Inc. Method and apparatus for generating a tour of world wide web sites
US5991740A (en) 1997-06-10 1999-11-23 Messer; Stephen Dale Data processing system for integrated tracking and management of commerce related activities on a public access network
US6025844A (en) 1997-06-12 2000-02-15 Netscape Communications Corporation Method and system for creating dynamic link views
US5973688A (en) 1997-10-31 1999-10-26 May; Gregory J Computing system having delayed keyboard shortcut hints
US6243091B1 (en) 1997-11-21 2001-06-05 International Business Machines Corporation Global history view
US5987466A (en) 1997-11-25 1999-11-16 International Business Machines Corporation Presenting web pages with discrete, browser-controlled complexity levels
US6230168B1 (en) 1997-11-26 2001-05-08 International Business Machines Corp. Method for automatically constructing contexts in a hypertext collection
US5991713A (en) 1997-11-26 1999-11-23 International Business Machines Corp. Efficient method for compressing, storing, searching and transmitting natural language text
US6088803A (en) 1997-12-30 2000-07-11 Intel Corporation System for virus-checking network data during download to a client device
US6085226A (en) 1998-01-15 2000-07-04 Microsoft Corporation Method and apparatus for utility-directed prefetching of web pages into local cache using continual computation and user models
US6067565A (en) 1998-01-15 2000-05-23 Microsoft Corporation Technique for prefetching a web page of potential future interest in lieu of continuing a current information download
US6222541B1 (en) 1998-01-20 2001-04-24 International Business Machines Corporation Method and apparatus for fast-path location and selection of links
US6182133B1 (en) 1998-02-06 2001-01-30 Microsoft Corporation Method and apparatus for display of information prefetching and cache status having variable visual indication based on a period of time since prefetching
US6441834B1 (en) 1998-03-26 2002-08-27 Sap Portals, Inc. Hyper-relational correlation server
US6317791B1 (en) 1998-06-30 2001-11-13 Webtv Networks, Inc. System and method for distributing data over a communications network for display during start-up
US6128655A (en) 1998-07-10 2000-10-03 International Business Machines Corporation Distribution mechanism for filtering, formatting and reuse of web based content
US6256028B1 (en) 1998-08-14 2001-07-03 Microsoft Corporation Dynamic site browser
US6496208B1 (en) 1998-09-10 2002-12-17 Microsoft Corporation Method and apparatus for visualizing and exploring large hierarchical structures
US6208354B1 (en) 1998-11-03 2001-03-27 Ati International Srl Method and apparatus for displaying multiple graphics images in a mixed video graphics display
US20010040584A1 (en) 1999-02-16 2001-11-15 Deleeuw William C. Method of enabling display transparency for application programs without native transparency support
US6549218B1 (en) 1999-03-31 2003-04-15 Microsoft Corporation Dynamic effects for computer display windows
US6262724B1 (en) 1999-04-15 2001-07-17 Apple Computer, Inc. User interface for presenting media information
US20010047375A1 (en) 1999-07-14 2001-11-29 Marcus Fest Method for selecting multiple hyperlinks
US20020057299A1 (en) 1999-07-15 2002-05-16 Dobronsky Oren System and method for the dynamic improvement of internet browser navigability
US20040064471A1 (en) 1999-07-30 2004-04-01 Brown Michael Wayne Web page thumbnails and user configured complementary information provided from a server
US7167875B2 (en) 1999-07-30 2007-01-23 International Business Machines Corporation Web page thumbnails and user configured complementary information provided from a server
US6356908B1 (en) 1999-07-30 2002-03-12 International Business Machines Corporation Automatic web page thumbnail generation
US6448986B1 (en) 1999-09-07 2002-09-10 Spotware Technologies Llc Method and system for displaying graphical objects on a display screen
US6741188B1 (en) 1999-10-22 2004-05-25 John M. Miller System for dynamically pushing information to a user utilizing global positioning system
US20020186249A1 (en) 1999-10-28 2002-12-12 Qi Lu Method and system of facilitating automatic login to a web site using an internet browser
US20010003194A1 (en) 1999-12-01 2001-06-07 Satoshi Shimura Content supply apparatus and machine readable recording media for recording a program
US20020010757A1 (en) 1999-12-03 2002-01-24 Joel Granik Method and apparatus for replacement of on-line advertisements
US6763334B1 (en) 1999-12-09 2004-07-13 Action Click Co., Ltd. System and method of arranging delivery of advertisements over a network such as the internet
US7047033B2 (en) 2000-02-01 2006-05-16 Infogin Ltd Methods and apparatus for analyzing, processing and formatting network information such as web-pages
US20030090510A1 (en) 2000-02-04 2003-05-15 Shuping David T. System and method for web browsing
US20010029538A1 (en) 2000-02-15 2001-10-11 Justin Blockton Method and system for collecting and providing multimedia content
US7162493B2 (en) 2000-02-23 2007-01-09 Penta Trading Ltd. Systems and methods for generating and providing previews of electronic files such as web files
US20030014415A1 (en) 2000-02-23 2003-01-16 Yuval Weiss Systems and methods for generating and providing previews of electronic files such as web files
US20020080170A1 (en) 2000-03-13 2002-06-27 Goldberg Elisha Y. Information management system
US20010037314A1 (en) 2000-03-30 2001-11-01 Ishikawa Mark M. System, method and apparatus for authenticating the distribution of data
US7007237B1 (en) 2000-05-03 2006-02-28 Microsoft Corporation Method and system for accessing web pages in the background
US6675202B1 (en) 2000-05-30 2004-01-06 Cary D. Perttunen Methods, articles and apparatus for providing a browsing session
US20010050658A1 (en) 2000-06-12 2001-12-13 Milton Adams System and method for displaying online content in opposing-page magazine format
US20050055426A1 (en) 2000-06-12 2005-03-10 Kim Smith System, method and computer program product that pre-caches content to provide timely information to a user
US6667751B1 (en) 2000-07-13 2003-12-23 International Business Machines Corporation Linear web browser history viewer
US6675159B1 (en) 2000-07-27 2004-01-06 Science Applic Int Corp Concept-based search and retrieval system
US20020030697A1 (en) 2000-08-11 2002-03-14 Tomoya Oikawa Information reading apparatus and information reading method
US6785732B1 (en) * 2000-09-11 2004-08-31 International Business Machines Corporation Web server apparatus and method for virus checking
US6678793B1 (en) 2000-09-27 2004-01-13 International Business Machines Corporation User-based selective cache content replacement technique
US20020169828A1 (en) 2000-10-24 2002-11-14 Simon Blanchard Method and device for prefetching a referenced resource
US20020059166A1 (en) 2000-11-02 2002-05-16 Waytech Development Inc Method and system for extracting contents of web pages
US20040024640A1 (en) 2000-12-21 2004-02-05 Engle Joseph Craig System and method for manipulating internet-based advertisements
US20020124022A1 (en) 2000-12-29 2002-09-05 Yoo Chin-Woo Method and apparatus for processing web documents using multi-browse function
US7051029B1 (en) 2001-01-05 2006-05-23 Revenue Science, Inc. Identifying and reporting on frequent sequences of events in usage data
US20020091739A1 (en) 2001-01-09 2002-07-11 Ferlitsch Andrew Rodney Systems and methods for manipulating electronic information using a three-dimensional iconic representation
US20020094868A1 (en) 2001-01-16 2002-07-18 Alma Tuck Methods for interactive internet advertising, apparatuses and systems including same
US20020126155A1 (en) 2001-01-20 2002-09-12 Catherine Lin-Hendel Automated scrolling of browser content and automated activation of browser links
US20020107884A1 (en) 2001-02-08 2002-08-08 International Business Machines Corporation Prioritizing and visually distinguishing sets of hyperlinks in hypertext world wide web documents in accordance with weights based upon attributes of web documents linked to such hyperlinks
US20020165925A1 (en) 2001-03-08 2002-11-07 International Business Machines Corporation Predictive caching and highlighting of web pages
US7792925B1 (en) 2001-03-20 2010-09-07 Apple Inc. One click full-screen video system and method
US20020135617A1 (en) 2001-03-23 2002-09-26 Backweb Technologies Ltd. Proactive desktop portal
US20020143826A1 (en) 2001-03-29 2002-10-03 International Business Machines Corporation Method, apparatus, and program for magnifying the text of a link while still retaining browser function in the magnified display
US20020147779A1 (en) 2001-04-05 2002-10-10 International Business Machines Corporation Method and computer program product for providing email that guides a recipient through a set of associated web pages
US20020163545A1 (en) 2001-05-01 2002-11-07 Hii Samuel S. Method of previewing web page content while interacting with multiple web page controls
US20020182578A1 (en) 2001-06-01 2002-12-05 Rachman Bruce A. Online course support method and system
US20020192623A1 (en) 2001-06-15 2002-12-19 Brad Sather Method and apparatus for delivering educational training and assessment via the internet
US20030009495A1 (en) 2001-06-29 2003-01-09 Akli Adjaoute Systems and methods for filtering electronic content
US20040054968A1 (en) 2001-07-03 2004-03-18 Daniel Savage Web page with system for displaying miniature visual representations of search engine results
US20030023582A1 (en) 2001-07-27 2003-01-30 International Business Machines Corporation Identifying links of interest in a web page
US7640361B1 (en) * 2001-08-24 2009-12-29 Mcafee, Inc. Systems and methods for converting infected electronic files to a safe format
US20030043193A1 (en) 2001-08-28 2003-03-06 Alegria Andrew P. System and method of improving performance of a web browser
US7117443B1 (en) 2001-09-24 2006-10-03 Zilka Kevin J Network browser graphical user interface for managing web content
US7047502B2 (en) 2001-09-24 2006-05-16 Ask Jeeves, Inc. Methods and apparatus for mouse-over preview of contextually relevant information
US20030146939A1 (en) 2001-09-24 2003-08-07 John Petropoulos Methods and apparatus for mouse-over preview of contextually relevant information
US20050022013A1 (en) 2001-10-04 2005-01-27 Joerg Schwenk Method for customized data output on a web site
US20030080995A1 (en) 2001-10-12 2003-05-01 United Virtualities, Inc. Contextually adaptive web browser
US20050198587A1 (en) 2001-11-27 2005-09-08 Pennell Mark E. Method and apparatus for defeating a mechanism that blocks windows
US6874126B1 (en) 2001-11-30 2005-03-29 View Space Technologies Method and apparatus for controlling content display by the cursor motion
US20030163372A1 (en) 2001-12-07 2003-08-28 Kolsy Mohammed H. Delivering content and advertisement
US20030110272A1 (en) 2001-12-11 2003-06-12 Du Castel Bertrand System and method for filtering content
US20040205633A1 (en) 2002-01-11 2004-10-14 International Business Machines Corporation Previewing file or document content
US20030163454A1 (en) 2002-02-26 2003-08-28 Brian Jacobsen Subject specific search engine
US20050235203A1 (en) 2002-03-15 2005-10-20 Koninklijke Philips Electronics N.V. Previewing documents on a computer system
US20040006609A1 (en) 2002-06-20 2004-01-08 Skrepetos Nicholas C. System and method for dynamically extending the capabilities of an application for enhancing a user's web browsing experience
US20040168121A1 (en) 2002-06-20 2004-08-26 Bellsouth Intellectual Property Corporation System and method for providing substitute content in place of blocked content
US20040205514A1 (en) * 2002-06-28 2004-10-14 Microsoft Corporation Hyperlink preview utility and method
US20040093562A1 (en) 2002-08-23 2004-05-13 Diorio Donato S. System and method for a hierarchical browser
US20040044571A1 (en) 2002-08-27 2004-03-04 Bronnimann Eric Robert Method and system for providing advertising listing variance in distribution feeds over the internet to maximize revenue to the advertising distributor
US20040049541A1 (en) 2002-09-10 2004-03-11 Swahn Alan Earl Information retrieval and display system
US20040167928A1 (en) 2002-09-24 2004-08-26 Darrell Anderson Serving content-relevant advertisements with client-side device support
US7296230B2 (en) 2002-11-29 2007-11-13 Nippon Telegraph And Telephone Corporation Linked contents browsing support device, linked contents continuous browsing support device, and method and program therefor, and recording medium therewith
US20040141016A1 (en) 2002-11-29 2004-07-22 Shinji Fukatsu Linked contents browsing support device, linked contents continuous browsing support device, and method and program therefor, and recording medium therewith
US20040125149A1 (en) 2002-12-30 2004-07-01 Eugene Lapidous Method and apparatus for managing display of popup windows
US20040158799A1 (en) 2003-02-07 2004-08-12 Breuel Thomas M. Information extraction from html documents by structural matching
US20040189695A1 (en) 2003-03-24 2004-09-30 James Brian Kurtz Extensible object previewer in a shell browser
US7774799B1 (en) 2003-03-26 2010-08-10 Microsoft Corporation System and method for linking page content with a media file and displaying the links
US20040189696A1 (en) 2003-03-31 2004-09-30 Kenneth Shirriff System and method for internet content selection and retrieval
US20050004844A1 (en) 2003-04-23 2005-01-06 Olivier Attia Integrating barcode scanner enabled services in existing e-commerce applications using a floating pop-up web window
US20040250219A1 (en) 2003-06-03 2004-12-09 Nec Corporation Page browsing apparatus
US20050021851A1 (en) 2003-06-09 2005-01-27 Kimmo Hamynen System, apparatus, and method for directional control input browsing in smart phones
US20050086612A1 (en) 2003-07-25 2005-04-21 David Gettman Graphical user interface for an information display system
US20050055632A1 (en) 2003-08-18 2005-03-10 Schwartz Daniel M. Method of producing and delivering an electronic magazine in full-screen format
US20050050443A1 (en) 2003-08-26 2005-03-03 International Business Machines Corporation System and method for starting a buffer pool
US20050055644A1 (en) 2003-09-04 2005-03-10 International Business Machines Corporation Method, system and program product for obscuring supplemental web content
US20050097438A1 (en) 2003-09-24 2005-05-05 Jacobson Mark D. Method and system for creating a digital document altered in response to at least one event
US20050086109A1 (en) 2003-10-17 2005-04-21 Mcfadden Jeffrey A. Methods and apparatus for posting messages on documents delivered over a computer network
US20050149726A1 (en) 2003-10-21 2005-07-07 Amit Joshi Systems and methods for secure client applications
US7506260B2 (en) 2003-10-31 2009-03-17 Yahoo! Inc. Method and system of providing browser functionality through a browser button
US7765143B1 (en) 2003-11-04 2010-07-27 Trading Technologies International, Inc. System and method for event driven virtual workspace
US20050119935A1 (en) 2003-12-01 2005-06-02 International Business Machines Corporation System and method for managing the display of unsolicited instant web advertisements
US20050149874A1 (en) 2003-12-11 2005-07-07 Nokia Corporation Internet terminal, WWW-browser located in the terminal and a method for setting a display mode of the terminal
US20050138143A1 (en) 2003-12-23 2005-06-23 Thompson Blake A. Pre-fetching linked content
US20050216856A1 (en) 2004-03-23 2005-09-29 Matti Michael C System and method for displaying information on an interface device
US20060020904A1 (en) 2004-07-09 2006-01-26 Antti Aaltonen Stripe user interface
US20060047634A1 (en) 2004-08-26 2006-03-02 Aaron Jeffrey A Filtering information at a data network based on filter rules associated with consumer processing devices
US20060053224A1 (en) 2004-09-07 2006-03-09 Routeone Llc, A Michigan Limited Liability Company Method and system for communicating and exchanging data between browser frames
US7429993B2 (en) 2004-09-17 2008-09-30 Microsoft Corporation Method and system for presenting functionally-transparent, unobtrusive on-screen windows
US20060074984A1 (en) 2004-09-27 2006-04-06 Scott Milener Graphical tree depicting search or browsing history
US20060069618A1 (en) 2004-09-27 2006-03-30 Scott Milener Method and apparatus for enhanced browsing
US20060069617A1 (en) 2004-09-27 2006-03-30 Scott Milener Method and apparatus for prefetching electronic data for enhanced browsing
US20060070012A1 (en) 2004-09-27 2006-03-30 Scott Milener Method and apparatus for enhanced browsing
US20060069996A1 (en) 2004-09-30 2006-03-30 Greaves P D Fisheye viewer and wiggly icon
US20060101514A1 (en) 2004-11-08 2006-05-11 Scott Milener Method and apparatus for look-ahead security scanning
US20060143568A1 (en) 2004-11-10 2006-06-29 Scott Milener Method and apparatus for enhanced browsing
US20060101341A1 (en) 2004-11-10 2006-05-11 James Kelly Method and apparatus for enhanced browsing, using icons to indicate status of content and/or content retrieval
US20060277478A1 (en) 2005-06-02 2006-12-07 Microsoft Corporation Temporary title and menu bar

Non-Patent Citations (10)

* Cited by examiner, † Cited by third party
Title
Alexa Snapshot, Alexa Toolbar; 8 pages printed Jan. 31, 2005 from http://www.alexa.com.
Answwwer Search Robot; 2 pages printed Jan. 31, 2005 from http://www.answwwer.net.
International Search Report and Written Opinion of the International Search Authority (ISA) for International Application No. PCT/US2005/034852, filed Sep. 26, 2005, mailed from ISA on Feb. 6, 2006, (11 pgs.).
LostGoggles; 9 pages printed Jan. 31, 2005 from http://www.lostgoggles.com.
MicroSurfer; 5 pages printed Jan. 31, 2005 from http://www.microsurfer.com.
Surfiel; 16 pages printed Jan. 31, 2005 from http://www.speed-system.co.jp/en.
UCmore; 8 pages printed Jan. 31, 2005 from http://www.ucmore.com.
Viewpoint Too1bar; 3 pages printed Jan. 31, 2005 from http://www.viewpoint.corn.
W3Schools, "JavaScript Tutorial", http :1 /www.w3schools.com/js/default.asp, http :1 /web.archive.org/web/20021013180557/www.w3schools.com/js/default.asp, Oct. 13, 2002, printout pp. 1-3.
Wikipedia, "PHP programming language", http://www.wikipedia.org/wiki/PHP, http://web.archive.org/web/20030304011841/www.wikipedia.org/wiki/PHP, Mar. 4, 2003, printout pp. 1-2.

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9584539B2 (en) * 2004-09-27 2017-02-28 Cufer Asset Ltd. L.L.C. Enhanced browsing with security scanning
US20170171238A1 (en) * 2004-09-27 2017-06-15 Cufer Asset Ltd. L.L.C. Enhanced browsing with security scanning
US9942260B2 (en) * 2004-09-27 2018-04-10 Cufer Asset Ltd. L.L.C. Enhanced browsing with security scanning
US10382471B2 (en) * 2004-09-27 2019-08-13 Cufer Asset Ltd. L.L.C. Enhanced browsing with security scanning
US10592591B2 (en) 2004-09-27 2020-03-17 Cufer Asset Ltd. L.L.C. Enhanced browsing with indication of prefetching status
US11122072B2 (en) * 2004-09-27 2021-09-14 Cufer Asset Ltd. L.L.C. Enhanced browsing with security scanning
US9602620B1 (en) * 2011-09-26 2017-03-21 Google Inc. Content-facilitated speculative preparation and rendering
US10788984B2 (en) 2015-05-08 2020-09-29 Alibaba Group Holding Limited Method, device, and system for displaying user interface

Also Published As

Publication number Publication date
US11122072B2 (en) 2021-09-14
US10382471B2 (en) 2019-08-13
US8327440B2 (en) 2012-12-04
US20170171238A1 (en) 2017-06-15
US20130055395A1 (en) 2013-02-28
US20190364069A1 (en) 2019-11-28
US20160173523A1 (en) 2016-06-16
US20150013009A1 (en) 2015-01-08
US9942260B2 (en) 2018-04-10
US8959630B2 (en) 2015-02-17
US9584539B2 (en) 2017-02-28
US20180234452A1 (en) 2018-08-16
US20120011588A1 (en) 2012-01-12

Similar Documents

Publication Publication Date Title
US11122072B2 (en) Enhanced browsing with security scanning
US8037527B2 (en) Method and apparatus for look-ahead security scanning
US10592591B2 (en) Enhanced browsing with indication of prefetching status
US7840911B2 (en) Method and apparatus for enhanced browsing
US20060074984A1 (en) Graphical tree depicting search or browsing history
US20060069618A1 (en) Method and apparatus for enhanced browsing
US20060069617A1 (en) Method and apparatus for prefetching electronic data for enhanced browsing
WO2006037054A1 (en) Method and apparatus for enhanced browsing
US20060143568A1 (en) Method and apparatus for enhanced browsing
US7047502B2 (en) Methods and apparatus for mouse-over preview of contextually relevant information
US7353246B1 (en) System and method for enabling information associations
US8041701B2 (en) Enhanced graphical interfaces for displaying visual data
US20060277167A1 (en) Search apparatus having a search result matrix display
US20110173569A1 (en) Preview Functionality for Increased Browsing Speed
EP1638016A1 (en) Methods and systems for filtering URLs, webpages, and content
US20080022229A1 (en) Methods and systems for enhancing internet experiences using previews
KR20110099225A (en) Previewing search results for suggested refinement terms and vertical searches
KR20140072877A (en) Techniques for managing and viewing followed content
JP2007128119A (en) Method and system for carrying out filter processing of url, web page, and content
WO2010035147A2 (en) Method and system for providing electronic documents

Legal Events

Date Code Title Description
AS Assignment

Owner name: BT WEB SOLUTIONS, LLC, DELAWARE

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BROWSTER, INC.;REEL/FRAME:033300/0492

Effective date: 20070328

Owner name: BT WEB SOLUTIONS, LLC, DELAWARE

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BROWSTER, INC.;REEL/FRAME:033300/0487

Effective date: 20070720

AS Assignment

Owner name: CUFER ASSET LTD. L.L.C., DELAWARE

Free format text: MERGER;ASSIGNOR:BT WEB SOLUTIONS, LLC;REEL/FRAME:036841/0964

Effective date: 20150812

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8