Hacker News new | past | comments | ask | show | jobs | submit login
IE11 on Windows 8.1 - Google Search loads in legacy mode (productforums.google.com)
48 points by T-A on Oct 19, 2013 | hide | past | favorite | 62 comments



IE11 normally sends "Trident/7.0" and not "MSIE". Apparently Microsoft has added "google.com" to the Compatibility View List [1], which means IE11 now sends Google a User Agent that does include "MSIE". Google is interpreting this to mean it's an old version of IE, and sending the legacy view. You can manually disable the CVL, but then other sites that Microsoft has determined need old versions of IE won't work. I suspect Google will update their UA regexp soon, and this will be fixed, but it does sound like a Microsoft bug.

[1] http://msdn.microsoft.com/en-us/library/gg699485(v=vs.85).as...

(I work for Google, on unrelated things.)


Why does the entire web community agree that feature detection is the way to go and UA sniffing is bad, but time after time shows that Google does it on nearly all of their products?


Compatibility view doesn't just change the UA string. It actually switches to a different (IE8-like?) engine.


It changes to one of: IE7 Standards Mode, IE8 Standards Mode, IE9 Standards Mode, IE9 Almost-Standards Mode, IE10 Standards Mode, or IE10 Almost-Standards Mode. I wish I was joking.


Feature detection has much greater overhead.


I'm pretty comfortable always blaming UA sniffing when there is an interaction between it and something else that causes problems.

It sounds like Microsoft screwed up their list, but IE saying 'MSIE' is not a bug by any stretch of the imaginations. The bad code here is all on Google's end.


It's not certain yet which party broke google.com - I've been running Windows 8.1 for over a month and it just broke in the past 24 hours. So either Microsoft pushed a new app compatibility list recently or Google changed their UA detection with the availability of 8.1.


Users can force any site into their own compatibility list, so Google should have been handling both cases to start with.

Oversights can happen of course, but trying to blame Microsoft when the real cause was Google's bad browser sniffing is just weak.


Two different user agent strings for one version of one browser? That can change at any moment based on a list the site authors don't control? There's no way that'd ever confuse things!


Which is precisely why good web developers never trust user agents. Because they confuse things and cause bugs like this.

It's lazy/incompetent practice, which shouldn't really excusable for such a supposed massive advocate of web standards. MS are no shining example, but it's pot calling kettle black.

Definitely a Google bug - a long standing one


There are several reasons why UA detection is relevant where feature detection fails. The first is that you can serve prebuilt js binaries that have only the relevant logic for the requesting browser; strictly smaller js files for every user since you aren't serving irrelevant js.

Some things aren't feature detectable, like actual weird bugs in behavior that need browser specific workarounds.

In this case it looks like MS has the domain listed for their fallback mode, which doesn't just change the UA but actually changes the browser behavior (IE9 in IE8 mode has no canvas support and will fail the feature detection for canvas appropriately).


http://www.modern.ie/en-us/report#http%3A%2F%2Fgoogle.com

Click on "Known compatiblity issues". Notice the "Request tech details on your site" link.


Interesting quote:

I'll tell you more guys. I've updated to windows 8.1 on my tablet a month ago through MSND subscription and Google search worked just fine. Looks like this problem appeared after public availability of Windows 8.1. So I believe it's something that Google or Microsoft should figure out.

Not saying this is malicious. Maybe just Google is doing something silly. Maybe Microsoft have slipped up on their compatibility-list-thingie (which is a horrible invention IMO).

Sometimes adding too many special cases in your code instead of having one "good enough" version for everyone will cause you a million problems you never saw coming. I've had more bugs come from special casing than any general, "run everywhere" code I've written.

I can easily see how both ends could be responsible for this problem, even at the same time.


"Hey, if we make Google uglier, maybe people will use Bing!"

"Probably not, but let's mess with 'em anyway."


Unless it was google..

"Hey, if we make Google uglier, maybe people will use Chrome!"

"Probably, they are used to IE not working"

Not sure who had the slip-up, but evil works both ways :P


It looks like the preview releases of IE11 work fine. MS Changed a default value between preview and release versions.

I'm going to choose to apply Hanlon's Razor in this situation.

-How often do people who have to do something to detect chrome/firefox version? Unless you are doing something with bleeding-edge experimental APIs probably, never.

-How often do people have to do something for a specific version of IE? All the time.

Chrome & Firefox have been mostly compatible for the past 20 major versions. IE has yet to make two consecutive versions compatible with each other.

Also worth noting: Firefox and Chrome support more versions of Windows than Microsoft's past 3 Browser releases have.

Again I don't this is necessarily a distinct case of anybody trying to be evil. This is just a symptom of a bigger problem.


> IE11 -> Tools -> Compatibility View Settings. > Remove check on "Use Microsoft Compatibility lists".

That's the solution posted in that thread. It's an IE problem.


Tweaking Firefox to send the same user-agent string "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.3; WOW64; Trident/7.0)" causes the exact same problem. It's a Google problem.

ETA: In standards mode, IE sends "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko".


Firefox sending "MSIE 10.0" maybe, but not "MSIE 11.0"


Or rather: "Hey, google.com is still serving up a broken UA detected page that hasn't been working on IE11 for over a month now. Let's do the sensible thing for our release and make it work by adding Google to our list of sites that serves non standard content, because it does exactly that."

By not working, I mean, not working at all. If you are lucky it has the whole text you typed and the search button might wake up after 3 or 4 clicks. It is the only site I had problem with using IE11.


Yeah, I played with my UA and google's homepage and I like this explanation better. It's kinda horrifying how broken it is.


This seems to solve it:

IE11 -> Tools -> Compatibility View Settings. Remove check on "Use Microsoft Compatibility lists".


I'm trying to figure out what the problem is, and I can't see how the compatibility list would force Google into such a legacy mode:

  <domain docMode="EmulateIE10" versionVector="10" uaString="10" featureSwitch="overrideXUACompatible:false">google.com</domain>
It seems to read as: render and present as IE10, and if there is a `<meta` tag specifying x-ua-compatibility, don't ignore it.

There's another section that overrides the backwards/forwards cache setting for google.com:

    <BFCache>
        ...
        <domain exclude="true">google.com</domain>
But I've no clue how that would affect rendering so much.

I've disabled both settings (commented out) and will report back if commenting them out fixes Google.


I think the problem is that EmulateIE10 is slightly broken: it sends "MSIE 10" but also "Trident/7.0". Real IE10 has Trident 6.0. This looks like it's screwing up the UA regexes.


If I were to guess:

Google is detecting the user agent string and attempting to use features that should be supported. e.g. google's code is trying to use some IE11 feature that IE10 didn't support. The compat settings are making this fail which seems to cause google's code to drop to it's lowest compatibility mode (IE 6?) as some sort of 'compatibility panic'.


but what is this setting ? it doesn't look like an UA switcher.


For a site like Google, I see no reason why Microsoft should have put it into compatibility mode- I have to assume that Google does testing on IE and any bugs should have been addressed quickly by Google.

Furthermore, by using compat mode, the only way for google.com to use newer features in IE is to ask Microsoft to take it off the compat list then push an update to all IE browsers.

In general, this compat list should die and sites should be targeting standards-compliant behavior. If they identify as standards compliant and are not, bugs should happen.


"For a site like Google, I see no reason why Microsoft should have put it into compatibility mode- I have to assume that Google does testing on IE and any bugs should have been addressed quickly by Google."

Unfortunately, we see otherwise during our compat testing here at Microsoft on many occasions.


I guess you have no way to work with a major company like Google since you are such a small organization lacking resources.


You're making an assumption that Microsoft are the blocker. Let's just say that it's a two-way street when it comes to communication.


Sorry, I try to err on the side of caution as well but there is no way to do that in this case. Microsoft is clearly at fault. Adding someone to a "compatibility list" is a unilateral action Microsoft took.

If it works fine without being on compatibility mode, don't add it to your compatibility mode list.


If it had worked fine, it would never have been added in the first place. We don't add sites arbitrarily to the list. It's based on actual compat testing. Also every site on the list can request to be removed so if Google had tested in IE11 and discovered all was great, it's very easy for them to contact us to remove them from the list.


What about the quote from the article:

> I'll tell you more guys. I've updated to windows 8.1 on my tablet a month ago through MSND subscription and Google search worked just fine. Looks like this problem appeared after public availability of Windows 8.1. So I believe it's something that Google or Microsoft should figure out.

How could they have tested as they were not on the list until, what appears to be, the public release?


Google's been on the list well before the public GA release of IE11 to ensure compatibility.


Does this mean microsoft never contacted anyone about compatibility list?

To score some cheap points against a competitor you made your own product inferior. Good Luck with that attitude.


Again you're full of assumptions.

We're very proactive in our compat outreach and we've had numerous conversations with sites like Google. Sites like Google are VERY aware of the CV list & the modes they're rendering in; it's not a surprise to them.

Don't assume we're doing something nefarious when it's not the case. We have nothing to gain (and a lot to lose) by breaking one of the top web properties, even if they're a competitor.

Here's a more plausible scenario. Google may have made a change to their SERPs which didn't work great in the docmode that IE11 is rendering it in. Nothing intentional, nothing nefarious on either company's part.

I think that's a more reasonable explanation than the concerns you're expressing.


You are not being consistent:

[1] If it had worked fine, it would never have been added in the first place. [2] Sites like Google are VERY aware of the CV list & the modes they're rendering in; it's not a surprise to them.

Those 2 together are suggesting Google knows problem all along and you have been working with them but they didn't fix the issue.


All I'm saying is that we go to great lengths to get companies OFF the CV list. If they're on it, it's for a reason. We can't update their code for them.


May I ask you to get rid of this CV list altogether? We don't live in the walled garden Aol envisioned. Don't you agree that everyone hitting the same browser should see the same UA string.

    Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko
If not, can you please elaborate on this:

> If you currently use the x-ua-compatible header to target a legacy document mode, it's possible your site won't reflect the best experience available with IE11. For more info, see modern.ie. ?

If a site is on the list and they declare "edge", will they see the real ua string? What can someone on the list do to get the real ua string?


Compatibility view essentially switches the entire rendering stack & user agent. It even looks like the older version when inspecting many JS functions and such.

I'd expect google.com to be fully standards compliant, but for some reason I believe IE was forcing itself back to IE8 mode for it. Never understood why. Even in IE8 mode though, this should have worked fine- so could be something worse (identify as IE8, execute as IE11?).


It looks to have been fixed already. I'm on Win8.1, with IE11, and get the same Google homepage I get in Chrome. I haven't touched any settings.


So nobody @ MSFT has access to Google.com before shipping off the product. Given that a typical engineer is so addicted to 'googling' all through the day, this would've been noticed.


(Strike this, see note below)

This problem just started in the last 24 hours - Google rendered fine and was my default search engine for over a month running the 8.1 RTM, and for a few months before that running the 8.1 Preview.

This isn't MSFT's fuck up unless Google is doing feature detection and IE11 is presenting itself as not supporting some trivial HTML5 feature.

Edit: I stand corrected - it looks like something MSFT pushed out as a compatibility list update around the general availability of 8.1 is causing this.


Edit2: I'm not convinced of the above anymore. It doesn't look like the IE compat list is abnormal, but it could be a fluke interaction between Google and IE11.

On the other hand, it's very strange that it suddenly occurred in the past day, when I've been running 8.1 release for over a month.


It's also possible that Google made a change to their SERPs that didn't go nicely with the docmode IE11 is rendering it in.


Who says they use IE for googling? :-)


I've tried switching to Bing (kinda forced on a Lumia) and also sometimes when I can't find what I'm looking for with google. Without fail I've found myself switching back from Bing almost instantly even if I'm stuck with IE.


You probably are in the US. Outside that, bing just cannot find anything.

Anyway i also have a lumia but I set google as search engine in ie mobile


You read my comment wrong. I am saying that Bing is useless. I did the same with my Lumia but still some actions default to Bing.


+1 here


This is what I'm seeing in IE v11.0.9600.16384 on Windows 8.1 Pro (x64): http://i.imgur.com/9Vhx1pe.png

Enabling/disabling Compatibility View has no effect - it looks just fine to me either way.


For what it's worth, I found I had to turn compatibility mode back on in order to upload files in Gmail.


Before anyone damns Microsoft or Google here, I'd like to mention Hanlon's razor, or my preferred variant:

Never assume malice when ignorance will do.

Someone broke something, probably not intentionally. Microsoft has a shady history here, Google has a shady history here (esp. with hostile treatment of Microsoft user agents with YouTube and Maps!), so in the absence of further evidence let's not point fingers.


Probably because of the new release of their layout engine. IE11 comes with trident 7 while all the previous versions use 6 or below. It might be causing the trouble with google. Probably that's why Google works well in compatibility view.


But the bug is that Google is broken in compatibility view and works properly when in standards view.


Oh crap. I read it the other way. My bad. It was only a guess on my part, havent used IE ever.


??? 1. who is using windows? (I can't believe that someone that uses windows reads these news... just go for politics ! 2. why don't you use a browser? IE is known as a tool to download a browser!!!!!!


Wow, I am soooooooooooo surprised.


https://news.ycombinator.com/item?id=6576521 seems to indicate this isn't caused by Google.


Gosh, nobody understands what I am saying?


Guess not :)


You guys all love IE so much or what?




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: