sniff and die

Well, I didn't quite get to the bottom of the Live.com problems last time but now I know: it's a bug in their browser sniffer. They say

Web.Browser._isIE=!Web.Browser.isMozilla()&&!Web.Browser._isOpera;

but mean

Web.Browser._isIE=!Web.Browser.isMozilla()&&!Web.Browser.isOpera();

.. so isIE is set to true even though we're Opera. That means the script gets into the wrong branches of the getElementsByTagName stuff in my previous post.

Yet another proof that all the world's evils come from browser sniffing. If sniffing wasn't necessary, we would have peace in the Middle East, no starvation in Africa .. OK, sorry, I'm getting carried away here but at the very least Live.com would be alive and kicking.

Advertisements

9 thoughts on “sniff and die

  1. This browser sniffing just stupid. What if user use Safari or iCab… or anything else?…But anyway, nice catch Hallvord! :up:

  2. This can certainly be fixed with a user js, since it is deep inside som of the Atlas objects I think a BeforeScript event handler with a simple replace of the two strings in this post should do.I have sent Microsoft's Atlas architect an E-mail so I expect a fix. We'll see how long it takes them..

  3. Make sure you – ID as Opera – use some Opera 9 build, not 8.5. – re-load from cache (Tools > Advanced > Refresh display) rather than F5I did get Live basically working with that change thought I have not tried to use it extensively later and I have not checked the JS console closely either.By the way, my Live.com contact confirms that the fix is pending release, it should work fine again some time next week. 😎

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