From 6905267b2878930a110837f6511ea39bcc833c5e Mon Sep 17 00:00:00 2001 From: Xidorn Quan Date: Wed, 20 Sep 2017 08:26:53 +1000 Subject: [PATCH] Bug 1400540 - Decide style backend type based on principal. r=bholley MozReview-Commit-ID: A4y9Shdbr7g --HG-- extra : source : cdfe5e5e059273a1c7fc6506d6e0fecb2bb7affb --- dom/base/nsDocument.cpp | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/dom/base/nsDocument.cpp b/dom/base/nsDocument.cpp index 642960e6a155..265af0df07b9 100644 --- a/dom/base/nsDocument.cpp +++ b/dom/base/nsDocument.cpp @@ -13465,20 +13465,15 @@ nsIDocument::UpdateStyleBackendType() #ifdef MOZ_STYLO if (nsLayoutUtils::StyloEnabled()) { - if (IsBeingUsedAsImage()) { - // Enable stylo for SVG-as-image. + // Disable stylo only for system principal. Other principals aren't + // able to use XUL by default, and the back door to enable XUL is + // mostly just for testing, which means they don't matter, and we + // shouldn't respect them at the same time. + // Note that, since tests can have XUL support, we still need to + // explicitly exclude XUL documents here. + if (!nsContentUtils::IsSystemPrincipal(NodePrincipal()) && + !IsXULDocument()) { mStyleBackendType = StyleBackendType::Servo; - } else if (!mDocumentContainer) { - // Not docshell, assume Gecko. Various callers can end up setting this - // explicitly afterwards to inherit it in various situations. - } else if (!IsXULDocument() && IsContentDocument()) { - // Disable stylo for about: pages other than about:blank, since - // they tend to use unsupported selectors like XUL tree pseudos. - bool isAbout = false; - mDocumentURI->SchemeIs("about", &isAbout); - if (!isAbout || NS_IsAboutBlank(mDocumentURI)) { - mStyleBackendType = StyleBackendType::Servo; - } } } #endif