Bug 1612147 - Don't store FeaturePolicy in BrowsingContext. r=smaug
Syncing the container FeaturePolicy across BrowsingContext is actually a bit more heavy-handed than necessary. We only ever need a container FeaturePolicy when inheriting a FeaturePolicy in exactly the document the container contains. Not every process that the tree the container is a part of. So instead of storing a FeaturePolicy in a synced field, we manually send it to the correct WindowGlobalChild (which corresponds to a document) and retrieve it from there. Differential Revision: https://phabricator.services.mozilla.com/D61479
This commit is contained in:
@@ -1663,6 +1663,15 @@ void CanonicalBrowsingContext::ResetScalingZoom() {
|
||||
}
|
||||
}
|
||||
|
||||
void CanonicalBrowsingContext::SetContainerFeaturePolicy(
|
||||
FeaturePolicy* aContainerFeaturePolicy) {
|
||||
mContainerFeaturePolicy = aContainerFeaturePolicy;
|
||||
|
||||
if (WindowGlobalParent* current = GetCurrentWindowGlobal()) {
|
||||
Unused << current->SendSetContainerFeaturePolicy(mContainerFeaturePolicy);
|
||||
}
|
||||
}
|
||||
|
||||
void CanonicalBrowsingContext::SetCrossGroupOpenerId(uint64_t aOpenerId) {
|
||||
MOZ_DIAGNOSTIC_ASSERT(IsTopContent());
|
||||
MOZ_DIAGNOSTIC_ASSERT(mCrossGroupOpenerId == 0,
|
||||
@@ -1671,7 +1680,7 @@ void CanonicalBrowsingContext::SetCrossGroupOpenerId(uint64_t aOpenerId) {
|
||||
}
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_INHERITED(CanonicalBrowsingContext, BrowsingContext,
|
||||
mSessionHistory)
|
||||
mSessionHistory, mContainerFeaturePolicy)
|
||||
|
||||
NS_IMPL_ADDREF_INHERITED(CanonicalBrowsingContext, BrowsingContext)
|
||||
NS_IMPL_RELEASE_INHERITED(CanonicalBrowsingContext, BrowsingContext)
|
||||
|
||||
Reference in New Issue
Block a user