« October 2007 | Main | February 2008 »

January 31, 2008

Quick Note to Extension Developers About browser.xul ID Changes

Edit: The changes that caused this were removed (see mfinkle's blog).

I filed bug 415099 today because certain ids where changed in browser.xul that broke my extension overnight.

So if you overlay browser.xul, you should make sure it works with today's build.

Sadly, the id change seems to be actually needed to fix a bug, so extension authors will need to work around this. Read on for a way to work around it.

To work around this, you can do:

  <toolbox id="navigator-toolbox"> 
    <vbox id="goat"></vbox>
  </toolbox>
  <toolbox id="browser-toolbox">
    <vbox id="goat"></vbox>
  </toolbox>
<vbox id="goat" class="zebra"> ... </vbox>

This allows you to only define your content (the goat vbox) once, as the overlay engine will overlay the definition unto the "dummy" version in the toolbox.

(thanks to Ratty on irc for reminding me of this)

Posted by doron at 9:25 AM | Comments (0) | TrackBack

January 22, 2008

What's Up, Doctype?

Not Frickin Again!

I remember the fun problems IBM ran into with doctypes (See the MDC article) - IBM created it's own doctype and put it on tons of webpages out there. Of course, IE/Netscape 4 didn't care about it and went ahead rendering in their quirky old-school way. Then Mozilla came along, and suddenly the pages no longer rendered "correctly", as the doctype (correctly) trigged standards mode. Long story short, Gecko special-cased that doctype to trigger quirks mode. Which is ugly.

Internet Explorer 7 learned a similar lesson - most web authors have no clue what doctypes really do. So IE7 broke pages that worked fine in IE6 because those pages had a doctype that IE6 ignored and paid for trying to be more compliant. But not compliant enough, because IE8 is going to break even more!

Personally, I thought IE's marketshare and the early betas of IE7 would have given people plenty of time to test and fix. But I forgot that most authors are lazy and wait for issues to arise before reacting, even though the web was full of discussion prior to IE7's release.

So now IE8 is going to introduce a new way (using meta tags) to force a page into IE8 strict mode. So now IE8 will render content in 3 different ways (IE6/IE7/IE8 mode). This means that when everyone finally gets off IE6 to a new, standards compliant IE, they will still be viewing pages using the IE6 mode.

JavaScript Toolkits will have to now figure out how to distinguish this new mode from IE7 mode and act accordingly.

And since IE8 still does IE6 mode, most web applications will probably not bother updating their code to work with IE8's changes and continue to use the IE6 mode even when no one actually runs IE6. Why should someone spend money to update the app to use the new IE changes when they can run the old code just fine. And use Silverlight for more advanced things, of course.

The question is, how long will this cycle continue? Web standards are supposed to avoid this exact issue, damn it.

Posted by doron at 8:00 PM | Comments (3) | TrackBack

January 3, 2008

XUL vs SilverLight

So Microsoft may start using Silverlight on its website, probably because no one else is. So on top of having to deal with Flash (stealing focus, dhtml zindex issues on Linux) we will soon have to deal with new issues now.

So, when do we get a XUL version of Mozilla.com?

And if Silverlight ever gets used as much as Flash (which I doubt, just look at Flex), someone can write SilverlightBlock!

As a side note, I recently moved back to Silicon Valley (still at IBM), and in the first two weeks witnessed an earthquake, a bomb threat at a Lightrail station closing down a street in downtown San Jose and a Otter catching and eating live crab. Must be the Bay Area!

Posted by doron at 2:06 PM | Comments (5) | TrackBack