Bug 1488300 - Kick off external SVG resource loading from DidSetComputedStyle. r=dholbert

Differential Revision: https://phabricator.services.mozilla.com/D4901

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Xidorn Quan 2018-09-07 21:08:44 +00:00
parent 044a4b8c2c
commit 30689fcc0d
4 changed files with 14 additions and 8 deletions

View File

@ -1203,6 +1203,18 @@ nsFrame::DidSetComputedStyle(ComputedStyle* aOldComputedStyle)
}
}
// SVGObserverUtils::GetEffectProperties() asserts that we only invoke it with
// the first continuation so we need to check that in advance. Continuing text
// frame doesn't initialize its continuation pointer before reaching here for
// the first time, so we have to exclude text frames. This doesn't affect
// correctness because text nodes themselves shouldn't have effects applied.
if (!IsTextFrame() && !GetPrevContinuation()) {
// Kick off loading of external SVG resources referenced from properties if
// any. This currently includes filter, clip-path, and mask. We don't care
// about the return value. We only want its side effect.
Unused << SVGObserverUtils::GetEffectProperties(this);
}
// If the page contains markup that overrides text direction, and
// does not contain any characters that would activate the Unicode
// bidi algorithm, we need to call |SetBidiEnabled| on the pres

View File

@ -544749,7 +544749,7 @@
"reftest"
],
"css/css-masking/mask-image/mask-image-url-remote-mask.html": [
"cfa3a6166cdcb41b2feaab2ffd5c087a568771f5",
"f3f2eefaa92df83296379efd861b39e2ab65f78e",
"reftest"
],
"css/css-masking/mask-image/reference/mask-image-ref.html": [
@ -544765,7 +544765,7 @@
"support"
],
"css/css-masking/mask-image/support/mask.svg": [
"30e601c87c32a08912e261dab22734033df1ef8e",
"cab55923d32ddb9525cb81a12d8035b1bf51bb4c",
"support"
],
"css/css-masking/parsing/clip-invalid.html": [

View File

@ -26,8 +26,3 @@
</style>
<p>The test passes if there is a green square and no red below.</p>
<div id="back"></div><div id="front"></div>
<svg>
<!-- mask-image doesn't block onload, so we use an empty g here to
force mask.svg to load before onload. -->
<use href="support/mask.svg#empty"/>
</svg>

View File

@ -2,5 +2,4 @@
<mask id="mask">
<rect x="50" y="50" width="100" height="100" fill="white"/>
</mask>
<g id="empty"/>
</svg>

Before

Width:  |  Height:  |  Size: 181 B

After

Width:  |  Height:  |  Size: 163 B