spot my browser.js bug

Usually I use this blog for opining on the quality of other people's and systems' code. Well, that's a bit one-way and biased, isn't it? Since I just found a bug in browser.js, written and maintained by yours truly, I'll sweep the street in front of my own door (as a Norwegian saying goes).

So, can you spot the broken logic in this browser.js excerpt?

if( hostname.indexOf('walla.co.il') ==hostname.length-11 ){
// Walla.co.il odd CSS styling causes display problems
// Bugs 184398, 184399
opera.addEventListener('BeforeEvent.load',
function(){ if(document.documentElement){(document.documentElement.appendChild(document.createElement('style'))).appendChild(document.createTextNode(' .btn-t,.btn{display:inline !important;} .wp-0-b{width:auto !important}'));
opera.removeEventListener('BeforeEvent.load', arguments.callee, false); 
opera.postError('Opera has modified the JavaScript on '+hostname+'. See browser.js for details');}}
,false);
}
Advertisements

7 thoughts on “spot my browser.js bug

  1. Ah, now I know why browser.js was firing on my 10-character-long test server yesterday!Interestingly enough, I do use a class called "btn" on some pages, but the elements I apply it to were already inline, so the extra rule didn't change anything. Otherwise I probably would have noticed something was going on a lot sooner!

  2. Jere is right. The walla.co.il fix has actually been applied on any server with a 10 character long name, including http://www.w3.org which was where I noticed something was odd. Wonder how many sites in the world use a 10 character host name and ".btn{display:block}" in their CSS? 😮 I hope the bug has not broken anything, and it is fixed now in any case.

  3. whatwg.org as well.Does the fix also give more detail on which fix was applied, so we can track it down more easily in the future?

  4. Hum, now that I'm looking at my browser.js…// several sites in the Netherlands (mainly newspapers) use the same sniffer script to block Opera.//Bug: 182328if( hostname.lastIndexOf('.nl')+3==hostname.length ){I wonder what happens on a LAN where some http server has a 2 letter name ?? A check for hostname.length>2 would fix this 🙂

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