IE11 fakes user agent to fool Gmail in Windows Phone 8.1 GDR1 update

Internet Explorer for Windows Phone 8.1 will now include iOS7 and Android 4.0 in its user agent to get full HTML5 features in mobile web apps, such as Gmail and Google Calendar.

Microsoft has lagged behind in getting support from popular websites for its Internet Explorer browser for a long time. However, even with cumulative updates and new releases the support has been dismal.

Now, in order to rectify this, Microsoft, has updated the Windows Phone version of the browser with better support for HTML5 mobile web and will also be spoofing the platform used, as iOS and Android in order to access features disabled by some mobile websites such as Gmail.

The new user agent string is as follows:

Mozilla/5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; NOKIA; Lumia 930) like iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML, like Gecko) Mobile Safari/537

The browser was recently reported to include hundreds of improvements in its upcoming version, which will debut in the GDR1 update of Windows Phone 8.1 and this is an addition to those.

Source: WMPU | Images via WMPU

Report a problem with article
Previous Story

Microsoft adds new themes for Windows 8.1, including vistas you won't hate

Next Story

BlackBerry: Our restructuring is over - now we're hiring

78 Comments

Commenting is disabled on this article.

So is this pretty much an answer for windows? Correct me if I'm mistaken but doesn't Microsoft eventually want to have their own metro designed html Web app? Or is this something to "get by" for now.

This really exposes alot of terrible mobile web development practices that use non-standard Webkit extensions. Now, Tumblr looks totally different. It also thinks that I am on iOS so it prompts me to install their app with a hard link to the iTunes app store. The whole thing is hilarious. Kudos to Microsoft for including this in the update. FTW, they have a Tumblr app in the Windows Phone store. Talk about a bunch of hacks.

so now Microsoft has to implement -webkit- prefixes to work properly with websites.

google... why you so evil?

I feel bad for microsoft. Nobody considers for supporting the platform on web. So MS have to fake some stuff... what a sad article.

Feel bad for yourself, because you're the one getting screwed by companies like Google that are trying to gain market share by going against standards on purpose because they're afraid to compete fairly. Such companies, which are run by rats, are ones that are gonna do anything in their power to milk money from you or shove ads in your face as much as humanly possible, and they refuse to implement support for things in their operating system which got tons of votes on their tracker for over 5 years, cases remain "open" and "not assigned to" anyone, because it's not in their interest to support anything unless they have a special financial interest in it.

Microsoft has lagged behind in getting support from popular websites for its Internet Explorer browser for a long time. However, even with cumulative updates and new releases the support has been dismal.

Right, then you show pictures of Google services. Remember Google don't want to support Windows Phone, period. If Google used web standards instead of their own proprietary ones then workarounds like this wouldn't be needed.

I wish it was configurable. I had mine set for "Desktop" because I liked the full pages. Most sites I go to are completely broken now, had to switch to "Mobile".

So Microsoft is basically lying about its browser's capabilities in order to trick servers. Why am I not surprised.

It is not lying about its browser capabilities. If the browser was incapable, it would not have been able to render the content sent by the servers after the user agent change.

What they are doing is fooling sites to think that the request is coming from iOS or Android because developers of those sites only enable full feature sets for those browsers only. These features are supported by IE 11.

Yeah, they are totally tricking the websites so more people visit it when they get the same experience as other browsers. Why am I not surprised by such a simpleton comment coming from you?

simplezz said,
So Microsoft is basically lying about its browser's capabilities in order to trick servers. Why am I not surprised.

No, it's lying about its identity so it stops getting discriminated against. It is more than capable of rendering the web sites in question. Or did you even read the article?

psreloaded said,
It is not lying about its browser capabilities. If the browser was incapable, it would not have been able to render the content sent by the servers after the user agent change.


After changing the user agent string so that IE receives the same content as other phone browsers we could begin to analyse issues that were breaking mobile experiences.

http://blogs.msdn.com/b/ie/arc...just-work-for-everyone.aspx

Microsoft stated it themselves. IE's html5 support is substandard. But they went ahead and tricked the servers into believing they were serving a different browser. Despite the fact that IE still wasn't rendering that content properly.

psreloaded said,

What they are doing is fooling sites to think that the request is coming from iOS or Android because developers of those sites only enable full feature sets for those browsers only. These features are supported by IE 11.

That's incorrect. If you look at the agent string, one of the first pieces of information is Mozilla/Gecko compatibility. That's Firefox's rendering engine. Microsoft is trying to pretend that their browser is Mozilla compatible in order to get sites to serve it mobile content even though it often doesn't render correctly in IE. It's deception plain and simple.

simplezz said,
Microsoft stated it themselves. IE's html5 support is substandard. But they went ahead and tricked the servers into believing they were serving a different browser. Despite the fact that IE still wasn't rendering that content properly.

Substandard? Here's exactly what the article says:
Faulty browser detection not recognising IE as a mobile browser and giving the desktop experience
Using only old webkit-prefixed features that have been replaced by standards
Using proprietary webkit-prefixed features for which there is no standard
Using features that IE does not support with no graceful fall-back
Running into interoperability bugs and implementation differences in IE

And if you'd actually try it, it does render the sites properly.. if the site thinks it's a different browser. Sounds more like poor site design.

simplezz said,
Microsoft is trying to pretend that their browser is Mozilla compatible in order to get sites to serve it mobile content even though it often doesn't render correctly in IE. It's deception plain and simple.

Again, just scroll up. It does render correctly. Nice twisting it into some sort of evil "deception" plot.. god forbid Microsoft users get the same content as everybody else, that would just be wrong.

simplezz said,

http://blogs.msdn.com/b/ie/arc...just-work-for-everyone.aspx

Microsoft stated it themselves. IE's html5 support is substandard. But they went ahead and tricked the servers into believing they were serving a different browser. Despite the fact that IE still wasn't rendering that content properly.

WTF is wrong with you. It says nothing of the sort.


That's incorrect. If you look at the agent string, one of the first pieces of information is Mozilla/Gecko compatibility. That's Firefox's rendering engine. Microsoft is trying to pretend that their browser is Mozilla compatible in order to get sites to serve it mobile content even though it often doesn't render correctly in IE. It's deception plain and simple.

Uhh, EVERY browser has "like Gecko". Chrome also identifies itself as Safari.

Get a clue.

http://useragentstring.com/pages/Chrome/

simplezz said,
So Microsoft is basically lying about its browser's capabilities in order to trick servers. Why am I not surprised.

That is what *all* browser vendors need to do to get correct content, because browser sniffing is such a disaster. Let‘s take a look at it:

“Mozilla.5.0” Used by IE, Chrome, Firefox, Safari, Opera 15+, etc.

Here only Opera until version 9.6 was truthful. Opera from 10 onwards had to lie to say it was Opera/9.8 to avoid sniffers that only detected the first digit. Even Firefox (who are Mozilla) lie about the version number. It has been frozen at 5.0 as that is what sniffers expect.

“AppleWebkit”: Used by IE11 Win Phone 8.1 Update, Chrome, Safari, Opera 15+, etc.

Only Safari is truthful here. Even Chrome and Opera 15+ use Blink now, not WebKit and certainly are not Apple.

“KHTML”: Used by IE11 Win Phone 8.1 Update, Chrome, Safari, Opera 15+, etc.

None of these browsers use KHTML, although the WebKit and Blink browsers have lineage from this engine.

“like Gecko”: used by IE11+, Chrome, Safari, Opera 15+, Firefox, etc.

Here only Firefox are truthful (Firefox doesn't need the "like" part, of course). Opera before 15 was too.

"like iPhone": Used by IE11 on Win Phone 8.1 Update, Safari mobile, Chrome Mobile on iPhone.

This is the only one where IE is the only one not being truthful as far as I can tell

“Safari”: Used by IE11/Win Phone 8.1 Update, Safari, Chrome, Opera 15+

Again, only Safari is truthful here. And Firefox that doesn't have the token.

“Mac OS X”: Used by IE11/Win Phone 8.1 Update, Safari (inc. mobile), Chrome iPhone

Here only Safari on Mac OS X is being truthful. And the browsers that don't use the token.

So all together it is a big hot mess where all browsers have to pretend in one way or many to be a different browser to get the content they are capable of rendering. The most pure currently is Firefox (with just the Mozilla version number frozen), but as you can see from the blog post, Firefox OS is getting a huge amount of breakage. Just ask their Web Compat team at http://webcompat.com (a team staffed by many of my former Opera colleagues, and a project that the IE team contribute to BTW)

Before that Opera was the most truthful (until they had to lie about the version number), but I have first hand knowledge of the amount of sites that broke due to browser sniffing. It was a huge problem.

So, yeah, all this user agent cloaking is far from pure or ideal, but if you want to make a browser where your users can access the content they want it is more or less the only solution.

Disclosure: I worked for 6 years at Opera, leading up their web compatibility outreach efforts (Open the Web), worked with many of the current Mozilla web compat people, and currently am a vendor for the IE dev relations team.

simplezz said,
That's incorrect. If you look at the agent string, one of the first pieces of information is Mozilla/Gecko compatibility. That's Firefox's rendering engine. Microsoft is trying to pretend that their browser is Mozilla compatible in order to get sites to serve it mobile content even though it often doesn't render correctly in IE. It's deception plain and simple.

Tell me a browser that is still alive that doesn't include the Mozilla and Gecko tokens?

dstorey said,
Tell me a browser that is still alive that doesn't include the Mozilla and Gecko tokens?

Lynx for Windows: "Lynx/2.8.6rel.4TH libwww-FM/2.14FM SSL-MM/1.4.1 GNUTLS/1.7.8"

Chromium 38.something: "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2114.0 Safari/537.36"
Lies!

dstorey said,
Chromium has both tokens. Lynx is a text based browser. It doesn't expect to get the same content like CSS/JS etc.

I was just being facetious with Lynx, as if anyone even seriously uses the thing anymore, never mind yea, it wouldn't make a bit of difference anyways with no rendering/scripting whatsoever. "Lies" was referring to Chromium with four different browser tokens. My bad for forgetting /s.

Brandon Live said,

Uhh, EVERY browser has "like Gecko". Chrome also identifies itself as Safari.

Get a clue.

For someone who is all about open source, maybe he needs to look at the source some time.

There is some issues with it though, scrolling is messed up on Gmail. Why would you code a webpage so it uses such a weird implementation of scrolling which isn't cross browser compatible? What is this, 1999?

I give those a##holes @Google 3-4 days to add new code that recognizes the new IE11 user agent, and things get back to as it was before (the same ###### "experience"), nothing to see here people go home! Was interesting to know the backstage fight between the 2 monsters though.

Thought you'd all picked WP as you wanted to be different - but here you are still sucking up Google's services - just get a droid and be done.......

:p

No, we picked WP for the million other things Android sucks at. If Google apps is what you want, you'll have a much better xperience on an iPhone than any droid.

20legend said,
Thought you'd all picked WP as you wanted to be different - but here you are still sucking up Google's services - just get a droid and be done.......

:p


I only need to use gmail simply because my school runs on it. Other than that, I don't use their services one bit except youtube....and I had been using that service long before google got their horrible hands on it. It's such a shame how bad youtube has gotten since google took over.

AsherGZ said,
No, we picked WP for the million other things Android sucks at. If Google apps is what you want, you'll have a much better xperience on an iPhone than any droid.

LOL - touchy, touchy :p

Let's face it the 'million other things Android sucks at' haven't helped WP one iota have they?

4 years old and WP hasn't exactly set the world on fire.

At 4 years old 'droid was picking up over 50% of smartphone sales (Gartner Worldwide Smartphone Sales To End Users By Operating System Q3 2011)

No, Google checks for the OS it is running on, if the UAS contains "Android" or "iPhone OS", it gives you the most recent version, when it containes only "Windows Phone", it gives you the old version. NetApps en StatCounter should still be able to see them as Windows Phone devices.

Uhm, Update 1 doesn't improve anything on the HTML/CSS support, the only thing that changed is the user agent string and the fact that IE now will understand -webkit- prefixes. The Google apps could have perfectly worked in WP8.0, maybe even WP7.5.

It adds support for Touch Events, which is not a small thing. Touch Events are nearly universally required for Mobile Apps.

Actually Microsoft developed their pointer standard when developing Windows 8, so HTML can be used for making modern apps. They then submitted it to the W3C so it can be adopted, and this is why touch events is making progress.

Rosyna said,
Touch Events (http://www.w3.org/TR/touch-events/) are a web standard for touch only devices. Microsoft didn't like it and created their own version called MS Pointer Events (http://msdn.microsoft.com/en-u...y/ie/dn433244(v=vs.85).aspx) but top websites aren't writing for Pointer Events, they have been written for Touch Events.

I believe Touch Events were created by Apple in a hurry to enable touch-friendly web sites/apps for the original iPhone. They started out as a proprietary thing but were eventually submitted as a candidate for standardization.

Unfortunately, they weren't particularly experienced at designing this sort of thing, and left a lot of gaps. In particular, there are major limitations which affect the ability of user agents (i.e. browsers / runtimes) to do fast independent manipulations while also enabling sites/apps to handle touch input directly. Further, they have weird interactions with Mouse Events, limited if any support of pen input, and are missing important analogs to existing Mouse Events such as capture and enter/leave messages.

Basically, Pointer Events are superior in every way, and that's why Google and Mozilla are on board with the spec and working on their implementations. But right now only IE implements the Pointer Events standard, so that's why pretty much nobody uses it outside of Win8 JS apps. Eventually, it should win out given it's the superior design and has widespread vendor support (only Apple seems to be silent on it so far - which could be an issue but hopefully they'll come around).

However, having mobile IE support Touch Events as a fallback / compatibility option is just an obvious thing for it to do. I'm amazed it took this long, but happy it's here.

Ugh. Where did this crap come from?

Microsoft has lagged behind in supporting HTML5 features in its Internet Explorer browser for a long time. However, even with cumulative updates and new releases the support has been dismal.

Just... no. IE has been one of the leaders in HtML5/CSS adoption for years. While each browser is ahead in certain things, IE leads in useful things like grid, pointer events, etc.

The problem is that many sites (but *especially* Google ones) only serve their HTML5 pages to specific user agents. What's worse, they hardcode the non-standard webkit-only versions of CSS and JS features. That is, they specify -webkit-transition instead of just "transition" (let alone the -ms-transition variant to support IE 9).

What MS did in this update didn't add support for any new HTML features. It just made some of the -webkit- prefixed APIs work as if the standard version had been used.

Brandon Live said,
Just... no. IE has been one of the leaders in HtML5/CSS adoption for years. While each browser is ahead in certain things, IE leads in useful things like grid, pointer events, etc.

As much as we try, people are just stuck in the early 2000's mindset that IE sucks and will always suck, despite the fact it's probably one of the best browsers now on the market.

The issue is lazy developers/coders!

Agreed, that confused me too. If anything, IE is one of the most standard compliant browsers around, including HTML5 support.

Brandon Live said,
Ugh. Where did this crap come from?

Just... no. IE has been one of the leaders in HtML5/CSS adoption for years. While each browser is ahead in certain things, IE leads in useful things like grid, pointer events, etc.

The problem is that many sites (but *especially* Google ones) only serve their HTML5 pages to specific user agents. What's worse, they hardcode the non-standard webkit-only versions of CSS and JS features. That is, they specify -webkit-transition instead of just "transition" (let alone the -ms-transition variant to support IE 9).

What MS did in this update didn't add support for any new HTML features. It just made some of the -webkit- prefixed APIs work as if the standard version had been used.

This is what happens when most people just look at a score on something like html5test and nothing else. Before this it was the Acid 2 and then Acid 3 tests, once IE passed those they had to cling to something else that would once again show IE lagging behind the others.

Brandon Live said,
Ugh. Where did this crap come from?

Just... no. IE has been one of the leaders in HtML5/CSS adoption for years. While each browser is ahead in certain things, IE leads in useful things like grid, pointer events, etc.

The problem is that many sites (but *especially* Google ones) only serve their HTML5 pages to specific user agents. What's worse, they hardcode the non-standard webkit-only versions of CSS and JS features. That is, they specify -webkit-transition instead of just "transition" (let alone the -ms-transition variant to support IE 9).

What MS did in this update didn't add support for any new HTML features. It just made some of the -webkit- prefixed APIs work as if the standard version had been used.


Sorry, I approved it like that but read it as if it's the websites that are lacking their support for WP (WP user myself) it has now been updated to reflect it better though. I know Microsoft has done a lot to improve HTML5 support with IE10 and 11 :)

Brandon Live said,
Ugh. Where did this crap come from?

Just... no. IE has been one of the leaders in HtML5/CSS adoption for years. While each browser is ahead in certain things, IE leads in useful things like grid, pointer events, etc.

The problem is that many sites (but *especially* Google ones) only serve their HTML5 pages to specific user agents. What's worse, they hardcode the non-standard webkit-only versions of CSS and JS features. That is, they specify -webkit-transition instead of just "transition" (let alone the -ms-transition variant to support IE 9).

What MS did in this update didn't add support for any new HTML features. It just made some of the -webkit- prefixed APIs work as if the standard version had been used.


Since Blink, Google no longer use vendor prefixes at all, so they couldn't target only their own browser even if they wanted to. Mozilla is working towards a similar scenario.

Google is phasing out existing vendor prefixed CSS rules.

http://stackoverflow.com/quest...refixes-in-chrome-and-opera

Brandon Live said,
Ugh. Where did this crap come from?

Just... no. IE has been one of the leaders in HtML5/CSS adoption for years. While each browser is ahead in certain things, IE leads in useful things like grid, pointer events, etc.

You can blame to the lazy developers but the fact is that ie10 and ie11 are not quite compatible with most sites / intranet systems.

Brony said,

You can blame to the lazy developers but the fact is that ie10 and ie11 are not quite compatible with most sites / intranet systems.

Umm, in what way?

Northgrove said,

Since Blink, Google no longer use vendor prefixes at all, so they couldn't target only their own browser even if they wanted to. Mozilla is working towards a similar scenario.

Google is phasing out existing vendor prefixed CSS rules.

http://stackoverflow.com/quest...refixes-in-chrome-and-opera

Blink still supports the existing -webkit prefixes. In particular, the ones that Google sites/services use extensively. The proposal to not create a -blink prefix and to use an alternative means of exposing experimental features in the future for Blink is, I think, a good idea. But it was Mozilla and Webkit that got us into this prefix mess... With a lot of help from Apple and Google.

sadly funny, MS had to add nonstandard for nonstandard mobile websites like twitter, all google services ecc that works great only on nonstandard safari e chrome browsers

That is because those services detect the browser being used and dumb down the content if using IE, even if IE could display the content just fine.

The user agent is too long, it increases the network traffics. The browser should support only the standards in order to force the non-standard web sites to follow them

sphbecker said,
That is because those services detect the browser being used and dumb down the content if using IE, even if IE could display the content just fine.

these websites, using non standard contents for non standard browser rules in safari and chrome

yeppala said,
The user agent is too long, it increases the network traffics. The browser should support only the standards in order to force the non-standard web sites to follow them

the problem is this time, IE support the standards... these websites use nonstandard for safari and chrome... but this time no one seems shocked, just because it's not MS but eppol and scroogl

This is extremely hilarious and very ironic. For decades, MS has been putting out a crappy browser which behaves in a completely non-standard way. Back then, a lot of people still used IE, so websites had to take the time to fix MS's sh*t.

Now times have changed and most users don't use IE anymore, but their old legacy is coming back to bite them in the ass.

Google is singled out here btw to make them look like the villan here. Truth is most websites failed to render properly in IE 11 because it removed most of the legacy IE specific quirks.

recursive said,
This is extremely hilarious and very ironic. For decades, MS has been putting out a crappy browser which behaves in a completely non-standard way. Back then, a lot of people still used IE, so websites had to take the time to fix MS's sh*t.

Now times have changed and most users don't use IE anymore, but their old legacy is coming back to bite them in the ass.

Google is singled out here btw to make them look like the villan here. Truth is most websites failed to render properly in IE 11 because it removed most of the legacy IE specific quirks.

you sir are not making any sense.
here it's clear that IE11 supports the standards, but google here is sending IE users to a dumbed down version of their site even though IE DOES support the rich version.
- this is not about any legacy nonsense coming back to bite anyone anywhere, it's simply websites (in this case google) not treating IE users right.
- if you use IE and visit google.com you'll get popups and notifications about installing chrome. if you use any other browser you will never get such a notification. but it's clear that google is trying to deter and convert IE users

"has heavily updated the Windows Phone version of the browser with better support for HTML5 mobile web"

This sentence makes me think that the new IE added plenty of new HTML5 features, but in reality, they just added Touch Event, -webkit- prefix mapping, and so on, to support "less-standardized" mobile web... It's still IE11 anyway. :)

I might be mistaken, but I believe this has been done before by various users using third-party browsers on the WP8 ecosystem where they have faked the user-agent in order to show/prove that google is willingly redirecting WP8 users to the more basic and shittier versions of their pages.


I might be mistaken, but I recall there being quite some fuzz about this about a year ago?

TL;DR: IE on WP8 supported these HTML5 ###### before, but Google (for one, mightve been others) sent WP users to shittier versions anyway. because google.

Yeah, Firefox hits the same issues on Android, half of Google's mobile stuff depends on WebKit.

I also get served a fair bit of Flash content too because I'm not on iOS, apparently sites still think that Flash on Mobile is still a thing.

da00 said,
I might be mistaken, but I believe this has been done before by various users using third-party browsers on the WP8 ecosystem where they have faked the user-agent in order to show/prove that google is willingly redirecting WP8 users to the more basic and shittier versions of their pages.


I might be mistaken, but I recall there being quite some fuzz about this about a year ago?

TL;DR: IE on WP8 supported these HTML5 ###### before, but Google (for one, mightve been others) sent WP users to shittier versions anyway. because google.

You are probably thinking of this

http://www.businessinsider.com...as-blocking-wp8-maps-2013-1