This requires moving some code around to PreferenceSheet, but that makes
stuff actually a bit simpler.
Depends on D192574
Differential Revision: https://phabricator.services.mozilla.com/D192575
When colors are converted to sRGB to render onto the display, make sure
that they are within sRGB gamut limits.
Gamut mapping is implemented according to:
https://drafts.csswg.org/css-color-4/#gamut-mapping
The color-mix-non-srgb-001 test is checking the expected result in
sRGB, which happens to be out of gamut limits, but because the test
is for color-mix and not gamut mapping, I changed the expected
results to the color space of the mix.
The svg reftest now has an increased fuzzy to allow for the final colors
to be gamut mapped. Gamut mapping is dependent of available hardware, so
we can't pin down exact colors for the result.
Differential Revision: https://phabricator.services.mozilla.com/D191083
When colors are converted to sRGB to render onto the display, make sure
that they are within sRGB gamut limits.
Gamut mapping is implemented according to:
https://drafts.csswg.org/css-color-4/#gamut-mapping
The color-mix-non-srgb-001 test is checking the expected result in
sRGB, which happens to be out of gamut limits, but because the test
is for color-mix and not gamut mapping, I changed the expected
results to the color space of the mix.
The svg reftest now has an increased fuzzy to allow for the final colors
to be gamut mapped. Gamut mapping is dependent of available hardware, so
we can't pin down exact colors for the result.
Differential Revision: https://phabricator.services.mozilla.com/D191083
In the regressing bug 1849793 I removed a hunk like this because we
don't use any of the parent state on the parent properly:
```
if (aAppearance == StyleAppearance::MozMenulistArrowButton) {
// HTML select and XUL menulist dropdown buttons get state from the
// parent.
nsIFrame* parentFrame = aFrame->GetParent();
aFrame = parentFrame;
elementState = GetContentState(parentFrame, aAppearance);
}
```
However that aFrame = parentFrame also changed the frame we read the
color for the fill. This is not an issue for menus because those don't
override the colors, but for the select menulist button we need to
explicitly inherit.
Differential Revision: https://phabricator.services.mozilla.com/D192002
This changes -moz-bool-pref from @supports to @media, bringing various
improvements:
* @media (-moz-bool-pref) properly reacts to dynamic changes.
* We no longer need to parse chrome:// stylesheets in the main thread
(-moz-bool-pref was the only thing that forced us to do that).
This makes privileged and non-privileged stylesheets more similar.
Differential Revision: https://phabricator.services.mozilla.com/D191196
This matches the behavior of other browsers (in fact, I filed [1] about
it long time ago).
This avoids a bunch of overhead in some speedometer subtests. Makes me a
bit sad because I still think our approach is slightly more correct per
spec, but not worth the performance cost.
[1]: https://github.com/w3c/csswg-drafts/issues/2263
Differential Revision: https://phabricator.services.mozilla.com/D190705
It seems mask-origin/mask-clip/clip-path use different mapping for
geometry-box. We should specialize each one. In this patch, we focus on
clip-path.
Differential Revision: https://phabricator.services.mozilla.com/D188146
This should be good enough to catch regressions. The main thing is we paint something in the fragments of the iframe on the second and following pages and this should catch it if we fail to.
Fuzz amounts are from an all reftests try run.
Differential Revision: https://phabricator.services.mozilla.com/D190246
This is needed to fix layout/reftests/bugs/1743533-1.html after the
previous patch, which will otherwise perma-pass (which is actually
perma-fail).
The reason is a bug in nsHideViewer::Run, which now gets used for
fission iframes as well.
What happens is that mPresShell->IsDestroying() is true, but
frame->PresShell() is a different press shell in fact (because page mode
re-creates the pres shell).
We should not hide the frame loader there. Hiding it if
mPresShell->IsDestroying() is redundant anyways, even if the frame
belongs to mPresShell, because if there is a frame, that frame going
away will end up in nsHideViewer::Run again, eventually.
Depends on D187650
Differential Revision: https://phabricator.services.mozilla.com/D187657
* link-1: This is testing <mtext href> link render specially. href is
not in the current MathML Core spec.
* negative-mspace-1: This is testing negative values for mspace@width but
MathML Core just currently maps it to the width property which does not
accept negative values.
* mathml-type-supported: This verify application/mathml+xml is recognized
by the browser and will open a page with such a MIME type. Such a
behavior is not specified in MathML Core.
* web-platform/tests/mathml/presentation-markup/mrow/mphantom-001.html:
Copy and tweak from existing merror-001.html to check style and size
of the <mphantom> element.
* menclose-in-mphantom: Remove since that's now covered by the new
mphantom-001.html plus existing visibility-004.tentative.html
* mphantom-1: Remove since that's covered by the new mphantom-001.html
plus exisiting visibility-00{1,2,3}.html
* mphantom-2: Remove since that's covered by the new mphantom-001.html
and other more advanced tests for mrow-like elements.
* non-spacing-accent-1: This is testing a valid MathML Core behavior
(assuming system fonts can render U+0302 COMBINING CIRCUMFLEX ACCENT)
so upstream it to WPT.
* stretchy-underbar-1: This test assumes that the underbar stretches
but U+332 is not stretchy by default in MathML Core's operator
dictionary, so add an explicit attribute. Probably the original test
makes more assumption (system font, etc) so don't touch it too much.
Even if the operator does not stretch, it would still pass anyway.
Differential Revision: https://phabricator.services.mozilla.com/D185466
* link-1: This is testing <mtext href> link render specially. href is
not in the current MathML Core spec.
* negative-mspace-1: This is testing negative values for mspace@width but
MathML Core just currently maps it to the width property which does not
accept negative values.
* mathml-type-supported: This verify application/mathml+xml is recognized
by the browser and will open a page with such a MIME type. Such a
behavior is not specified in MathML Core.
* web-platform/tests/mathml/presentation-markup/mrow/mphantom-001.html:
Copy and tweak from existing merror-001.html to check style and size
of the <mphantom> element.
* menclose-in-mphantom: Remove since that's now covered by the new
mphantom-001.html plus existing visibility-004.tentative.html
* mphantom-1: Remove since that's covered by the new mphantom-001.html
plus exisiting visibility-00{1,2,3}.html
* mphantom-2: Remove since that's covered by the new mphantom-001.html
and other more advanced tests for mrow-like elements.
* non-spacing-accent-1: This is testing a valid MathML Core behavior
(assuming system fonts can render U+0302 COMBINING CIRCUMFLEX ACCENT)
so upstream it to WPT.
* stretchy-underbar-1: This test assumes that the underbar stretches
but U+332 is not stretchy by default in MathML Core's operator
dictionary, so add an explicit attribute. Probably the original test
makes more assumption (system font, etc) so don't touch it too much.
Even if the operator does not stretch, it would still pass anyway.
Differential Revision: https://phabricator.services.mozilla.com/D185466
When computing the size of an image for CanvasRenderingContext2D.drawImage(),
use the fallback size of 300 x 150 if the image contains no width or
height. This may occur if the SVG contained no width or height attribute.
Depends on D182487
Differential Revision: https://phabricator.services.mozilla.com/D182488
Add tests for CanvasRenderingContext2D.drawImage() when the image to be drawn is
an SVG with no width or height attribute.
Differential Revision: https://phabricator.services.mozilla.com/D182487
Some appearance values are really just a background.
Being able to draw them using `background-image` instead of appearance
allows us to preserve borders, etc.
Differential Revision: https://phabricator.services.mozilla.com/D187851
Since some issues such as bug 1851323 are fixed by ICU4X 1.3's data rule file,
I would like to apply it to get feedback in Gecko.
Differential Revision: https://phabricator.services.mozilla.com/D187980
* link-1: This is testing <mtext href> link render specially. href is
not in the current MathML Core spec.
* negative-mspace-1: This is testing negative values for mspace@width but
MathML Core just currently maps it to the width property which does not
accept negative values.
* mathml-type-supported: This verify application/mathml+xml is recognized
by the browser and will open a page with such a MIME type. Such a
behavior is not specified in MathML Core.
* web-platform/tests/mathml/presentation-markup/mrow/mphantom-001.html:
Copy and tweak from existing merror-001.html to check style and size
of the <mphantom> element.
* menclose-in-mphantom: Remove since that's now covered by the new
mphantom-001.html plus existing visibility-004.tentative.html
* mphantom-1: Remove since that's covered by the new mphantom-001.html
plus exisiting visibility-00{1,2,3}.html
* mphantom-2: Remove since that's covered by the new mphantom-001.html
and other more advanced tests for mrow-like elements.
* non-spacing-accent-1: This is testing a valid MathML Core behavior
(assuming system fonts can render U+0302 COMBINING CIRCUMFLEX ACCENT)
so upstream it to WPT.
* overbar-width-1, underbar-width-1: Ditto, and there is no need to
assume system fonts have the the overbar/underbar char since there is
a hiding div.
* stretchy-underbar-1: This test assumes that the underbar stretches
but U+332 is not stretchy by default in MathML Core's operator
dictionary, so add an explicit attribute. Probably the original test
makes more assumption (system font, etc) so don't touch it too much.
Even if the operator does not stretch, it would still pass anyway.
Differential Revision: https://phabricator.services.mozilla.com/D185466
The clip mask state was leaking into the drawing of the stroke mask texture.
This caused the stroke mask to be erroneously clipped out.
Differential Revision: https://phabricator.services.mozilla.com/D187254
The clip mask state was leaking into the drawing of the stroke mask texture.
This caused the stroke mask to be erroneously clipped out.
Differential Revision: https://phabricator.services.mozilla.com/D187254
The clip mask state was leaking into the drawing of the stroke mask texture.
This caused the stroke mask to be erroneously clipped out.
Differential Revision: https://phabricator.services.mozilla.com/D187254
This is not standard, and we don't use it internally (some chrome
stylesheets use it tho).
In the past this pseudo-class was more useful because it matched the
state for which <img> elements used an inline, but that's no longer
true, see bug 1196668 and co.
Depends on D186938
Differential Revision: https://phabricator.services.mozilla.com/D186939