зеркало из https://github.com/mozilla/gecko-dev.git
Backed out 2 changesets (bug 1524938) for Browser-chrome failures in dom/indexedDB/test/browser_private_idb.js. CLOSED TREE
Backed out changeset 9fb30b90e90d (bug 1524938) Backed out changeset edd013998dc7 (bug 1524938)
This commit is contained in:
Родитель
78e6b94290
Коммит
b9e00de2f9
|
@ -8103,8 +8103,8 @@ nsContentUtils::StorageAccess nsContentUtils::StorageAllowedForWindow(
|
|||
// callee is able to deal with a null channel argument, and if passed null,
|
||||
// will only fail to notify the UI in case storage gets blocked.
|
||||
nsIChannel* channel = document->GetChannel();
|
||||
return InternalStorageAllowedCheck(principal, aWindow, nullptr, channel,
|
||||
*aRejectedReason);
|
||||
return InternalStorageAllowedForPrincipal(principal, aWindow, nullptr,
|
||||
channel, *aRejectedReason);
|
||||
}
|
||||
|
||||
// No document? Let's return a generic rejected reason.
|
||||
|
@ -8124,8 +8124,8 @@ nsContentUtils::StorageAccess nsContentUtils::StorageAllowedForDocument(
|
|||
nsIChannel* channel = aDoc->GetChannel();
|
||||
|
||||
uint32_t rejectedReason = 0;
|
||||
return InternalStorageAllowedCheck(principal, inner, nullptr, channel,
|
||||
rejectedReason);
|
||||
return InternalStorageAllowedForPrincipal(principal, inner, nullptr,
|
||||
channel, rejectedReason);
|
||||
}
|
||||
|
||||
return StorageAccess::eDeny;
|
||||
|
@ -8139,7 +8139,7 @@ nsContentUtils::StorageAccess nsContentUtils::StorageAllowedForNewWindow(
|
|||
// parent may be nullptr
|
||||
|
||||
uint32_t rejectedReason = 0;
|
||||
return InternalStorageAllowedCheck(aPrincipal, aParent, aURI, nullptr,
|
||||
return InternalStorageAllowedForPrincipal(aPrincipal, aParent, aURI, nullptr,
|
||||
rejectedReason);
|
||||
}
|
||||
|
||||
|
@ -8155,18 +8155,18 @@ nsContentUtils::StorageAccess nsContentUtils::StorageAllowedForChannel(
|
|||
NS_ENSURE_TRUE(principal, nsContentUtils::StorageAccess::eDeny);
|
||||
|
||||
uint32_t rejectedReason = 0;
|
||||
nsContentUtils::StorageAccess result = InternalStorageAllowedCheck(
|
||||
nsContentUtils::StorageAccess result = InternalStorageAllowedForPrincipal(
|
||||
principal, nullptr, nullptr, aChannel, rejectedReason);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
// static, public
|
||||
nsContentUtils::StorageAccess nsContentUtils::StorageAllowedForServiceWorker(
|
||||
nsContentUtils::StorageAccess nsContentUtils::StorageAllowedForPrincipal(
|
||||
nsIPrincipal* aPrincipal) {
|
||||
uint32_t rejectedReason = 0;
|
||||
return InternalStorageAllowedCheck(aPrincipal, nullptr, nullptr, nullptr,
|
||||
rejectedReason);
|
||||
return InternalStorageAllowedForPrincipal(aPrincipal, nullptr, nullptr,
|
||||
nullptr, rejectedReason);
|
||||
}
|
||||
|
||||
// static, private
|
||||
|
@ -8356,9 +8356,12 @@ bool nsContentUtils::StorageDisabledByAntiTracking(nsPIDOMWindowInner* aWindow,
|
|||
}
|
||||
|
||||
// static, private
|
||||
nsContentUtils::StorageAccess nsContentUtils::InternalStorageAllowedCheck(
|
||||
nsIPrincipal* aPrincipal, nsPIDOMWindowInner* aWindow, nsIURI* aURI,
|
||||
nsIChannel* aChannel, uint32_t& aRejectedReason) {
|
||||
nsContentUtils::StorageAccess
|
||||
nsContentUtils::InternalStorageAllowedForPrincipal(nsIPrincipal* aPrincipal,
|
||||
nsPIDOMWindowInner* aWindow,
|
||||
nsIURI* aURI,
|
||||
nsIChannel* aChannel,
|
||||
uint32_t& aRejectedReason) {
|
||||
MOZ_ASSERT(aPrincipal);
|
||||
|
||||
aRejectedReason = 0;
|
||||
|
@ -8410,7 +8413,7 @@ nsContentUtils::StorageAccess nsContentUtils::InternalStorageAllowedCheck(
|
|||
//
|
||||
// This is due to backwards-compatibility and the state of storage access
|
||||
// before the introducton of
|
||||
// nsContentUtils::InternalStorageAllowedCheck:
|
||||
// nsContentUtils::InternalStorageAllowedForPrincipal:
|
||||
//
|
||||
// BEFORE:
|
||||
// localStorage, caches: allowed in 3rd-party iframes always
|
||||
|
|
|
@ -2967,9 +2967,10 @@ class nsContentUtils {
|
|||
|
||||
/*
|
||||
* Checks if storage for the given principal is permitted by the user's
|
||||
* preferences. This method should be used only by ServiceWorker loading.
|
||||
* preferences. The caller is assumed to not be a third-party iframe.
|
||||
* (if that is possible, the caller should use StorageAllowedForWindow)
|
||||
*/
|
||||
static StorageAccess StorageAllowedForServiceWorker(nsIPrincipal* aPrincipal);
|
||||
static StorageAccess StorageAllowedForPrincipal(nsIPrincipal* aPrincipal);
|
||||
|
||||
/*
|
||||
* Returns true if this document should disable storages because of the
|
||||
|
@ -3355,7 +3356,7 @@ class nsContentUtils {
|
|||
* Gets the current cookie lifetime policy for a given principal by checking
|
||||
* with preferences and the permission manager.
|
||||
*
|
||||
* Used in the implementation of InternalStorageAllowedCheck.
|
||||
* Used in the implementation of InternalStorageAllowedForPrincipal.
|
||||
*/
|
||||
static void GetCookieLifetimePolicyForPrincipal(nsIPrincipal* aPrincipal,
|
||||
uint32_t* aLifetimePolicy);
|
||||
|
@ -3369,14 +3370,12 @@ class nsContentUtils {
|
|||
* allow a channel instead of the window reference when determining 3rd party
|
||||
* status.
|
||||
*
|
||||
* Used in the implementation of StorageAllowedForWindow,
|
||||
* StorageAllowedForChannel and StorageAllowedForServiceWorker.
|
||||
* Used in the implementation of StorageAllowedForWindow and
|
||||
* StorageAllowedForPrincipal.
|
||||
*/
|
||||
static StorageAccess InternalStorageAllowedCheck(nsIPrincipal* aPrincipal,
|
||||
nsPIDOMWindowInner* aWindow,
|
||||
nsIURI* aURI,
|
||||
nsIChannel* aChannel,
|
||||
uint32_t& aRejectedReason);
|
||||
static StorageAccess InternalStorageAllowedForPrincipal(
|
||||
nsIPrincipal* aPrincipal, nsPIDOMWindowInner* aWindow, nsIURI* aURI,
|
||||
nsIChannel* aChannel, uint32_t& aRejectedReason);
|
||||
|
||||
static nsINode* GetCommonAncestorHelper(nsINode* aNode1, nsINode* aNode2);
|
||||
static nsIContent* GetCommonFlattenedTreeAncestorHelper(
|
||||
|
|
|
@ -1723,7 +1723,7 @@ nsresult ServiceWorkerPrivate::SpawnWorkerIfNeeded(WakeUpReason aWhy,
|
|||
info.mLoadingPrincipal = info.mPrincipal;
|
||||
|
||||
nsContentUtils::StorageAccess access =
|
||||
nsContentUtils::StorageAllowedForServiceWorker(info.mPrincipal);
|
||||
nsContentUtils::StorageAllowedForPrincipal(info.mPrincipal);
|
||||
info.mStorageAllowed =
|
||||
access > nsContentUtils::StorageAccess::ePrivateBrowsing;
|
||||
info.mOriginAttributes = mInfo->GetOriginAttributes();
|
||||
|
|
|
@ -266,7 +266,11 @@ nsresult RemoteWorkerChild::ExecWorkerOnMainThread(
|
|||
info.mDomain = aData.domain();
|
||||
info.mPrincipal = principal;
|
||||
info.mLoadingPrincipal = loadingPrincipal;
|
||||
info.mStorageAllowed = aData.isStorageAccessAllowed();
|
||||
|
||||
nsContentUtils::StorageAccess access =
|
||||
nsContentUtils::StorageAllowedForPrincipal(info.mPrincipal);
|
||||
info.mStorageAllowed =
|
||||
access > nsContentUtils::StorageAccess::ePrivateBrowsing;
|
||||
info.mOriginAttributes =
|
||||
BasePrincipal::Cast(principal)->OriginAttributesRef();
|
||||
|
||||
|
|
|
@ -43,8 +43,6 @@ struct RemoteWorkerData
|
|||
|
||||
OptionalIPCClientInfo clientInfo;
|
||||
|
||||
bool isStorageAccessAllowed;
|
||||
|
||||
bool isSharedWorker;
|
||||
};
|
||||
|
||||
|
|
|
@ -206,15 +206,11 @@ already_AddRefed<SharedWorker> SharedWorker::Constructor(
|
|||
ipcClientInfo = void_t();
|
||||
}
|
||||
|
||||
bool storageAccessAllowed =
|
||||
storageAllowed > nsContentUtils::StorageAccess::ePrivateBrowsing;
|
||||
|
||||
RemoteWorkerData remoteWorkerData(
|
||||
nsString(aScriptURL), baseURL, resolvedScriptURL, name,
|
||||
loadingPrincipalInfo, loadingPrincipalCSP, loadingPrincipalPreloadCSP,
|
||||
principalInfo, principalCSP, principalPreloadCSP, loadInfo.mDomain,
|
||||
isSecureContext, ipcClientInfo, storageAccessAllowed,
|
||||
true /* sharedWorker */);
|
||||
isSecureContext, ipcClientInfo, true /* sharedWorker */);
|
||||
|
||||
PSharedWorkerChild* pActor = actorChild->SendPSharedWorkerConstructor(
|
||||
remoteWorkerData, loadInfo.mWindowID, portIdentifier);
|
||||
|
|
Загрузка…
Ссылка в новой задаче