Wednesday, May 04, 2005

Opera, Konqueror, and Safari

A significant amount of time this week was spent on the addition of support for Konqueror (3.4) and Opera (8.0) browsers. I'm very excited about the idea of having more browsers supported. In addition to making the software available to a wider audience, they act as an additional check to make sure we're doing things right with regard to Web standards.

The major hang-up for supporting Opera8 turned out to be nothing more than Echo2 misreading Opera's user-agent tag. Opera8 uses a somewhat deceptive user-agent header by default, identifying itself partially as Internet Explorer. Echo2 was failing to notice the "Opera" part of the user-agent header, and was thus turning on all the "quirk flags" in Echo2 associated with Internet Explorer. This causes some significant changes in Echo's rendering behavior, such as rendering using IE's proprietary "CSS expressions" instead of using the conventional CSS2 "right" and "bottom" properties that are unsupported by IE... not a good thing for non-IE clients. A few other issues were run into...notably Opera's lack of support for the setRequestHeader() method in its XMLHttpRequest implementation.

The goal with Alpha9 was to also support Safari, which I was hopeful would be a given once we had Konqueror support in place, as Safari is a derivative of Konqueror. I picked up a Mac Mini this week from the Apple Store, largely for this purpose, and so far I've found Safari support to be frustrating to say the least. Echo2 appeared to work well in limited testing with Safari 1.3 (that which is included with OSX 10.3/Panther). Things took a sharp turn for the worse once I upgraded to Safari2 w/ OSX 10.4/Tiger though. After a bit of testing it seems that there may be a bug in Safari where the document.importNode() does not work as expected when importing HTML fragments from an XML dcoument received via XMLHttpRequest. Safari2 does not seem to import CSS style attributes or element ids from the HTML fragment (and we are setting the namespaces correctly). I've whipped up a simplified test case of this issue, but still need to find a way to get it in front of the Safari devs.

Note that all the above changes aren't quite out yet, though they are in the Echo2 Subversion repository. They will be out very soon, i.e., hopefully tonight, with alpha9.

And as a total, is Mac OS X gorgeous! I'm finding myself being sucked toward it more and more from my usual Red Hat Linux / Fedora Core 3 workstation.


  • I have to admit to being away from Echo for a little while, I was quite active with Echo devolpment about a year ago. I'm pleased to see the direction you're taking Echo 2. I look forward to playing with it when the components become a little more mature :)

    By Blogger javajunky, at 6:18 AM  

  • Hi!

    I am new to Echo, but Echo 2 looks like it may be apropos to a project I am working on. Is the API stable enough at this point that it is worth beginning to play with it, or should I wait for a later release?


    By Blogger Robot Two, at 4:20 AM  

Post a Comment

<< Home