What is the User-Agent Switcher for Chrome?
The user-agent switcher for Chrome is an extension for Google Chrome. It installs simply from the
Google Chrome extension gallery, and shows as a button next to the omnibox.
Why would I want it?
This extension makes some sites work that don't usually work in Google Chrome.
Installing this extension allows Google Chrome to access content intentionally or
unintentionally blocked by the website.
Also, if you're building a site that needs to work in multiple browsers, you
probably want to know what it looks like on a mobile device or a different
platform without actually having that device or platform in front of you. It's
useful for just taking a quick glance at how a site looks on a different platform.
What are the features of the user-agent switcher?
The user-agent switcher is an extension for Google Chrome.
It has the following features:
- Change the user-agent and vendor strings on the fly right from the
user-agent switcher's button in Chrome's UI.
- Set a list of sites for the user-agent switcher to automatically switch user-agent
strings.
- Let the user-agent switcher automatically change the user-agent for sites with known
user-agent string problems.
How does it work?
At the beginning of each site, the extension modifies the user-agent and vendor
strings so any subsequent Javascript on the site will only see the modified
strings.
The newer, experimental version also uses experimental APIs to modify HTTP headers
sent to the site.
What does it not do?
The "old" user-agent switcher does not modify HTTP headers, which are another way for websites to
detect user-agents. Not every site uses one method or another.
However, the "new" version available on this site does
modify HTTP headers, so it should be a lot more effective.
Why doesn't the user-agent switcher modify HTTP headers?
The old version didn't because Chrome didn't support it. The new version does, though!
Who makes this thing?
The author is Glenn Wilson, and my Google plus profile can be found here.
How do I post bugs, or feature requests?
You can toss me a message on my plus profile.
My site is on the 'known' list. Please remove it.
Fix your user-agent string parsing to work with Chrome, and we will happily
remove it from the known offenders list. Please see the resources
linked below on how to do that.
How do I fix my user-agent string parsing to work with Chrome?
Don't use user-agent sniffing to alter your site's behavior. Instead use object detection.
- Browsers change behavior faster than ever before, so quirks that work in a browser today may not work tomorrow.
- Building browser-quirk behavior into your sites makes them more brittle
and unresponsive to new user-agents (think mobile phones!)
- Detection methods are imprecise.
There are better ways to make your site behave appropriately for different rendering engines, specifically, object detection.
More information about browser detection versus object detection is
here.
More information about improving your site's compatibility with Google Chrome is
available here.
I don't have time to test my site on another browser, so things
on my site may not work. I don't want users thinking my site supports it.
The user-agent switcher shows clearly when it is spoofing the user-agent string, and it makes
no guarantees that sites will work when spoofing (many will work incorrectly when spoofing!)
But your users have spoken. They'd rather have a site that semi-works rather than
a site that blocks them completely.
Making the time to test on Google Chrome and other browsers, along with modifying
your site to not rely on user-agent string detection is an investment. As
future user-agents arise, your site will scale automatically with them. You
will be doing yourself a favor for the future.
The problem with my site is in someone else's JavaScript code I got
from somewhere else. I have to use it and it's obfuscated, what do I do?
Update the code from the third party to the latest version. Most current versions
detect and support Google Chrome correctly.
If they don't offer a version that supports detection of Google Chrome, there
may be competing libraries you can use.