Bug 1087872 lands with fuzzy on Windows. Per bug 1087872 comment 35, it worth a followup bug for this problem, as it is not something expected. But the real reason is not known yet.
I suspect it might be a problem with propagating visual overflow areas.
Actually it is not a problem with ruby at all. According to my test, even replace those lines with <span style="font-size: 50%">x<span class="remove"></span>y</span> and <span style="font-size: 50%">xy</span> in test and ref file respectively, it fails with identical difference as well.
jfkthame, maybe you have some idea about what happens here. See the lines in comment 2, there is an onload listener which removes any element with class="remove". This test fails on Windows only, with one pixel different. The pixel in question is a pixel connects both letters.
This sounds like a D2D antialiasing/compositing issue, where painting the two glyphs in separate operations or painting them together in a single call is not guaranteed to give pixel-identical results where their antialiased edges coincide. As such, I don't think the one-pixel "fuzz" is something we need to be concerned about. We've seen issues like this before, where sometimes the presence of a particular glyph in the string passed to a D2D call will affect the precise antialiasing given to an apparently-unrelated glyph even when it's several positions away. Still, in this case you might be able to avoid the fuzz by minor changes to the testcase. E.g. setting the font to sans-serif instead of the default (serif) may help; or replacing the "xy" glyphs with something like "o" to avoid the virtually-touching serifs that are competing for the same pixel of antialiasing.
Created attachment 8556192 [details] [diff] [review] patch
Comment on attachment 8556192 [details] [diff] [review] patch Review of attachment 8556192 [details] [diff] [review]: ----------------------------------------------------------------- Yes, that seems fine provided it works; it doesn't affect the purpose of the test.