Introducing the Symantec Browser Selection Tool
The capability to run multiple versions of Internet Explorer “Side-by-Side” as virtual applications using Symantec Workspace Virtualization has prompted customers to ask for the capability to load specific web sites using a specific version of an Internet Explorer browser. These requests have been heard and this article announces the availability of a new tool called the “Browser Selection Object" (BSO) tool and describes how the tool can be downloaded, configured and used to enable this capability in your own environment.
Why the Need for Multiple Versions of Internet Explorer?
In a perfect world a single web browser would serve up perfectly formed web site content from anywhere on the web or within the corporate enterprise. The reality of the situation is that web sites are often designed to work best with a particular browser or set of browsers. As web standards such as HTML, CSS and the like evolve, new web browsers may not render older web sites properly, or in some cases, may fail to work at all.
A common example of this problem is corporate applications that were written to work with Internet Explorer 6 (IE6). Web applications that were designed to work specifically with IE6 are tied to non-standard ways of rendering web sites so that more modern browsers fail to render them properly. Ideally, what customers want is to only view these IE6-based web sites with an IE6 instance of a browser while all other web browsing is done with a more modern, secure browser. Fortunately, this is precisely the feature that the browser selection object tool provides.
The Symantec Browser Selection Tool is an Internet Explorer Browser Add-on that provides the capability to define and enforce policies that stipulate that a specific version of an Internet Explorer browser is used to load a specific website. This tool complements the capability of using Symantec Workspace Virtualization to run multiple versions of Internet Explorer "Side-by-Side". The tool can enforce the policy that web sites that are designed to work with Internet Explorer 6 (IE6) will only be viewed with an instance of the IE6 browser, while other web sites will be viewed with a more current browser such as IE8.
The Browser Selection tool also provides the capability to define policies that stipulate that specific web sites will load an instance of the IE browser that is associated with a specific version of the Java JRE plug-in. This is accomplished by forcing an instance of the Internet Explorer browser to run within the context of the Java JRE running as a virtual application layer within Symantec Workspace Virtualization. With these policies in place, web sites that require versions of Java other than that installed natively on the system can continue to be supported. While this capability is touched upon in this article, this capability will be described in more detail in an upcoming Symantec Connect article.
How to Get Started Using the Browser Selection Object Tool
The browser selection object can be installed using the BSO installer (.msi) file which is available for download on Symantec Support website.
How it Works
The BSO tool is implemented as a Windows DLL that complies with the Internet Explorer Browser Helper Object specification; in other words, it is an Add-on to the Internet Explorer browser. It is therefore assumed that the default browser is Internet Explorer. Other web browsers such as Mozilla Firefox, Opera or Safari are not supported at the present time.
Once the BSO is installed, either to the base or as a virtual application layer, the details of how it works “behind the scenes” is as follows:
- A XML file named IERunFromLayer.xml is placed in the “C:\Program Files\Common Files\Symantec\Workspace Virtualization\IERunFromLayer” folder. This is the BSO’s configuration file that defines the configuration policy for selecting a web browser (or a virtual application layer) based on a URL provided in the IE address bar. A discussion of the specific elements in this file is described below.
- A registry key (HKLM\Software\Symantec\Workspace Virtualization\Internet Explorer\XMLFile) is created to identify the location of the IERunFromLayer.xml configuration file. If for some reason this XML file is moved to another location, this value must be modified to reflect the new location.
- The browser selector object is registered with the system. Recall that the BSO is implemented as a Browser Help Object (BHO).
- The BSO DLL is named WLIEFromCombo.dll and is placed in the C:\Windows\System32 folder.
How to Configure the Browser Selector Object
Configuration for the BSO tool happens within the IERunFromLayer.xml configuration file. The XML document contains two primary sections: 1) The <Links> element, and 2) the <ExecutionItems> element.
The <Links> section can contain one or more <Item> elements. These elements define the URLs that will be acted upon by the BSO to select a specific browser given a specified URL. A sample <Item> section appears as follows:
<LayerName RunFrom Layer=”false”></LayerName>
The <Name> element is used to uniquely identify the URL to be matched. When the BSO tool has launched a new browser window, the value of this element will be stored in the “HKCU\Software\Symantec\Workspace Virtualization\Internet Explorer” key to keep track metadata used by the BSO tool.
The < ExecutionItemID> element is used to indicate the specific browser that the tool should load based on the URL specified by the user.
The <RegEx> element contains a string defined in “regular expression” syntax that is used by the BSO to determine a match with a specified URL. Regular Expressions are used to allow unlimited flexibility in describing the desired URL to match. In the example specified above the BSO tool will use the <RegEx> expression string to match any URL that contains the initial characters “nytimes.com”. Defining each character within square brackets is regular expression syntax to ignore the case of each character. Complete discussions of Regular Expressions in beyond the scope of this article, however, there are many references on the web if more details are desired.
The <LayerName> element is used to identify the name (as seen from within the Symantec Workspace Virtualization Admin tool) of the layer from within which a new browser window should be executed if the regular expression string is matched. Setting the “RunFromLayer” variable to false indicates that the browser will be launched from the “base” or the computer’s default environment. If our intention were to run this from within a layer entitled “JVM 1.5”, the following elements would be used:
<LayerName RunFromLayer=”true”>JVM 1.5</LayerName>
The <SingleInstance> element is reserved for future implementation and is not used at the present time.
The <URL> element is used to ensure the browser navigates to the URL specified in the IE address bar when the URL match is found. If the “OverrideUsersURL” variable is set to false, it is expected that whatever URL is specified is adequate for locating the desired URL. If, however, this variable is set to true, a value must be given that defines the ultimate desired http address, irrespective of the URL entered by the user. For example, the following indicates that if the string “juice” is specified as the URL within the IE address bar, the browser be will redirected to www.symantec.com/connect.endpoint-management-virua... .
In the example shown above, when the URL “nytimes.com” is entered in the IE Address Bar the IE6 browser will be loaded. Once the browser has been loaded with this URL any HTML links clicked within the browser that do not contain the “nytimes.com” string are redirected to the IE8 browser in the base (i.e. the instance of IE installed natively on the system). Specifying one or more values within the <AssociatedURLs> element can change this default behavior. Values entered in this element indicate that any URLs that contain these strings are considered part of this same browser context and as such should remain within this same browser. For example, it is not uncommon for the New York Times home page to access links that contain the string “creativeby1”. With this example we have ensured that the “creativeby1” link will not redirect navigation to the IE8 browser. If the default behavior is desired specify the element as follows:< AssociatedURLs />.
The <AssocRegEx> elements describe the search string to be used for this URL. It is configured in the same fashion as the <RegEx> element described above. The <AssocURL> element is reserved for future use but is not implemented at this time.
The <ExecutionItems> section is used to identify the names and locations of the various Internet Explorer versions available the system. This section may contain one or more <Item> elements depending on the number of Internet Explorer versions available for selection on the system. The following is an example of how to configure this section:
<Path>C:\Program Files\Internet Explorer 6\iexplore.exe</Path>
<Path>C:\Program Files\Internet Explorer\iexplore.exe</Path>
The <ID> element identifies this item to the previous section (<ExecutionItemID >). Any value can be used, as long as it is unique to this section of the document.
The <Path> element contains the directory path to the specific Internet Explorer version.
A tool named "ManageIERunFromLayer.exe" can be used to simplify the creation and modification of the BSO configuration file (IERunFromLayer.xml). A follow up article will be written that describes the use of this tool in more detail, however, as can be seen from the following screen shot it provides an editor for the BSO configuration file.
Using the Browser Selection Object Tool for the First Time
The Browser Selection Object tool’s default configuration has four preconfigured items in the first <Links> section and two items in the <ExecutionItems> section. Although every implementation will need to modify the IERunFromLayer.xml file, it is possible to initially test the tool without making any configuration modifications to the default configuration. The default configuration supports the following scenarios:
- A single instance of Internet Explorer is present on the system. In this scenario if you load the browser (it may be IE6, IE7, or IE8), and type in the URL “virtual” to the address bar, a new browser instance will be loaded redirected to the following URL: http://www.symantec.com/business/workspace-virtual.... Additionally, if the string “juice” is specified in the IE address bar, a new browser instance will be launched and redirected to the following URL: http://www.symantec.com/connect/endpoint-managemen...
- Two instances of Internet Explorer, each a different version, are present on the system. It is assumed that one of them is a virtual application layer instance of IE6.If IE is invoked, either IE7 or IE8, and the URL “nytimes.com” is typed in the address bar, the virtual application instance of IE6 is launched and directed to the New York Times home page.
- A virtual application instance named “JVM 1.5” is imported and available on the system within SWV. In this scenario, entering the URL “yahoo.com” within an IE browser address bar, will cause a new browser instance to be invoked within the context of the JVM 1.5 virtual application layer. This scenario is useful for cases where a web site requires a version of the Java plugin that is different than that installed on the base. To observe this scenario in action, navigate to the following URL http://www.java.com/en/download/help/testvm.xml from within an instance of the IE browser. Observe that the version of the installed Java JRE is version 1.5. Invoke a second instance of IE and enter the following URL http://www.javatester.org/version.html. Observe that the version of the Java JRE in this case is that of the JRE installed to the base (i.e. installed natively on the system).
The demands of the corporate enterprise require that web applications developed for specific versions of Internet Explorer continue to be supported. This also requires that multiple versions of IE web browser continue to be supported within the enterprise. Ideally, for security and reliability purposes, legacy web applications designed for a specific version of the browser (e.g. Internet Explorer 6) will only be accessed by an instance of the IE6 browser while other web sites will be accessed using more modern, secure and standards-based versions of the browser. This article discusses the Browser Selection Tool which, when combined with Symantec Workspace Virtualization and multiple virtual application layer instances of IE versions running “Side-by-Side”, provides a solution for this scenario.