Abstract:
Exemplary embodiments of the present invention disclose a method and system for configuring a web browser executing in a computer to render a web page for display at the computer. A first hyperlink request is received from a first program executing in the computer to obtain and render a first web page corresponding to the first hyperlink. In response, the web browser obtains the first web page, and renders the first web page according to a first set of web page configuration parameters. A second hyperlink request is received from a second program executing in the computer to obtain and render a second web page corresponding to the second hyperlink. In response, the web browser obtains the second web page, and renders the second web page according to a second set of web page configuration parameters that differs in part from the first set of web page configuration parameters.

Description:
FIELD OF THE INVENTION 
     The present invention relates generally to web browsers, and more specifically to adapting a response of a web browser. 
     BACKGROUND OF THE INVENTION 
     Much of today&#39;s communications, entertainment, and information search and retrieval activities involve the Internet, a global network of computers, communications links, and protocols. Web browser applications were originally designed as user-friendly portals to the Internet&#39;s resources and functionality that facilitated Internet navigation and information search, but have since evolved into more sophisticated and complex software applications. Web browser applications now incorporate sophisticated security and multimedia rendering functions (video, audio, imaging, etc.) and enable a user to navigate and interact dynamically with connected web sites and other Internet users. 
     Web browsers can be invoked by applications (e.g., word processors, email applications, instant messaging, etc.) or by an operating system to render content or to provide functionality. The invocation of browsers may occur via the activation of anchor links (hyperlinks) that are often embedded in Hyper Text Markup Language (HTML) documents (web pages) and other displayed material. Hyperlinks may display as highlighted or underlined text to a user but can contain embedded uniform resource locators or URLs, which are the addresses of Internet resources on the World Wide Web, e.g., a web page that is on a web site. When a user activates a hyperlink, often by clicking on the hyperlink with a mouse, a web browser is invoked and passed a URL that is embedded in the hyperlink as a parameter during the invocation. A prefix to the URL is a Uniform Resource Identifier (URI) which specifies how the URL is interpreted. A common URI contains a character string “http” which identifies the URL as a resource to be retrieved over the Hypertex Transfer Protocol (HTTP). Other common prefixes are “https” (for Hypertext Transfer Protocol Secure), “ftp” (for File Transfer Protocol), and “file” (for files that are stored locally on a user&#39;s computer). If a URL points to a web site, which is often a case, the web browser uses the URL to access the web site and render content at the web site in accordance with the configuration that a user has assigned to the web browser. 
     A web browser&#39;s configuration describes the optional behaviors available to the web browser and is often stored in a web browser configuration table that is accessed by the web browser during each invocation of the web browser. For example, often a web browser may be configured to display or to not display images, to enable or to disable JavaScript® scripting language execution, to use a specific search engine, to block accesses to specific web sites, to remember web site passwords, to use a specific application to play video or to play audio, or to use a specific Internet connection, among other options. A web browser&#39;s configuration remains constant until changed by a user. 
     SUMMARY 
     Exemplary embodiments of the present invention disclose a method and system for configuring a web browser executing in a computer to render a web page for display at the computer. A first hyperlink request is received from a first program executing in the computer to obtain and render a first web page corresponding to the first hyperlink. In response, the web browser obtains the first web page, and renders the first web page according to a first set of web page configuration parameters. A second hyperlink request is received from a second program executing in the computer to obtain and render a second web page corresponding to the second hyperlink. In response, the web browser obtains the second web page, and renders the second web page according to a second set of web page configuration parameters that differs in part from the first set of web page configuration parameters. 
    
    
     
       BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS 
         FIG. 1  is a block diagram of a web browser on a computing system, in accordance with an embodiment of the present invention. 
         FIG. 2  is a diagram of a web browser control program in operation, in accordance with an embodiment of the present invention. 
         FIG. 3  depicts a block diagram of components of a computing device, in accordance with an embodiment of the present invention. 
     
    
    
     DETAILED DESCRIPTION 
     A preferred embodiment of the present invention is now described in detail with reference to the figures. Herein user refers to a user that is a human and/or a user that is a program. 
       FIG. 1  depicts a computing device  101  connected to a network  102  that hosts an Internet. Computing device  101  may be a general purpose desktop, laptop, or tablet computing device or be incorporated into a cell phone, TV, or other device. Network  102  may be a connection matrix, such as the Internet, for a plurality of web servers that host web pages, documents, video, audio, and a spectrum of informational resources. Web servers  103  and  104  are connected to network  102 . Computing device  101  executes an operating system  105  and applications  106  that include web browser  107 , web browser control program  108 , email application  109 , and instant message application  110  that may access information on the web servers  103  and  104 . A web browser  107  is an application that provides a user of computing device  101  with connection, navigation, security, and multimedia rendering functions (video, audio, imaging, etc.), among other functions, that enable a user to interact with connected web sites hosted on servers  103  and  104  and other users connected to network  102 . 
     A configuration file  112  for web browser  107  specifies certain characteristics that affect a rendering of a web page, but do not change based on an identity or type of a program in which a hyperlink is selected. In addition, a web browser control program  108  determines other, variable configuration characteristics for web browser  107  that are based on the identity or type of a program within which a hyperlink is selected. Before web browser  107  is invoked, web browser control program may alter configuration file  112  based on the identity or type of a program within which a hyperlink is selected. Web browser  107  accesses configuration file  112  during each invocation of the web browser  107 . 
     In exemplary embodiments, a web browser control program  108  monitors the identity or type of program through which a user requested a web page, by specifying a hyperlink. Based on the identity or type of program requesting the web page, control program  108  determines and provides the variable configuration characteristics to the web browser configuration file  112 . For example, the web browser control program  108  provides one set of variable configuration parameters when a user requests a web page through instant message program  110  and a different set of variable configuration parameters when a user requests a web page through email program  109 . For example, if the instant message program  110  requested a web page, web browser control program  108  may enable image loading and disable JavaScript® scripting language execution. However, if the e-mail program  109  requested a web page, web browser control program  108  may disable image loading and enable JavaScript® scripting language execution. However, other factors may affect the variable configuration parameters such as an identity of a computer user, information associated with the web browser invoking program (e.g., email address lists and an email sender&#39;s domain), time of day, day of week, identities of applications currently executing on a computer, and a content of a URL passed to the web browser. 
     In exemplary embodiments, web browser control program  108  may be configured by a user with a plurality of web browser configurations. When the web browser control program is executing, the web browser control program monitors applications that are executing on a computer. When a hyperlink is selected in an application, called an invoking application or an invoker, web browser control program  108  intercepts an invocation of a web browser  107 , identifies an invoking application such as instant message program  110  or e-mail program  109 , and provides the web browser  107  with a configuration that is adapted to a behavior a user desires the web browser  107  to have when a hyperlink is activated in an invoking application. Web browser control program  108  substitutes an adapted configuration for a configuration the web browser would have accessed by default during an invocation. An adapted web browser configuration, and consequently an adapted web browser behavior, may be defined by a user within web browser control program  108  for each of a plurality of invoking applications, such as e-mail application  109  and instant message application  110 . After an adapted configuration is substituted for a default configuration by web browser control program  108 , the web browser  107  is invoked by web browser control program  108 . The web browser  107  reads the adapted configuration, and therefore the web browser  107  executes with a behavior a user desires. 
     The user may start web browser control program  108  manually or web browser control program  108  may be started by operating system  105  when a user logs onto computing device  101 . Once started, web browser control program  108  may be configured at any time by a user. A configuration of web browser control program  108  includes a table of configurations  114  of web browser  107  that are adapted by a user for use with each of a plurality of applications  106  that may invoke web browser  107 , for example e-mail application  109  and instant message application  110 . 
       FIG. 2  is a flow chart of the exemplary embodiment of web browser control program  108  that personalizes a behavior of a web browser when a hyperlink is activated. Web browser control program  108  begins execution in step  201 . In step  202 , web browser control program  108  substitutes in a Windows® registry, a pointer to intercept executable  113 , a component of web browser control program  108 , in place of a pointer to web browser executable  107 . After the substitution, the operating system invokes intercept executable  113  instead of web browser  107  and passes a URL to the intercept executable  113  when a hyperlink is activated. The function of the intercept executable  113  is to pass the URL to web browser control program  108  and by doing so, alert web browser control program  108  that a hyperlink has been selected. 
     In step  203 , web browser control program  108  begins recording an identity of an application that is associated with a currently active window on computing device  101 . In exemplary embodiments, the recording occurs at a sufficient rate such that a user cannot cause a new window to become active and activate a hyperlink in a new active window before an identity of the new active window is recorded. There is only one active window at any time on a computer system that is running a Microsoft Windows® operating system for a single user. A hyperlink must be in an application that is in an active window to be activated. 
     In step  204 , web browser control program  108  determines whether a hyperlink has been selected, and if not, continues to monitor and record an identity of an application that is associated with a currently active window on computing device  101 . If a hyperlink has been selected, web browser control program  108  identifies an invoker in step  205 . Since web browser control program  108  is recording an identity of an application in an active window and because a hyperlink must be activated in the active window, web browser control program  108  identifies the invoker as an identity of an application in a most recent active window. For example, if a hyperlink is activated in email application  109 , the invoker is identified as the email application  109 . 
     In step  206 , web browser control program  108  obtains a URL of a hyperlink from intercept executable  113 . Web browser control program  108  looks for the invoker in an internal table  114  of invokers. A web browser configuration is associated with each invoker in the table  114 . If an invoker is found in the table  114 , web browser control program  108  substitutes an associated configuration specified in the table  114  for a web browser&#39;s default configuration in configuration file  112  in step  207 . 
     Web browser control program  108  invokes the web browser  107  and passes the URL to the web browser  107  during the invocation of the web browser  107 . The web browser  107  reads the configuration file  112  and begins operation using options specified in the configuration file  112 . The web browser  107  accesses content at a location specified by the URL, and renders the content in accordance to the options specified in the configuration file  112 . For example, if a hyperlink had been activated in an email application  109 , and a configuration table  114  in web browser control program  108  specifies that no images are rendered if an invoker is the email application  109 , but JavaScript® scripting language is enabled, the web browser  107  would be invoked, read a configuration file  112  that had been altered by web browser control program  108 , fetch content at a location specified in a URL, and not render images but execute any JavaScript® scripting language loaded from the location. If a hyperlink had been activated in an instant message application  110 , and a configuration table  114  in web browser control program  108  specifies that images are rendered if an invoker is instant message application  110 , but JavaScript® scripting language is disabled, the web browser  107  would be invoked, read a configuration file  112  that had been altered by web browser control program  108 , fetch content at a location specified in a URL, and render images but not execute any JavaScript® scripting language loaded from the location. The configuration of the web browser is therefore adapted to an invoker. 
     If an invoker is not found in an internal table  114 , web browser control program  108  invokes the web browser  107  and passes a URL to the web browser  107 . The web browser  107  reads configuration file  112  that has not been altered by web browser control program  108 , accesses content at the location specified by the URL, and renders the content in accordance to the options specified in the configuration file  112 . 
     In another exemplary embodiment, web browser  107  includes the entire functionality of web browser control program  108 , and in this instance, web browser control program  108  is not a program that is separate from web browser  107 . 
     Computing/processing device  101  includes respective sets of internal components  300   a,b,c  and external components  400   a,b,c , illustrated in  FIG. 3 . Each of the sets of internal components  300   a,b,c  includes one or more processors  320 , one or more computer-readable RAMs  322  and one or more computer-readable ROMs  824  on one or more buses  326 , one or more operating systems  328  and one or more computer-readable tangible storage devices  330 . The one or more operating systems  328  and programs  105  (for computer  101  are stored on one or more of the respective computer-readable tangible storage devices  330  for execution by one or more of the respective processors  320  via one or more of the respective RAMs  322  (which typically include cache memory). In the illustrated embodiment, each of the computer-readable tangible storage devices  330  is a magnetic disk storage device of an internal hard drive. Alternatively, each of the computer-readable tangible storage devices  330  is a semiconductor storage device such as ROM  324 , EPROM, flash memory or any other computer-readable tangible storage device that can store but does not propagate a computer program and digital information. 
     Each set of internal components  300   a,b,c  also includes a R/W drive or interface  332  to read from and write to one or more portable computer-readable tangible storage devices  436 , that do not propagate signals, such as a CD-ROM, DVD, memory stick, magnetic tape, magnetic disk, optical disk or semiconductor storage device. Programs  105  can be stored on one or more of the respective portable computer-readable tangible storage devices  436 , read via the respective R/W drive or interface  332  and loaded into the respective hard drive or computer-readable tangible storage device  330 . 
     Each set of internal components  300   a,b,c  also includes a network adapter or interface  336  such as a TCP/IP adapter card or wireless communication adapter (such as a 4G wireless communication adapter using OFDMA technology). Programs  105  can be downloaded to the respective computing/processing devices from an external computer or external storage device via a network (for example, the Internet, a local area network or other, wide area network or wireless network) and network adapter or interface  336 . From the network adapter or interface  336 , the programs are loaded into the respective hard drive or computer-readable tangible storage device  330 . The network may comprise copper wires, optical fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. 
     Each of the sets of external components  400   a,b,c  includes a display screen  420 , a keyboard or keypad  430 , and a computer mouse or touchpad  434 . Each of the sets of internal components  300   a,b,c  also includes device drivers  340  to interface to display screen  420  for imaging, to keyboard or keypad  430 , to computer mouse or touchpad  434 , and/or to display screen for pressure sensing of alphanumeric character entry and user selections. The device drivers  340 , R/W drive or interface  332  and network adapter or interface  336  comprise hardware and software (stored in computer-readable tangible storage device  330  and/or ROM  324 ). 
     The programs can be written in various programming languages (such as Java, C, C++) including low-level, high-level, object-oriented or non object-oriented languages. Alternatively, the functions of the programs can be implemented in whole or in part by computer circuits and other hardware (not shown). 
     Based on the foregoing, a computer system, method and program product have been disclosed for configuring a web browser executing in a computer to render a web page for display at the computer. However, numerous modifications and substitutions can be made without deviating from the scope of the present invention. Therefore, the present invention has been disclosed by way of example and not limitation.