Testers Say IE11 Includes 'Like Gecko' in User Agent String
news.slashdot.org
news.slashdot.org
In other words, what benefit does a User-Agent field have nowadays when people are told to check for capabilities rather than products, apart from allowing fancy statistics which company currently has the long^Whighest bar in the user agent statistics?
For example, when you let a user download a file, you usually send a header such as:
Content-Disposition: attachment; filename=FILENAME
But what do you do if the filename contains non-ASCII characters? There are RFCs, but every browser has its own rules about encoding, and IE is especially problematic because it tries to second-guess your intentions at every opportunity. You can't use capability detection to solve this problem, because browsers don't execute CSS/JS when they just download files. If you really want to make it perfect for every user, you'll probably need to write a slightly different version of the download script for every browser, and several for IE 6/7/8/9/10.Another valid reason for sniffing the user agent string is when you're trying to offer browser-specific instructions. For example, when you go to Dropbox's download page, they show you how to save and run the installer. They wrote different versions for most of the major browsers/platforms.
There are fewer reasons to use the user agent string when you're just trying to compose a web page. But composing web pages is not the only thing you do when you run a web application.
And even for browser-specific instructions, it would make more sense in my opinion to let users choose the browser for which they want to see instructions[0]: The tool I use to query information is not necessarily the tool I need help with. A bicycle shop also doesn’t decide to only sell shoes or cars if you walk or drive there rather than arriving on a bicycle[1].
[0] I didn’t check Dropbox, so it might well be that they also give people a choice here.
[1] Google’s PlayStore specifically annoyed me there recently as it didn’t let me view the description of an extension in Opera, telling me that I would need Chrome to download and use it – I do, but I’d like to know if this extension is worth installing Chrome or not beforehand.
Of course it's wrong, and web devs wouldn't have to do it in an ideal world. But when your Chinese users complain right now that their attachment names are getting jumbled, and when your conversion rate is going down right now because people don't run the files they've downloaded, does it really matter whose job it is to clean up Microsoft's mess?
BTW, non-ASCII attachment names still come out weird from time to time because Outlook, Thunderbird, and various webmails follow different RFCs. Most email composing tools just use a compromise that works 99.9% of the time, but I've seen programs that let you customize the filename encoding.
It is unlikely that you will want to block a traditional web browser, but web browsers are not the only clients available and some will be performing operations that are not necessarily in line with the wishes of your resources.
other browser vendors release new versions on a regular basis, regardless of the operating system number. This enables browser-related technologies to evolve at a more rapid pace. So please do us all a favor and stop locking major IE releases to Windows versions and just try to imitate what others do. We won't judge you for copying, promise.
Sincerely, Web developers
please stop arbitrarily bumping your version numbers so you don't have to hear complaints about open source contributions being ignored. Do you seriously expect us to believe you got through 25 real, full versions in 4.5 years?
Sincerely, "one guy not trying to talk for everyone".
Also, it wouldn't make sense for them to release new updates for officially out-of-support OS versions.
Direct2D. DirectWrite is old technology. Direct2D is used by IE9+.
http://msdn.microsoft.com/en-gb/library/windows/desktop/dd36...
Note the backport:
>Windows 7 or Windows Vista with Service Pack 2 (SP2) and Platform Update for Windows Vista
"The 'like Gecko' string has been part of most WebKit-browser UA strings from time immemorial, but has never been used by Firefox, which instead uses 'Gecko'".
Are you being facetious? As far as users are concerned, IE would be broken. Users don't care that it's because of, say, websites with broken useragent sniffing.
I'm sure it's even more complicated than that, to be honest. But the overarching principle something Josh Bloch articulated. He said something to the effect that any interface that you publish, even if it includes strings (e.g. a pretty-printed stack trace), will inevitably become part of the interface.
anybody who's surfed with a changed user agent for a while care to comment?
Maker, product name and version should be good enough for everyone.
seriously, who does that? 'msie5.0 mozilla', good times. 'like gecko' => msie trying to look like webkit, who tries to look like firefox. yeah, makes perfect sense. could anyone give an example of a modern application that checks against the user agent string?
> Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.40 Safari/537.31
Its a sad situation.
I agree with "who does that" because I've never done UA sniffing so I had to look up the term "like Gecko" to even understand the context. As someone else has pointed out, that's for browsers that are not using the Gecko rendering engine. So essentially, everyone is trying to be "like Gecko" in one way or another.
I don't think this is aimed at fixing modern applications. It is aimed at much older ie 6-8 era code still on the web that has a bunch of hacks.
Gmail. Google docs, every single page titled something demo, ... basically every other site. And it should die already. Browser vendors put up with it because there are thousands and thousands of sites that wouldn't work just because you have the wrong user-agent string and the web developer was incompetent. Great examples include Chrome's idiotic string[1] and Opera's version 9.80[2].
1. Discussed around.
2. http://dev.opera.com/articles/view/opera-ua-string-changes/
This is a little misleading. "Like Gecko" is not used in the Firefox UA String. It just says Gecko. "Like Gecko" is a component of Webkit-based browsers. So IE is emulating Webkit emulating Firefox, and dries the "MS" of "MSEI" for their string, and going with just "IE".
via Peter Paul-Koch: "IE11 to disguise itself as WebKit (and not Firefox!)", http://mobilism.nl/blog/2013/03/ie11-to-disguise-itself
To answer the second part of your question, it worked on IE 6/7/8 and removing the hacks would have required digging into old code. The meta tag was much quicker!
However, As someone who is locked into an app that is tied to IE 6-7, I don't relish the idea of being forced to re-write some 50,000+ lines of legacy code.
This does however force our customers to seriously consider putting out an effort to redesign in the first place.
You don't have to. Simply set the DOCTYPE to force IE7 quirks mode.
This move is clearly intended to improve compatibility with Internet applications.
Is that right or did I read the premise of this article completely wrong? I know you are right for IE 9/ IE 10, but if they change IE 11 to force us to redo our CSS then... that sucks (but is kinda good too cuz I hate the legacy crap code we have).
If you have an IE6-only intranet application, then by definition you are not depending on user-agent sniffing. In that case, you depend on the continued availability of quirks mode -- not on the user-agent string.
If you have an intranet application that uses user-agent sniffing to support both legacy IE and standards-compliant browsers, then you should simply do nothing. The change in the user-agent string will cause Internet Explorer 11 to be treated as a "like Gecko" browser. This is as it should be, as IE 11 is a standards-compliant browser.