BrowserSwitcher is a Chrome module that listens to navigations, and automatically switches to another browser (typically IE) for a predefined set of URLs.
It is a port of the old Legacy Browser Support extension, to make it easier to deploy across organizations.
Setup instructions for administrators can be found here.
The policies in the BrowserSwitcher group let admins configure this feature, to decide which URLs should open in Chrome and which should open in the alternate browser.
There are 2 types of rules for LBS:
Sitelist (AKA URL list): when the user visits one of these URLs in Chrome, it opens in the alternate browser. If any other URL is viewed in IE, it bounces back to Chrome.
Greylist: these URLs do not trigger a browser switch. i.e., it stays in Chrome if viewed in Chrome, and it stays in IE if viewed in IE.
These rules can be applied from 3 different sources:
Directly, with Chrome policies: BrowserSwitcherUrlList and BrowserSwitcherUrlGreylist control the sitelist and the greylist, respectively.
EMIE site list: IE/Edge can be configured to open websites in IE, with a certain renderer version. BrowserSwitcher can share the same rules IE uses, using the BrowserSwitcherUseIeSitelist policy. The rules are specified as a URL, that points to an XML file that Chrome downloads.
Other XML site list: Specifies a URL to an XML file (like the EMIE site list), but the rules aren't shared with IE. These rules are controlled by the BrowserSwitcherExternalSitelistUrl and BrowserSwitcherExternalGreylistUrl policies.
If rules from multiple sources are present, they are combined into one list. This means you can create some rules with Chrome policies, and add more rules from the EMIE site list.
If multiple rules match one navigation, then the longest rule applies. For instance:
sitelist = [ "example.com", "!foo.example.com" ]
http://foo.example.com/
in Chrome!foo.example.com
is longer than example.com
, and it starts with a !
(which inverts the rule).Enterprise admins and developers can visit the chrome://browser-switch/internals
page to view the state of LBS. This page displays the list of rules, and lets you re-download XML sitelists immediately.
On Windows, a BHO (an IE add-on) can be used to automatically bounce back to Chrome from IE when visiting a non-whitelisted URL.
The BHO cannot access all Chrome policies, which are needed to decide if a navigation should bounce back to Chrome.
To solve this problem, BrowserSwitcher writes a cache.dat
file in AppData\Local\Google\BrowserSwitcher
. It contains the sitelist + greylist in a format that's easy to parse for the BHO. Whenever new rules are added or removed, it re-writes the cache.dat
file.
This is the same mechanism that the old extension uses, so this feature is compatible with the old BHO.