From 58f3cc8643bb45f4175983cfdb08fe73e2a24d43 Mon Sep 17 00:00:00 2001 From: Yoshi Huang Date: Thu, 8 Sep 2016 18:56:31 +0800 Subject: [PATCH] Bug 1301274 - use default firstPartyDomain in PermissionManager. r=baku --- extensions/cookie/nsPermissionManager.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/extensions/cookie/nsPermissionManager.cpp b/extensions/cookie/nsPermissionManager.cpp index 49962e7a6071..78f516e65de1 100644 --- a/extensions/cookie/nsPermissionManager.cpp +++ b/extensions/cookie/nsPermissionManager.cpp @@ -122,9 +122,14 @@ GetOriginFromPrincipal(nsIPrincipal* aPrincipal, nsACString& aOrigin) // any knowledge of private browsing. Allowing it to be true changes the suffix being hashed. attrs.mPrivateBrowsingId = 0; + // TODO: Bug 1302047 - Ignore userContextId and firstPartyDomain when matching permissions. + // set to default to disable user context isolation for permissions attrs.mUserContextId = nsIScriptSecurityManager::DEFAULT_USER_CONTEXT_ID; + // set to default to disable firstParty isolation for permissions. + attrs.mFirstPartyDomain.Truncate(); + attrs.CreateSuffix(suffix); aOrigin.Append(suffix); return NS_OK; @@ -139,9 +144,14 @@ GetPrincipalFromOrigin(const nsACString& aOrigin, nsIPrincipal** aPrincipal) return NS_ERROR_FAILURE; } + // TODO: Bug 1302047 - Ignore userContextId and firstPartyDomain when matching permissions. + // set to default to disable user context isolation for permissions attrs.mUserContextId = nsIScriptSecurityManager::DEFAULT_USER_CONTEXT_ID; + // set to default to disable firstParty isolation for permissions. + attrs.mFirstPartyDomain.Truncate(); + nsCOMPtr uri; nsresult rv = NS_NewURI(getter_AddRefs(uri), originNoSuffix); NS_ENSURE_SUCCESS(rv, rv); @@ -151,11 +161,9 @@ GetPrincipalFromOrigin(const nsACString& aOrigin, nsIPrincipal** aPrincipal) return NS_OK; } - nsresult GetPrincipal(nsIURI* aURI, uint32_t aAppId, bool aIsInIsolatedMozBrowserElement, nsIPrincipal** aPrincipal) { - // TODO: Bug 1165267 - Use OriginAttributes for nsCookieService mozilla::PrincipalOriginAttributes attrs(aAppId, aIsInIsolatedMozBrowserElement); nsCOMPtr principal = mozilla::BasePrincipal::CreateCodebasePrincipal(aURI, attrs); NS_ENSURE_TRUE(principal, NS_ERROR_FAILURE); @@ -2200,9 +2208,14 @@ nsPermissionManager::GetPermissionHashKey(nsIPrincipal* aPrincipal, mozilla::PrincipalOriginAttributes attrs = mozilla::BasePrincipal::Cast(aPrincipal)->OriginAttributesRef(); + // TODO: Bug 1302047 - Ignore userContextId and firstPartyDomain when matching permissions. + // ensure that the user context isolation is disabled attrs.mUserContextId = nsIScriptSecurityManager::DEFAULT_USER_CONTEXT_ID; + // ensure firstPartyIsolation is disabled. + attrs.mFirstPartyDomain.Truncate(); + nsCOMPtr principal = mozilla::BasePrincipal::CreateCodebasePrincipal(newURI, attrs);