Misspelling “Windows Phone” Makes Google Maps Work (Explained)
Google is saying:
The mobile web version of Google Maps is optimized for WebKit browsers such as Chrome and Safari. However, since Internet Explorer is not a WebKit browser, Windows Phone devices are not able to access Google Maps for the mobile web
Everyone at Microsoft (where I work) who works closely with Windows Phones (as I do) knows that IE10 on the Windows Phone 8 and IE10 in Windows 8 use the same rendering engine. So I decided to demonstrate this with a little video in which I manipulate the User-Agent header to show that Google is specifically targeting Windows Phone to block from Google Maps.
Normally, I’d just let this video speak for itself. Unfortunately, what was meant to be kind of a throw-away joke that I put on the internet at midnight on a Friday has gotten over 18,000 views in less than 24 hours. That’s a lot for someone like me, so I thought it would be good to explain in a bit more detail what is going on here.
When I show the maps not working the second time, I chose the user agent “Windows Phone 8.0” because it has no real information in it. The real user agent for Windows Phone is
Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; ARM; Touch; IEMobile/10.0;[manufacturer];[model]
No device in the world uses the user agent “Windows Phone 8.0” as the browser user agent and yet Google redirects it.
But when I misspell “Windows Phone” to be “Windows Phne”, I get to a version of the maps that works. I believe that this is because Google is actually looking for “Windows Phone” in the user agent string and then performing a redirect if it is present. This is why I decided to misspell it. If we break their search for “Windows Phone” in the user agent header, Google lets us get to Google Maps.
And (this is the important point to me) Google Maps works if we trick Google into letting the Windows Phone access it. Now, the desktop version only works so well on a mobile phone, but what if we tried to use the user agent for Firefox for Android? That’s not a WebKit based browser either but it’s on the mobile web, so it should fit Google’s criteria for “things we don’t support”.
Mozilla/5.0 (Android; Mobile; rv:13.0) Gecko/13.0 Firefox/13.0
We get a version for Firefox for Android that works well enough on Windows Phone.
So what doesn’t work? Any user agent with “Windows Phone” (versions don’t matter) or “IEMobile” are redirected. Everything else gets through and it looks like everything else works.
There is, I think, a charitable explanation here. It could be that the Google Maps team felt that the Google Maps experience wasn’t up to their standards on a Windows Phone device and they didn’t want to take the time to bring it up to par so they just nuked access to it. That would be in line with their official statement above.
Although I would disagree with that, I can understand it. However, if that were the case, as a Windows Phone user I wish they would simply state that and point users to alternatives. An invisible redirect is just confusing and frustrating to users.