10 is the one

So we're busy preparing the major upgrade from 9.5x and 9.6x – and what's more obvious than calling it Opera 10? What's in a name, or a version number?

Apparently a lot of trouble.

As Andrew Gregory already noticed, we're the first browser ever to release with a two-digit version number. If websites assume that version numbers always have a one-letter "major" part and look for a single digit, they are going to "detect" Opera 1!

Since we released the first preview of Opera 10, we're seeing the bug reports come in. Web sites go belly up because of their bad sniffing. Some of them aren't even ashamed of it..

Thanks, Bank of America. Do you feel like it's 1995 again? Yeah, me too.

You'd think that with the intense development Microsoft has been lavishing on live.com they would have found somebody capable of writing a usable browser sniffer (or ideally a person clever enough to say "wait, we don't really need one – what if we just use feature detection instead?"). Think again..

..and for further evidence that their backend version detection is an odd piece of software engineering, read their cookies closely – Opera 9.62's request first, then Opera 10:

GET /mail/browsersupport.aspx 
Host: co109w.col109.mail.live.com 
User-Agent: Opera/9.62 (Windows NT 5.1; U; en) Presto/2.2.0 

Set-Cookie: BrowserSense=Win=1&Downlevel=0&WinIEOnly=0&Firefox=0&Opera=1&OperaVersion=9.2&Safari=0; domain=.live.com; path=/
GET /mail/browsersupport.aspx 
Host: co109w.col109.mail.live.com 
User-Agent: Opera/10.00 (Windows NT 5.1; U; en) Presto/2.2.0 

Set-Cookie: BrowserSense=Win=1&Downlevel=1&WinIEOnly=0&Firefox=0&Opera=1&OperaVersion=&Safari=0; domain=.live.com; path=/

Did you spot the missing version value? We really confused them by adding 0.37 to our previous value, didn't we?

Speaking of cookies, they are the main reason we added the feature that lets you hide Opera's identity. Back then in 1996 or so, some sites would do browser sniffing and send cookies only to known browsers. On the next page, if you didn't serve it cookies the site would say "hey, you don't support cookies so go away". What would Joseph Heller make of that, I wonder?

So, rewind to meet the catch-22 server, re-born at Bank South Australia:

GET /InternetBanking/ HTTP/1.1
User-Agent: Opera/9.62 (Windows NT 5.1; U; en) Presto/2.1.1
Host: ibanking.banksa.com.au

HTTP/1.1 200 OK
Set-Cookie: JSESSIONID=000019WTazsWAk-lB38OrmKD3kR:13l3ifhnq;Path=/
Set-Cookie: bhCookieSess=1;Path=/
Set-Cookie: bhCookiePerm=1;Expires=Sat, 20-Dec-2008 23:35:40 GMT;Path=/

..and Opera 10..:

GET /InternetBanking/ HTTP/1.1
User-Agent: Opera/10.00 (Windows NT 5.1; U; en) Presto/2.2.0
Host: ibanking.banksa.com.au

HTTP/1.1 200 OK
Content-Type: text/html;charset=ISO-8859-1
Content-Language: en-AU
Date: Thu, 18 Dec 2008 23:34:37 GMT
Connection: close

Um, I'm hungry. Where are your cookies? Predictably the next page looks like this:

This is probably just the beginning. 😦

Will the web ever learn?

Advertisements

91 thoughts on “10 is the one

  1. "It is the result of changing a header value"No, it isn't. It's the result of bad code on the web site. I wish more sites were like the Bank of America and displayed their idiocy publicly. At least the BoA makes it clear who's at fault.I don't think Opera should change anything. I think the site breakage that occurs due to version 10 is acceptable. It seems to be such a small proportion out of all the broken sites. More sites stopped working when Opera dropped overt document.all support (although that was balanced by other sites starting to work). Breakage that does occur can most likely be handled using the existing "Mask as" options.Opera mangling their UA string would only make things more difficult for those web designers trying to do the right thing by Opera. You're suggesting Opera make their coding lives even more difficult than they are now. That will only increase resentment towards Opera.I think some thought should be put into making the efforts Opera make towards site compatibility more visible. Everytime a UA override, browser.js patch, or Opera-supplied site preference is used, there should be some visible indication of it. A dunces hat, perhaps?

  2. TreeGo: Version numbers are important for many reasons.Technology – indicates major changes/additions. Indicates that the new build is different from the older build.Marketing – indicates that there is something brand new that the market might be interested in (not just bugfixes).10 is not an arbitrary number. It indicates a major release after version 9 with significant changes and additions.

  3. Only thing I had a problem with was Yahoo, I think. And that now appears to be fixed so bring on 10 final release, I say :PI do agree that something which notified users that browser js was being used, for whatever reason, would be a good idea.

  4. Jere, the problem has always existed: it just hasn't manifested until now. In a few years, good sense willing, Internet Explorer may also run into the same problem, as they go from version 8 to version 9 to version 10. Is it Microsoft's fault that they are finally moving forward? Is it Opera's fault that they have been serving their userbase faithfully and consistently with a steady stream of good releases, many of them major, for fourteen years?Opera just happens to be the first bitten by others' incompetence; it's in no way a problem of their making.

  5. maybe ms will publish a new browser with a webkit engine and a totally new name for the browser. *g* I mean so they could start from a new point and become more standard complicant… maybe.

  6. d4n3 funny link I read most of the comments If web dev just wrote in web standards code we would not have as much of this problemusing Opera 10 Alpha 1<www.usbank.com>To get the most benefit from U.S. Bank Internet Banking, we recommend using one of the supported browsers described in our Browser Requirements and Security Standards.for the Browser page: http://www.usbank.com/cgi_w/cfm/about/browsers.cfmI did send them feedback

  7. MTKnight, Andrew,with IE perhaps being closest of the competing browsers to reach version 10, I'd rather see Opera leave the burden of this misfortunate number on the shoulders of the IE devs. IE is significant enough to initiate a change in poor sniffing methods, Opera is not. It's an opportunity Opera should wait for. Till then, hacking around with the UA string is the only way to do the users a favor.

  8. Jere, I fully agree with you. Lets not have even more compatibility problems with Opera.I still see many sites that have issues with Flash 10…

  9. I only use a handful of sites, including the ones I write myself. I haven't seen any problems due to the Opera 10 version number yet. However… it occurs to me that I, too, hadn't thought of looking for a 2-digit number in browser sniffing. Granted I only sniff at MS's excuse for a browser, but if Hallvors hadn't written this blog post, the idea wouldn't even have crossed my mind.Sometimes it's not that us web developers are stupid… sometimes it's that we're blind.

  10. Anonymous writes:

    This never-ending stubbornness is the reason why I switched to Firefox. Opera would rather be right than usable. The term for that is martyr complex.

  11. Opera would rather be right than usable. The term for that is martyr complex.

    LOL, we have a solution! Give the company a suitable psychological diagnosis and some therapy, voila!I wish it was that simple :)The web is a complex place. Today, I believe browser sniffing practises are so varied and insane that pretty much anything we do with the User-Agent string will break a subset of websites. There is a trade-off between complexity and compatibility, but what we've seen in the past is a sort of complexity arms race between browsers and browser sniffers. It makes sense to me to try to avoid that, and rather work on tools like site-specific spoofing and patching. The default is simple, only when required we add complexity.

  12. how about making a dev.opera article with code examples of how to properly detect and parse the opera version and user agent string (plus the warning that browser sniffing = bad)

  13. I just found another website checking just the first digit:www.godiva.comJust dropped them a small note via email so they can fix it. :)I keep on fighting. :ninja:

  14. The biggest problem for me is, I'm using a mobile. And I'm tired of been told to download adobe flash player when all I want to do is check some price list or something equally simple. It's even more ridiculous when it's a mobile networks website where you're meant to set yous settings. http://www.vodacom4me.co.za:awww:

  15. joelpt writes:

    If the first author of a User-Agent string had gone with a two digit leading on the version number we wouldn't have this problem now:Netscape/01.0But the bigger problem with User-Agent strings is that they are a mess. Their contents over time have formed this bizarre de-facto standard resulting in this kind of thing (Google Chrome's):Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.48 Safari/525.19These UA strings have historically been engineered to this "standard" in the first place, so I think Opera may as well use an engineered "Opera/9.99" leader in their UA string now. That being said, a designed, standardized UA string 'grammar' would save browser developers and (especially) web devs a lot of effort. But such does not exist.This situation is actually not much different from the Y2K problem. Though in this case Opera could use an engineered UA string and circumvent it.

  16. Anonymous writes:

    I don't get the point of browser sniffing. Web devs check for the specific browser (and browsers version) because their code is wrong. So, why don't they write a valid one? This is really a simple question.Anyway, I think that Opera should break that and name it's new version Opera 10. The web is crouded with so many poorly-written sites, but that (really bad) habit should be cracked eventually. If Opera don't do it, MS will. And they will pump the story so much, that they will gain enormous profit from it. As always.Oh, and that USBank web site that you were all talking about is giving me a notice that I should get the one of the "true" browsers. I'm using Opera 9.64. They can't make their web site work with normal versioning mode (first digit is 9), so how can anyone expect from them to work with v10?Their web site is so full of errors, that it is a miracle that it even works with IE and FF. Here is a validator link for USBank.comhttp://validator.w3.org/check?uri=www.usbank.com&charset=%28detect+automatically%29&doctype=Inline&group=0I say, go with Opera 10! πŸ™‚

  17. five more years it may be hard tho, I wonder if the IE team has noticed how far behind they have gotten compared to all other web browsers

  18. Originally posted by FataL:

    Lets wait for IE 10 (probably five more years)

    Have you considered that IE10 might actually be Microsoft Gazelle 2.0 or some such?

  19. Originally posted by lucideer:

    Have you considered that IE10 might actually be Microsoft Gazelle 2.0 or some such?

    Then they will get in trouble with too low version number anyway. πŸ˜†

  20. gulli writes:Hallvors, bad choice in my opinion – you should have stuck with the original Opera/10.00 or at least leave that as an option. I'll take the fight with websites so poorly written that they need a specific browser version.The "Version/10.00" thingy or any other version fixing simply adds complexity and annoyance for those developers that actually care about simplicity and standards and there are more and more of us.I personally avoid pages that do not let me in using Opera, sometimes that means some inconvenience for me. I for example ask companies that try to sell me stuff (like phone companies) if their site will work with Opera on Linux even though I usually use Windows simply because I have doubts about their ability to provide me with usable information source if the site is stuck with some ancient IE version.

  21. Originally posted by anonymous:

    I for example ask companies that try to sell me stuff (like phone companies) if their site will work with Opera on Linux even though I usually use Windows

    πŸ˜† I usually just tell them I use a version of Windows that comes without IE – they've believed me sofar… gives you an idea of the expertise that's out there.

  22. On one hand, I agree in standing our ground in favour of standards. However, I'm also enough of a realist to know that when a badly coded website breaks in a browser, the typical user blames the browser, "because that other browser works with it!". :awww:.

  23. @qlueIf you've read the blog post for the new 10 beta, you'll see that they did in the end capitulate and changed the userAgent to 9.80.

  24. Andre writes:How about someone posting here a method that works, that way we can point these sites to some working code?

  25. Anonymous writes:Off the top of my head, I can think of the following software products that have gone to 11 and haven't (yet) changed to another scheme or name:OpenSuSE Linux.Windows Media Player.Some long-running video game series.I'm trying to think of any others…Here's another, but reverse approach: Solaris.SunOS was renamed Solaris, but they kept the internal name. Solaris 2.6 was SunOS 5.6, Solaris 2.7 was SunOS 5.7. Then the marketing department decided the version number looked to small, so Solaris 2.8, SunOS 5.8, is called Solaris 8. Internally its still 2.8 or 5.8 depending where you look. Similarly, Solaris 9 (marketing) is actually Solaris 2.9 and SunOS 5.9. A couple years back it hit Solaris 10. I have not looked, but I've wondered if its Solaris 2.10 or Solaris 3.0 and is it SunOS 5.10 or 6.0? If its 2.10, then is that greater than 2.9 or less than 2.2? I have noticed that since they have hit this scheme, they forgot how to have minor versions, so rather than Solaris 10.1 when they updated and didnt'y call it 11 (is that 2.10.1 or 3.1?) they just called it Solaris 10 Update 1, and then proceeded with Update 2, Update 3, etc. What the hell version is Solaris at and is SunOS even in existence? Oh well, maybe it will become OracleOS 1.0 and it won't matter anymore.

  26. Seen Chrome's UA string recently? It's got so many browser names and version numbers that they clearly expect every browser sniffer to find something they like in there πŸ˜‰

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s