The Good Life... a weblog about life, technology, and the Opera Web browser

Posts from August 08, 2005

Date
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

Acid2 - Rows 6 to 9, between rows 9 and 10, and rows 10 and 11 (updated (again)!)

As I reported previously, fixing some of the Acid2 bugs requires major code rewrites. In order to stop regressions, we try to avoid major code rewrites once we've had a Final release for a given version of the rendering engine[1]. The current version of the rendering engine (code-named Presto) is as close to passing Acid2 as it's going to get. Until we release a new version of Presto (and it'll be quite obvious when we do), it is highly unlikely that there will be any more changes in Opera's rendering of the Acid2 test.

But don't fret! As you've seen, we've already progressed very far on the next rendering engine update. The first screenshot[2] from the new version of Presto comes from a build including three Acid2 fixes. First, the gap between rows 9 and 10 was fixed by a rewrite of our margin collapsing code. The problem shown in the Acid2 test was related to floats followed by elements with the clear property set. Check this test case to see how your browser handles it. There's also a large number of margin collapsing tests in Ian's ad hoc test suite.

As discussed previously, Opera didn't recognize the :hover pseudo-class if it wasn't used in combination with other selectors. Our second fix in this build was to change this behavior so Opera is now spec. compliant when using a Standards mode DOCTYPE. The behavior when Quirks mode is triggered is unchanged. Check this test case to see if your browser styles the :hover pseudo-class. Though it's not visible in the screenshot below, the nose now turns blue when hovered instead of turning red.

The third fix was a proper fix for rows 10 and 11, which had been fixed previously, though the change was later reverted due to regressions. See the previous post for details about this bug and fix.

Here's the updated rendering with these three fixes:

Screenshot of the Acid2 test

And here's the updated rendering with the nose hovered:

Screenshot of the Acid2 test

Unfortunately, major code rewrites introduce bugs and this build also has two visible regressions: the eyes are not visible anymore and row 14 has gotten worse. No worries, though: they'll be fixed soon.


[1] And for what it's worth, this is usually why rendering engine bugs go unfixed for several releases.

[2] Note that this screenshot is from a build previous to our current internal build screenshot, as I'm trying to show how we got to the screenshot in the current internal build.

NOTE: I left out the third fix previously, so I've included that information now. -- Tim, 2005-08-29.

NOTE 2: I added a screenshot with the nose hovered for the non-believers. -- Tim, 2005-10-19.