(Disclaimer: I’m a Software Engineer for Microsoft China. In this blog I express my personal opinion and none of this constitutes the official nor unofficial opinion of Microsoft.)

UPDATE: this issue also hit The Verge. The information in this thread also confirms that Google tests for “Windows Phone”, as opposed to testing for specific browser capabilities. Gizmodo also posted the story.

I make no secret of the fact that, while I like my (Microsoft sponsored) Windows Phone, I miss Google Maps. For me, Google Maps was the killer app for Android. And the experience is great, even in China, with vector maps, buildings, public transport, subway exits, real-time traffic, latitude.

But Google Maps wasn’t enough to keep me on Android. I thought the Windows Phone experience was better overall and I ended up using by Nokia Lumia 800 over my HTC Desire S. For maps, I keep switching between Nokia Maps and GMaps Pro, an unofficial Google Maps client for WP. And occasionally I’d simply go to maps.google.com with IE. Well, I used to, anyway.

Lately (as of a few months ago) opening maps.google.com on my WinPhone simply redirects me to Google Search. Even the Chinese site, ditu.google.com, no longer opens on my WinPhone. Switching IE from Mobile to Desktop mode also doesn’t fix the issue, and I keep getting redirected to a regular search page (under the maps.google.com domain, but it’s still regular search, without maps.)

My first thought was that the IE browser on WP7.5 “Mango” was simply not supported by Google. So I fired up the WP8 emulator to check whether Google Maps would open on the mobile version of IE10. Sure enough, it didn’t. However, this time switching IE to Desktop mode did solve the problem and I got the regular desktop experience, albeit on a small screen.

That’s suspicious, I thought, since the browser is exactly the same, whether I use mobile mode or desktop mode. I figure I’d manually try the different User-Agents to see what would happen:

  • WP7 - Mobile Version Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Nokia 800)
HTTP/1.1 302 Found
Location: http://maps.google.com/m/local
  • WP7 - Desktop Version Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; XBLWP7; ZuneWP7)
HTTP/1.1 302 Found
Location: http://maps.google.com/m/local
  • WP8 - Mobile Version Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; Microsoft; Virtual)
HTTP/1.1 302 Found
Location: http://maps.google.com/m/local
  • WP8 - Desktop Version Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0; ARM; Touch; WPDesktop)
HTTP/1.1 200 OK
  • Win8 - Desktop Browser Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)
HTTP/1.1 200 OK
  • Win8 - “Metro” Modern Browser Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0)
HTTP/1.1 200 OK

Interestingly, as soon as a device identifies itself as a Windows Phone (or WP7) it gets redirected. In other cases it gets the actual Google Maps page. As a test I wanted to replace the User-Agent from my WP7 device with the one from an Android device. Here’s how:

sudo apt-get privoxy
sudo vi /etc/privoxy/default.actions

Add this to the end:

{+hide-user-agent{Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; Nexus One Build/GRK39F) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1)}}

Change listen-address to listen on a public IP:

sudo vi /etc/privoxy/config
sudo /etc/init.d/privoxy restart

On the WP device, change the proxy for your current WLAN profile to point to your instance of Privoxy.

Et voilà, you got Google Maps on WP7, albeit a little flaky. It might be that Google preferred WP user to have no experience to them having a flaky one, but that still doesn’t explain why it’s redirecting WP8 IE when in Mobile mode.

Now here’s what’s interesting. As soon as I add “Windows Phone” to the User-Agent, the page no longer loads and I get redirected again. Clearly there’s some regex magic at work on Google’s end.

As much as I agree with Hanlon’s razor “Never attribute to malice that which is adequately explained by stupidity,” this does reek of Google being disingenuous and blocking the competition from their platform’s killing app.

<a href=”http://www.lunesu.com/archives/130-Do-no-evil.html” title=”“Do no evil”“>And it’s not as-if they haven’t done shit like this before.</a>

Oh, and Happy New Year!