diff --git a/caps/idl/nsIPrincipal.idl b/caps/idl/nsIPrincipal.idl index 7117b87425fa..2770cd2abc53 100644 --- a/caps/idl/nsIPrincipal.idl +++ b/caps/idl/nsIPrincipal.idl @@ -20,7 +20,7 @@ interface nsIContentSecurityPolicy; [ptr] native JSPrincipals(JSPrincipals); [ptr] native PrincipalArray(nsTArray >); -[scriptable, builtinclass, uuid(f09d8a53-a6c8-4f68-b329-9a76a709d24e)] +[scriptable, builtinclass, uuid(0416bfa5-c94b-485c-81a7-e48305c60289)] interface nsIPrincipal : nsISerializable { /** @@ -35,6 +35,11 @@ interface nsIPrincipal : nsISerializable */ boolean equalsIgnoringDomain(in nsIPrincipal other); + /** + * An alias for equals() (for now). + */ + boolean equalsConsideringDomain(in nsIPrincipal other); + %{C++ inline bool Equals(nsIPrincipal* aOther) { bool equal = false; @@ -45,6 +50,11 @@ interface nsIPrincipal : nsISerializable bool equal = false; return NS_SUCCEEDED(EqualsIgnoringDomain(aOther, &equal)) && equal; } + + inline bool EqualsConsideringDomain(nsIPrincipal* aOther) { + bool equal = false; + return NS_SUCCEEDED(EqualsConsideringDomain(aOther, &equal)) && equal; + } %} /** @@ -96,6 +106,11 @@ interface nsIPrincipal : nsISerializable */ boolean subsumesIgnoringDomain(in nsIPrincipal other); + /** + * An alias for subsumes() (for now); + */ + boolean subsumesConsideringDomain(in nsIPrincipal other); + %{C++ inline bool Subsumes(nsIPrincipal* aOther) { bool subsumes = false; @@ -106,6 +121,11 @@ interface nsIPrincipal : nsISerializable bool subsumes = false; return NS_SUCCEEDED(SubsumesIgnoringDomain(aOther, &subsumes)) && subsumes; } + + inline bool SubsumesConsideringDomain(nsIPrincipal* aOther) { + bool subsumes = false; + return NS_SUCCEEDED(SubsumesConsideringDomain(aOther, &subsumes)) && subsumes; + } %} /** diff --git a/caps/include/nsPrincipal.h b/caps/include/nsPrincipal.h index b0e15683ed05..f677c2004173 100644 --- a/caps/include/nsPrincipal.h +++ b/caps/include/nsPrincipal.h @@ -52,6 +52,7 @@ public: NS_DECL_NSISERIALIZABLE NS_IMETHOD Equals(nsIPrincipal* other, bool* _retval); NS_IMETHOD EqualsIgnoringDomain(nsIPrincipal* other, bool* _retval); + NS_IMETHOD EqualsConsideringDomain(nsIPrincipal* other, bool* _retval); NS_IMETHOD GetHashValue(uint32_t* aHashValue); NS_IMETHOD GetURI(nsIURI** aURI); NS_IMETHOD GetDomain(nsIURI** aDomain); @@ -59,6 +60,7 @@ public: NS_IMETHOD GetOrigin(char** aOrigin); NS_IMETHOD Subsumes(nsIPrincipal* other, bool* _retval); NS_IMETHOD SubsumesIgnoringDomain(nsIPrincipal* other, bool* _retval); + NS_IMETHOD SubsumesConsideringDomain(nsIPrincipal* other, bool* _retval); NS_IMETHOD CheckMayLoad(nsIURI* uri, bool report, bool allowIfInheritsPrincipal); NS_IMETHOD GetJarPrefix(nsACString& aJarPrefix); NS_IMETHOD GetAppStatus(uint16_t* aAppStatus); @@ -135,6 +137,7 @@ public: NS_DECL_NSISERIALIZABLE NS_IMETHOD Equals(nsIPrincipal* other, bool* _retval); NS_IMETHOD EqualsIgnoringDomain(nsIPrincipal* other, bool* _retval); + NS_IMETHOD EqualsConsideringDomain(nsIPrincipal* other, bool* _retval); NS_IMETHOD GetHashValue(uint32_t* aHashValue); NS_IMETHOD GetURI(nsIURI** aURI); NS_IMETHOD GetDomain(nsIURI** aDomain); @@ -142,6 +145,7 @@ public: NS_IMETHOD GetOrigin(char** aOrigin); NS_IMETHOD Subsumes(nsIPrincipal* other, bool* _retval); NS_IMETHOD SubsumesIgnoringDomain(nsIPrincipal* other, bool* _retval); + NS_IMETHOD SubsumesConsideringDomain(nsIPrincipal* other, bool* _retval); NS_IMETHOD CheckMayLoad(nsIURI* uri, bool report, bool allowIfInheritsPrincipal); NS_IMETHOD GetJarPrefix(nsACString& aJarPrefix); NS_IMETHOD GetAppStatus(uint16_t* aAppStatus); diff --git a/caps/src/nsNullPrincipal.cpp b/caps/src/nsNullPrincipal.cpp index 8fc74e16e6ca..f1f290fc9c87 100644 --- a/caps/src/nsNullPrincipal.cpp +++ b/caps/src/nsNullPrincipal.cpp @@ -139,6 +139,12 @@ nsNullPrincipal::EqualsIgnoringDomain(nsIPrincipal *aOther, bool *aResult) return Equals(aOther, aResult); } +NS_IMETHODIMP +nsNullPrincipal::EqualsConsideringDomain(nsIPrincipal *aOther, bool *aResult) +{ + return Equals(aOther, aResult); +} + NS_IMETHODIMP nsNullPrincipal::GetHashValue(uint32_t *aResult) { @@ -216,6 +222,12 @@ nsNullPrincipal::SubsumesIgnoringDomain(nsIPrincipal *aOther, bool *aResult) return Subsumes(aOther, aResult); } +NS_IMETHODIMP +nsNullPrincipal::SubsumesConsideringDomain(nsIPrincipal *aOther, bool *aResult) +{ + return Subsumes(aOther, aResult); +} + NS_IMETHODIMP nsNullPrincipal::CheckMayLoad(nsIURI* aURI, bool aReport, bool aAllowIfInheritsPrincipal) { diff --git a/caps/src/nsPrincipal.cpp b/caps/src/nsPrincipal.cpp index 52a298f2eba9..ccd5b550a6a8 100644 --- a/caps/src/nsPrincipal.cpp +++ b/caps/src/nsPrincipal.cpp @@ -285,6 +285,12 @@ nsPrincipal::EqualsIgnoringDomain(nsIPrincipal *aOther, bool *aResult) return NS_OK; } +NS_IMETHODIMP +nsPrincipal::EqualsConsideringDomain(nsIPrincipal *aOther, bool *aResult) +{ + return Equals(aOther, aResult); +} + NS_IMETHODIMP nsPrincipal::Subsumes(nsIPrincipal *aOther, bool *aResult) { @@ -297,6 +303,12 @@ nsPrincipal::SubsumesIgnoringDomain(nsIPrincipal *aOther, bool *aResult) return EqualsIgnoringDomain(aOther, aResult); } +NS_IMETHODIMP +nsPrincipal::SubsumesConsideringDomain(nsIPrincipal *aOther, bool *aResult) +{ + return Subsumes(aOther, aResult); +} + NS_IMETHODIMP nsPrincipal::GetURI(nsIURI** aURI) { @@ -674,6 +686,12 @@ nsExpandedPrincipal::EqualsIgnoringDomain(nsIPrincipal* aOther, bool* aResult) return ::Equals(this, &nsIPrincipal::SubsumesIgnoringDomain, aOther, aResult); } +NS_IMETHODIMP +nsExpandedPrincipal::EqualsConsideringDomain(nsIPrincipal* aOther, bool* aResult) +{ + return ::Equals(this, &nsIPrincipal::SubsumesConsideringDomain, aOther, aResult); +} + // nsExpandedPrincipal::Subsumes and nsExpandedPrincipal::SubsumesIgnoringDomain // shares the same logic. The difference only that Subsumes calls are replaced //with SubsumesIgnoringDomain calls in the second case. @@ -726,6 +744,12 @@ nsExpandedPrincipal::SubsumesIgnoringDomain(nsIPrincipal* aOther, bool* aResult) return ::Subsumes(this, &nsIPrincipal::SubsumesIgnoringDomain, aOther, aResult); } +NS_IMETHODIMP +nsExpandedPrincipal::SubsumesConsideringDomain(nsIPrincipal* aOther, bool* aResult) +{ + return ::Subsumes(this, &nsIPrincipal::SubsumesConsideringDomain, aOther, aResult); +} + NS_IMETHODIMP nsExpandedPrincipal::CheckMayLoad(nsIURI* uri, bool aReport, bool aAllowIfInheritsPrincipal) { diff --git a/caps/src/nsSystemPrincipal.cpp b/caps/src/nsSystemPrincipal.cpp index b5ae0421cb00..9fc9872b8114 100644 --- a/caps/src/nsSystemPrincipal.cpp +++ b/caps/src/nsSystemPrincipal.cpp @@ -84,6 +84,12 @@ nsSystemPrincipal::EqualsIgnoringDomain(nsIPrincipal *other, bool *result) return Equals(other, result); } +NS_IMETHODIMP +nsSystemPrincipal::EqualsConsideringDomain(nsIPrincipal *other, bool *result) +{ + return Equals(other, result); +} + NS_IMETHODIMP nsSystemPrincipal::Subsumes(nsIPrincipal *other, bool *result) { @@ -98,6 +104,13 @@ nsSystemPrincipal::SubsumesIgnoringDomain(nsIPrincipal *other, bool *result) return NS_OK; } +NS_IMETHODIMP +nsSystemPrincipal::SubsumesConsideringDomain(nsIPrincipal *other, bool *result) +{ + *result = true; + return NS_OK; +} + NS_IMETHODIMP nsSystemPrincipal::CheckMayLoad(nsIURI* uri, bool aReport, bool aAllowIfInheritsPrincipal) {