From 1000a339cf4672b0f6da29e4116cb26ccbe08255 Mon Sep 17 00:00:00 2001 From: Simon Giesecke Date: Mon, 23 Nov 2020 16:10:16 +0000 Subject: [PATCH] Bug 1673931 - Avoid including ChromeUtils.h from header files. Differential Revision: https://phabricator.services.mozilla.com/D96553 Depends on D96552 --- caps/BasePrincipal.cpp | 13 ++++++++++ caps/BasePrincipal.h | 53 +++++++++++++++++++---------------------- caps/OriginAttributes.h | 1 - 3 files changed, 38 insertions(+), 29 deletions(-) diff --git a/caps/BasePrincipal.cpp b/caps/BasePrincipal.cpp index 3dde8d705aff..43d3c95f1a5c 100644 --- a/caps/BasePrincipal.cpp +++ b/caps/BasePrincipal.cpp @@ -323,6 +323,19 @@ nsresult BasePrincipal::ToJSON(nsACString& aResult) { return NS_OK; } +bool BasePrincipal::FastSubsumesIgnoringFPD( + nsIPrincipal* aOther, DocumentDomainConsideration aConsideration) { + MOZ_ASSERT(aOther); + + if (Kind() == eContentPrincipal && + !dom::ChromeUtils::IsOriginAttributesEqualIgnoringFPD( + mOriginAttributes, Cast(aOther)->mOriginAttributes)) { + return false; + } + + return SubsumesInternal(aOther, aConsideration); +} + bool BasePrincipal::Subsumes(nsIPrincipal* aOther, DocumentDomainConsideration aConsideration) { MOZ_ASSERT(aOther); diff --git a/caps/BasePrincipal.h b/caps/BasePrincipal.h index 6f0edbe1b106..a896577bd791 100644 --- a/caps/BasePrincipal.h +++ b/caps/BasePrincipal.h @@ -7,26 +7,36 @@ #ifndef mozilla_BasePrincipal_h #define mozilla_BasePrincipal_h -#include "nsJSPrincipals.h" - -#include "mozilla/Attributes.h" +#include +#include "ErrorList.h" +#include "js/RootingAPI.h" +#include "mozilla/AlreadyAddRefed.h" +#include "mozilla/Assertions.h" #include "mozilla/OriginAttributes.h" - -class nsAtom; -class nsIContentSecurityPolicy; -class nsIObjectOutputStream; -class nsIObjectInputStream; -class nsIURI; +#include "mozilla/RefPtr.h" +#include "mozilla/dom/ReferrerPolicyBinding.h" +#include "nsAtom.h" +#include "nsIPrincipal.h" +#include "nsJSPrincipals.h" +#include "nsStringFwd.h" +#include "nscore.h" class ExpandedPrincipal; - +class mozIDOMWindow; +class nsIChannel; +class nsIReferrerInfo; +class nsISupports; +class nsIURI; +namespace JS { +class Value; +} namespace Json { class Value; } +struct JSContext; + namespace mozilla { -namespace dom { -class Document; -} + namespace extensions { class WebExtensionPolicy; } @@ -321,8 +331,8 @@ class BasePrincipal : public nsJSPrincipals { nsIURI* aURI, const OriginAttributes& aAttrs, const nsACString& aOriginNoSuffix); - inline bool FastSubsumesIgnoringFPD( - nsIPrincipal* aOther, DocumentDomainConsideration aConsideration); + bool FastSubsumesIgnoringFPD(nsIPrincipal* aOther, + DocumentDomainConsideration aConsideration); RefPtr mOriginNoSuffix; RefPtr mOriginSuffix; @@ -397,19 +407,6 @@ inline bool BasePrincipal::FastSubsumesConsideringDomain(nsIPrincipal* aOther) { return Subsumes(aOther, ConsiderDocumentDomain); } -inline bool BasePrincipal::FastSubsumesIgnoringFPD( - nsIPrincipal* aOther, DocumentDomainConsideration aConsideration) { - MOZ_ASSERT(aOther); - - if (Kind() == eContentPrincipal && - !dom::ChromeUtils::IsOriginAttributesEqualIgnoringFPD( - mOriginAttributes, Cast(aOther)->mOriginAttributes)) { - return false; - } - - return SubsumesInternal(aOther, aConsideration); -} - inline bool BasePrincipal::FastSubsumesIgnoringFPD(nsIPrincipal* aOther) { return FastSubsumesIgnoringFPD(aOther, DontConsiderDocumentDomain); } diff --git a/caps/OriginAttributes.h b/caps/OriginAttributes.h index deeb3b385654..00ec2b1b4292 100644 --- a/caps/OriginAttributes.h +++ b/caps/OriginAttributes.h @@ -7,7 +7,6 @@ #ifndef mozilla_OriginAttributes_h #define mozilla_OriginAttributes_h -#include "mozilla/dom/ChromeUtils.h" #include "mozilla/dom/ChromeUtilsBinding.h" #include "mozilla/StaticPrefs_privacy.h" #include "nsIScriptSecurityManager.h"