зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1731557 - Part 1: Using an enum to represent storage permission in the loadInfo. r=pbz,necko-reviewers,dragana
To differentiate the storage permission is granted by either the permission or the allowList, we need to change the hasStoragePermission to an enum to represent the storage permission state. This patch also changes the name of the attribute to make it reasonable with respect to this change. Differential Revision: https://phabricator.services.mozilla.com/D126276
This commit is contained in:
Родитель
3517e4a3ea
Коммит
93a518fe4f
|
@ -526,7 +526,7 @@ nsresult LoadInfoToLoadInfoArgs(nsILoadInfo* aLoadInfo,
|
|||
aLoadInfo->GetIsMediaRequest(), aLoadInfo->GetIsMediaInitialRequest(),
|
||||
aLoadInfo->GetIsFromObjectOrEmbed(), cookieJarSettingsArgs,
|
||||
aLoadInfo->GetRequestBlockingReason(), maybeCspToInheritInfo,
|
||||
aLoadInfo->GetHasStoragePermission(), aLoadInfo->GetIsMetaRefresh(),
|
||||
aLoadInfo->GetStoragePermission(), aLoadInfo->GetIsMetaRefresh(),
|
||||
aLoadInfo->GetLoadingEmbedderPolicy(), unstrippedURI));
|
||||
|
||||
return NS_OK;
|
||||
|
@ -762,7 +762,7 @@ nsresult LoadInfoArgsToLoadInfo(
|
|||
loadInfoArgs.hasValidUserGestureActivation(),
|
||||
loadInfoArgs.allowDeprecatedSystemRequests(),
|
||||
loadInfoArgs.isInDevToolsContext(), loadInfoArgs.parserCreatedScript(),
|
||||
loadInfoArgs.hasStoragePermission(), loadInfoArgs.isMetaRefresh(),
|
||||
loadInfoArgs.storagePermission(), loadInfoArgs.isMetaRefresh(),
|
||||
loadInfoArgs.requestBlockingReason(), loadingContext,
|
||||
loadInfoArgs.loadingEmbedderPolicy(), loadInfoArgs.unstrippedURI());
|
||||
|
||||
|
@ -824,7 +824,7 @@ void LoadInfoToParentLoadInfoForwarder(
|
|||
aLoadInfo->GetDocumentHasUserInteracted(),
|
||||
aLoadInfo->GetAllowListFutureDocumentsCreatedFromThisRedirectChain(),
|
||||
cookieJarSettingsArgs, aLoadInfo->GetRequestBlockingReason(),
|
||||
aLoadInfo->GetHasStoragePermission(), aLoadInfo->GetIsMetaRefresh(),
|
||||
aLoadInfo->GetStoragePermission(), aLoadInfo->GetIsMetaRefresh(),
|
||||
aLoadInfo->GetIsThirdPartyContextToTopWindow(),
|
||||
aLoadInfo->GetIsInThirdPartyContext(), unstrippedURI);
|
||||
}
|
||||
|
@ -895,8 +895,7 @@ nsresult MergeParentLoadInfoForwarder(
|
|||
}
|
||||
}
|
||||
|
||||
rv =
|
||||
aLoadInfo->SetHasStoragePermission(aForwarderArgs.hasStoragePermission());
|
||||
rv = aLoadInfo->SetStoragePermission(aForwarderArgs.storagePermission());
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
rv = aLoadInfo->SetIsMetaRefresh(aForwarderArgs.isMetaRefresh());
|
||||
|
|
|
@ -581,7 +581,7 @@ LoadInfo::LoadInfo(const LoadInfo& rhs)
|
|||
mAllowDeprecatedSystemRequests(rhs.mAllowDeprecatedSystemRequests),
|
||||
mIsInDevToolsContext(rhs.mIsInDevToolsContext),
|
||||
mParserCreatedScript(rhs.mParserCreatedScript),
|
||||
mHasStoragePermission(rhs.mHasStoragePermission),
|
||||
mStoragePermission(rhs.mStoragePermission),
|
||||
mIsMetaRefresh(rhs.mIsMetaRefresh),
|
||||
mIsFromProcessingFrameAttributes(rhs.mIsFromProcessingFrameAttributes),
|
||||
mIsMediaRequest(rhs.mIsMediaRequest),
|
||||
|
@ -624,7 +624,7 @@ LoadInfo::LoadInfo(
|
|||
bool aSkipContentSniffing, uint32_t aHttpsOnlyStatus,
|
||||
bool aHasValidUserGestureActivation, bool aAllowDeprecatedSystemRequests,
|
||||
bool aIsInDevToolsContext, bool aParserCreatedScript,
|
||||
bool aHasStoragePermission, bool aIsMetaRefresh,
|
||||
nsILoadInfo::StoragePermissionState aStoragePermission, bool aIsMetaRefresh,
|
||||
uint32_t aRequestBlockingReason, nsINode* aLoadingContext,
|
||||
nsILoadInfo::CrossOriginEmbedderPolicy aLoadingEmbedderPolicy,
|
||||
nsIURI* aUnstrippedURI)
|
||||
|
@ -690,7 +690,7 @@ LoadInfo::LoadInfo(
|
|||
mAllowDeprecatedSystemRequests(aAllowDeprecatedSystemRequests),
|
||||
mIsInDevToolsContext(aIsInDevToolsContext),
|
||||
mParserCreatedScript(aParserCreatedScript),
|
||||
mHasStoragePermission(aHasStoragePermission),
|
||||
mStoragePermission(aStoragePermission),
|
||||
mIsMetaRefresh(aIsMetaRefresh),
|
||||
|
||||
mLoadingEmbedderPolicy(aLoadingEmbedderPolicy),
|
||||
|
@ -999,14 +999,16 @@ LoadInfo::SetCookieJarSettings(nsICookieJarSettings* aCookieJarSettings) {
|
|||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
LoadInfo::GetHasStoragePermission(bool* aHasStoragePermission) {
|
||||
*aHasStoragePermission = mHasStoragePermission;
|
||||
LoadInfo::GetStoragePermission(
|
||||
nsILoadInfo::StoragePermissionState* aStoragePermission) {
|
||||
*aStoragePermission = mStoragePermission;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
LoadInfo::SetHasStoragePermission(bool aHasStoragePermission) {
|
||||
mHasStoragePermission = aHasStoragePermission;
|
||||
LoadInfo::SetStoragePermission(
|
||||
nsILoadInfo::StoragePermissionState aStoragePermission) {
|
||||
mStoragePermission = aStoragePermission;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
|
|
@ -218,8 +218,9 @@ class LoadInfo final : public nsILoadInfo {
|
|||
bool aSkipContentSniffing, uint32_t aHttpsOnlyStatus,
|
||||
bool aHasValidUserGestureActivation, bool aAllowDeprecatedSystemRequests,
|
||||
bool aIsInDevToolsContext, bool aParserCreatedScript,
|
||||
bool aHasStoragePermission, bool aIsMetaRefresh,
|
||||
uint32_t aRequestBlockingReason, nsINode* aLoadingContext,
|
||||
nsILoadInfo::StoragePermissionState aStoragePermission,
|
||||
bool aIsMetaRefresh, uint32_t aRequestBlockingReason,
|
||||
nsINode* aLoadingContext,
|
||||
nsILoadInfo::CrossOriginEmbedderPolicy aLoadingEmbedderPolicy,
|
||||
nsIURI* aUnstrippedURI);
|
||||
LoadInfo(const LoadInfo& rhs);
|
||||
|
@ -320,7 +321,8 @@ class LoadInfo final : public nsILoadInfo {
|
|||
bool mAllowDeprecatedSystemRequests = false;
|
||||
bool mIsInDevToolsContext = false;
|
||||
bool mParserCreatedScript = false;
|
||||
bool mHasStoragePermission = false;
|
||||
nsILoadInfo::StoragePermissionState mStoragePermission =
|
||||
nsILoadInfo::NoStoragePermission;
|
||||
bool mIsMetaRefresh = false;
|
||||
|
||||
// Is true if this load was triggered by processing the attributes of the
|
||||
|
|
|
@ -147,12 +147,14 @@ TRRLoadInfo::SetCookieJarSettings(nsICookieJarSettings* aCookieJarSettings) {
|
|||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
TRRLoadInfo::GetHasStoragePermission(bool* aHasStoragePermission) {
|
||||
TRRLoadInfo::GetStoragePermission(
|
||||
nsILoadInfo::StoragePermissionState* aHasStoragePermission) {
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
TRRLoadInfo::SetHasStoragePermission(bool aHasStoragePermission) {
|
||||
TRRLoadInfo::SetStoragePermission(
|
||||
nsILoadInfo::StoragePermissionState aHasStoragePermission) {
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
|
|
@ -541,11 +541,18 @@ interface nsILoadInfo : nsISupports
|
|||
*/
|
||||
attribute nsICookieJarSettings cookieJarSettings;
|
||||
|
||||
cenum StoragePermissionState : 8 {
|
||||
NoStoragePermission = 0,
|
||||
HasStoragePermission = 1,
|
||||
StoragePermissionAllowListed = 2,
|
||||
};
|
||||
|
||||
/**
|
||||
* True if the loading document has the storage permission. This value would
|
||||
* be set during opening the channel.
|
||||
* The result of the storage permission check of the loading document. This
|
||||
* value would be set during opening the channel.
|
||||
*/
|
||||
[infallible] attribute boolean hasStoragePermission;
|
||||
[infallible] attribute nsILoadInfo_StoragePermissionState
|
||||
storagePermission;
|
||||
|
||||
/**
|
||||
* True if the load was triggered by a meta refresh.
|
||||
|
|
|
@ -19,6 +19,7 @@ include ProtocolTypes;
|
|||
include "mozilla/dom/PropertyBagUtils.h";
|
||||
include "mozilla/dom/ReferrerInfoUtils.h";
|
||||
include "mozilla/ipc/URIUtils.h";
|
||||
include "mozilla/AntiTrackingIPCUtils.h";
|
||||
|
||||
using mozilla::OriginAttributes from "mozilla/ipc/BackgroundUtils.h";
|
||||
using RequestHeaderTuples from "mozilla/net/PHttpChannelParams.h";
|
||||
|
@ -29,6 +30,7 @@ using class mozilla::TimeStamp from "mozilla/TimeStamp.h";
|
|||
[RefCounted] using class nsDOMNavigationTiming from "nsDOMNavigationTiming.h";
|
||||
using nsContentPolicyType from "nsIContentPolicy.h";
|
||||
using nsILoadInfo::CrossOriginEmbedderPolicy from "nsILoadInfo.h";
|
||||
using nsILoadInfo::StoragePermissionState from "nsILoadInfo.h";
|
||||
using class mozilla::dom::LoadingSessionHistoryInfo from "mozilla/dom/SessionHistoryEntry.h";
|
||||
|
||||
namespace mozilla {
|
||||
|
@ -157,7 +159,7 @@ struct LoadInfoArgs
|
|||
CookieJarSettingsArgs cookieJarSettings;
|
||||
uint32_t requestBlockingReason;
|
||||
CSPInfo? cspToInheritInfo;
|
||||
bool hasStoragePermission;
|
||||
StoragePermissionState storagePermission;
|
||||
bool isMetaRefresh;
|
||||
CrossOriginEmbedderPolicy loadingEmbedderPolicy;
|
||||
nsIURI unstrippedURI;
|
||||
|
@ -223,7 +225,7 @@ struct ParentLoadInfoForwarderArgs
|
|||
|
||||
uint32_t requestBlockingReason;
|
||||
|
||||
bool hasStoragePermission;
|
||||
StoragePermissionState storagePermission;
|
||||
|
||||
bool isMetaRefresh;
|
||||
|
||||
|
|
|
@ -12,6 +12,8 @@
|
|||
#include "mozilla/ContentBlockingNotifier.h"
|
||||
#include "mozilla/ContentBlocking.h"
|
||||
|
||||
#include "nsILoadInfo.h"
|
||||
|
||||
namespace IPC {
|
||||
|
||||
// For allowing passing the enum
|
||||
|
@ -43,6 +45,14 @@ struct ParamTraits<mozilla::ContentBlocking::StorageAccessPromptChoices>
|
|||
mozilla::ContentBlocking::StorageAccessPromptChoices::eAllow,
|
||||
mozilla::ContentBlocking::StorageAccessPromptChoices::
|
||||
eAllowAutoGrant> {};
|
||||
|
||||
// nsILoadInfo::StoragePermissionState over IPC.
|
||||
template <>
|
||||
struct ParamTraits<nsILoadInfo::StoragePermissionState>
|
||||
: public ContiguousEnumSerializerInclusive<
|
||||
nsILoadInfo::StoragePermissionState,
|
||||
nsILoadInfo::StoragePermissionState::NoStoragePermission,
|
||||
nsILoadInfo::StoragePermissionState::StoragePermissionAllowListed> {};
|
||||
} // namespace IPC
|
||||
|
||||
#endif // mozilla_antitrackingipcutils_h
|
||||
|
|
Загрузка…
Ссылка в новой задаче