Status

()

Core
Graphics
9 years ago
7 years ago

People

(Reporter: jtd, Unassigned)

Tracking

Trunk
x86
Mac OS X
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(3 attachments)

(Reporter)

Description

9 years ago
The two fonts used in the reftest for 475092 in reftests/text use the same Postscript name.  Because of a bug in the @font-face implementation which assigns the Postscript name of the font to the name of the font entry, this creates a font cache collision and the same font is used when running 475092-pos and 475092-sub.  These tests render differently when these tests are run with separate instances.

Steps (under 10.4):

1. Start FF
2. Load http://people.mozilla.org/~jdaggett/font-face/475092-sub.html
3. Quit
4. Start FF
5. Load http://people.mozilla.org/~jdaggett/font-face/475092-pos.html

Result: rendering is not the same
(Reporter)

Comment 1

9 years ago
Marking 475092 tests as random for now.
http://hg.mozilla.org/mozilla-central/rev/2b7859b8dc63

Bug 480267 will fix the underlying problem of non-unique names being used.
(Reporter)

Comment 2

9 years ago
I'm guessing that the underlying reason for the difference here is that GSUB/GPOS was added in 10.5, so rendering that relies on a particular behavior won't work the same way on both 10.4 and 10.5.  Not sure there's a way to test just 10.5 behavior, which I'm guessing was the intent of the original test.
Actually, the GPOS version doesn't work for me on 10.5 either.... presumably I hadn't realized this previously because the font-name-collision bug meant that it was actually testing the GSUB font both times!

The GSUB testcase does work, even on 10.4, otherwise you'd be seeing the same (incorrect) result with both fonts.

The original bug 475092 to was a Windows issue, so that was the real target of the tests, but I thought - incorrectly, it turns out - that they should pass on OS X as well. But it looks like ATSUI simply doesn't support the GPOS feature being used in the test font, and the test was only passing because of the font caching collision.

I think marking the 475092-pos.html test as expected-fail on OS X when you re-land the unique-naming patch should be the right thing to do. The -sub test should keep passing. Sorry about the hassle!
(Reporter)

Comment 4

9 years ago
Before I commented out these tests, these reftests were defined by:

random-if(MOZ_WIDGET_TOOLKIT=="windows") HTTP(..) == 475092-sub.html 475092-ref.html
random-if(MOZ_WIDGET_TOOLKIT=="gtk2") HTTP(..) == 475092-pos.html 475092-sub.html

Sounds like these should be Windows-only tests but I'm not sure why the behavior on windows of the first test would be random.  

To only run tests on Windows:

skip-if(MOZ_WIDGET_TOOLKIT!="windows") xxx
We really shouldn't use skip except for tests that crash.  (I probably should have named it crashes / crashes-if.)
(In reply to comment #4)
> Before I commented out these tests, these reftests were defined by:
> 
> random-if(MOZ_WIDGET_TOOLKIT=="windows") HTTP(..) == 475092-sub.html
> 475092-ref.html
> random-if(MOZ_WIDGET_TOOLKIT=="gtk2") HTTP(..) == 475092-pos.html
> 475092-sub.html
> 
> Sounds like these should be Windows-only tests but I'm not sure why the
> behavior on windows of the first test would be random.  

Because we're currently running unit tests on Windows Server 2003 (I think - right?), where the version of Uniscribe that's present does not actually do OpenType shaping for Latin script; see bug 475092 comment #18. (And it doesn't do GPOS mark positioning in Arabic, which was the original source of the bug report, so we can't test it via that route either.)
(Reporter)

Comment 7

9 years ago
Hmm, I think we need to be careful about setting up reftests that are only valid on particular flavors of a given platform (10.4 vs 10.5, Windows Server 2003 vs. Vista, etc.).  This leads to annoying oranges that are difficult to distinguish from intermittent problems.

The patch for bug 480267 has landed so you can test possible reftests against trunk.
(In reply to comment #7)
> Hmm, I think we need to be careful about setting up reftests that are only
> valid on particular flavors of a given platform (10.4 vs 10.5, Windows Server
> 2003 vs. Vista, etc.).  This leads to annoying oranges that are difficult to
> distinguish from intermittent problems.

Yes, certainly. That wasn't intended. But we also want to be able to test our implementation of features (such as GPOS positioning) that may not be supported equally on all versions of a platform.

Ideally, I suppose we'd have a way to flag tests as expected-fail or skip on specific versions (i.e., finer-grained platform distinctions than we currently use). Another approach may be what I did with the GPOS test for 475092: this passes on Vista, where it works "correctly", but it also passes on Server 2003 because neither the GSUB nor GPOS versions of the font "work" there - so the results still match, it just isn't really testing anything.

The failure of that test on OS X is also not version-dependent, it turns out: it happens on both 10.4 and 10.5. But the failure was being hidden by the font name/caching issue until you fixed this.

> The patch for bug 480267 has landed so you can test possible reftests against
> trunk.

Great, thanks.
475092-sub.html now passes on all platforms.
https://bugzilla.mozilla.org/show_bug.cgi?id=482596

475092-pos.html appears to be failing due to rounding of the 12.5 px offset.
Changing font-size to 48 px for an integer offset fixes the test with Pango and DWrite, at least.
Assignee: jfkthame → karlt
Blocks: 569770
Depends on: 615121
Created attachment 493588 [details] [diff] [review]
Change font-size to make pixel offset integer

The issues due to the 12.5 px offset are not really just rounding issues.
In 475092-sub.html and 475092-ref.html, the glyph gets rasterized at the offset.
In 475092-pos.html, the glyph gets rasterized without the offset, and then the offset is applied later.  The subpixel differences at rasterization result in the different glyph representations (not simply positions) on Mac and Linux.
Created attachment 493589 [details]
linux 475092-pos failure with integer offset

Making the offset integer makes 475092-pos.html pass with Pango on my Linux system with bytecode hinting enabled, but it fails with FreeType's autohinter.
It seems that rasterizing the glyph at different positions produces different results.  It seems that the rev3 fedora test machines use the autohinter.
Attachment #493589 - Attachment mime type: application/octet-stream → text/plain
Created attachment 493591 [details]
mac 475092-pos failure with integer offset

2 pixels differ by 1/255.
Summary: reftest for 475092 fails on 10.4 → reftest for 475092 fails
475092-sub is passing with GDI and DWrite (HarfBuzz) even with the 12.5 px offset:
http://hg.mozilla.org/mozilla-central/rev/7126fce69d0d
No longer blocks: 569770
Assignee: karlt → nobody
I get an unexpected pass on 475092-pos on debian in a xvfb on 5.0.
REFTEST TEST-UNEXPECTED-PASS | file:///tmp/build/layout/reftests/text/475092-pos.html | image comparison (==)
REFTEST   IMAGE: data:image/png;base64,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5cuV193R0VHu379fXrx40fAb3LEs+664cuVKw/ek1bsujTTew4cPx3nLx1e9Xi/d3d0NH9C4fv368ueff/Y916QZ4/HZ6n8HsUbTwoULy/Lly8uiRYsGxMrGjRsrvzouWLCgdHV1jfjv/uDBgw3X9dVXX7W0PwGAqaupABnqW8vhpps3bw47Znd3d8tjHjp0aNgxL126VObPn9/yuGvWrCm3b9+ujNfoYHGoqa2trRw/fnxcln2XPH/+vHKAvGzZslGPN/g5IrXaP3fDmsw++uijIa+FaTSNdHraeH62vvjii6a3rb29vZw5c6bU6/XKNSD9p+Gebu4XEADgnQqQUkp58eJFOXDgwICnYzeaOjo6yqeffjrsg/B27NjR0vb1f6r3WJZ916xatarl93E4mzdvHjDeZH+Y3bp161r6LKxbt27Y8cb7s3X37t3Ke9R/mjNnTjl48GB5+vRp3zLDBci8efOGXFdPT0/l+pMtW7a8078CAgADjeoakKni8ePH5dq1a+Xrr78u+/fvL8eOHSvnzp0rv/76qwOeoJMnT5YVK1b0TXfv3h3TeD/++OOA8S5evDhOW/rvdu3atXLo0KGyb9++snfv3nL48OFy9erVhtdQjUVPT085f/58+fzzz8sPP/zg3yIA/Mu80wECAABMLgIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAACBJoEAAAAdRSURBVECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgBgBAgAAxAgQAAAgRoAAAAAxAgQAAIgRIAAAQIwAAQAAYgQIAAAQI0AAAIAYAQIAAMQIEAAAIEaAAAAAMQIEAACIESAAAECMAAEAAGIECAAAECNAAACAGAECAADECBAAACBGgAAAADECBAAAiBEgAABAjAABAABiBAgAABAjQAAAgJj/BVbRoD7ioab2AAAAAElFTkSuQmCC
You need to log in before you can comment on or make changes to this bug.