This gives a substantial performance improvement over the more general Mask():
Test (MaskSurface10x10): 1.93042ms +/- 0.305028
Test (MaskSurface100x100): 2.33435ms +/- 1.00807
Test (MaskSurface500x500): 28.0472ms +/- 0.820744
Test (MaskSurface1000x1000): 107.656ms +/- 6.44615
Test (Mask10x10): 13.5237ms +/- 0.0932034
Test (Mask100x100): 14.0742ms +/- 1.21005
Test (Mask500x500): 96.5596ms +/- 1.81415
Test (Mask1000x1000): 356.891ms +/- 9.30592
--HG--
extra : rebase_source : a3031305302fb4abe93aa480df35ed0936d68cd8
This gives a substantial performance improvement over the more general Mask():
Test (MaskSurface10x10): 1.93042ms +/- 0.305028
Test (MaskSurface100x100): 2.33435ms +/- 1.00807
Test (MaskSurface500x500): 28.0472ms +/- 0.820744
Test (MaskSurface1000x1000): 107.656ms +/- 6.44615
Test (Mask10x10): 13.5237ms +/- 0.0932034
Test (Mask100x100): 14.0742ms +/- 1.21005
Test (Mask500x500): 96.5596ms +/- 1.81415
Test (Mask1000x1000): 356.891ms +/- 9.30592
--HG--
rename : layout/reftests/svg/text/dynamic-non-scaling-stroke-ref.svg => layout/reftests/svg/non-scaling-stroke-03-ref.svg
rename : layout/reftests/svg/text/dynamic-non-scaling-stroke.svg => layout/reftests/svg/non-scaling-stroke-03.svg
extra : rebase_source : a1218b8bc5cdcec7d4dd94561d841fb6e2a8ce5d
Instead of trying to detect all integer overflow at the source, this merely
keeps the sizes non-negative. That may not mean they are less than
nscoord_MAX.
If we give in and accept that integer arithmetic may result in the scrolled
rect being smaller than the scroll port, then we shouldn't assert.
--HG--
extra : transplant_source : RP%15%84zx%B9%E8%2C%1E%0A%AB%82%F4%9C%A2y%AD5%27
I talked about this with bz. The issue is that we have a lot of XUL reftests
that end up getting run as remote XUL given that the reftest harness loads
them with file:// URIs. But realistically most of them probably want to test
the fully-featured XBL environment that we provide to frontend and extensions.
So the compromise here is to do XBL scopes for content, and no XBL scopes
for reftests/crashtests.
1. Start headless X server. Start basic window manager on it.
2. Run reftests with said X server. Take note of failing tests.
3. Disable all reftests that need focus:
find $topsrcdir -name '*.list' | xargs sed -i -e '/needs-focus/s/^/#/'
4. Make reftest.js:Focus never focus the window and always return true.
5. Start reftests with said X server again. Once the tests begin
running, start a xterm on the same X server. The window manager will
focus this xterm and will not return focus to the browser.
6. Compare now-failing tests with baseline. Mark all such tests as
needs-focus.
Comments on specific tests:
editor/reftests/
- spellcheck-input-ref.html and spellcheck-textarea-ref.html focus
input elements and don't work right without the window having focus.
- spellcheck-hyphen-invalid-ref.html and
spellcheck-hyphen-multiple-invalid-ref.html use @autofocus on
textarea.
- 674212-spellcheck.html, 338427-2.html, and
462758-grabbers-resizers.html all wait for onfocus for div elements.
layout/reftests/bugs/
- 652301-1b.html focuses a bogus element with an onfocus handler.
layout/reftests/selection/
- pseudo-element-of-native-anonymous-ref.html .select()s an <input>.