Bug 1450250: Make svg:use use an actual shadow tree. r=heycam

Summary:
This fixes a couple fuzz bugs and prevents special-casing <svg:use> even more in
bug 1431255.

Unfortunately not as many hacks went away as I'd have hoped, since we still need
to match document rules, see the linked SVGWG issues.

But blocks_ancestor_combinators goes away, which is nice since it's on a very
hot path.

Test Plan: WPT for style invalidation, covered by existing tests otherwise.

Reviewers: heycam

Tags: #secure-revision

Bug #: 1450250

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

MozReview-Commit-ID: C4mthjoSNFh
This commit is contained in:
Emilio Cobos Álvarez
2018-07-16 16:07:58 +02:00
parent 171c69260b
commit c97bcecad8
21 changed files with 378 additions and 268 deletions

View File

@@ -4256,6 +4256,8 @@ PresShell::DoFlushPendingNotifications(mozilla::ChangesToFlush aFlush)
// notified on,
mDocument->FlushPendingNotifications(FlushType::ContentAndNotify);
mDocument->UpdateSVGUseElementShadowTrees();
// Process pending restyles, since any flush of the presshell wants
// up-to-date style data.
if (!mIsDestroying) {