Bug 1688948 - Only allow BrowsingContext's TouchEventsOverrideInternal to be set from the parent process; r=nika

devtool only set it in parent process after bug 1704733.

Differential Revision: https://phabricator.services.mozilla.com/D116374
This commit is contained in:
Edgar Chen 2021-05-31 16:53:55 +00:00
Родитель c6fc95b9fd
Коммит 9cef21c685
5 изменённых файлов: 15 добавлений и 15 удалений

Просмотреть файл

@ -2613,9 +2613,8 @@ bool BrowsingContext::InactiveForSuspend() const {
}
bool BrowsingContext::CanSet(FieldIndex<IDX_TouchEventsOverrideInternal>,
dom::TouchEventsOverride, ContentParent*) {
// TODO: Bug 1688948 - Should only be set in the parent process.
return true;
dom::TouchEventsOverride, ContentParent* aSource) {
return XRE_IsParentProcess() && !aSource;
}
void BrowsingContext::DidSet(FieldIndex<IDX_PrefersColorSchemeOverride>,
@ -2873,11 +2872,6 @@ mozilla::dom::TouchEventsOverride BrowsingContext::TouchEventsOverride() const {
return mozilla::dom::TouchEventsOverride::None;
}
void BrowsingContext::SetTouchEventsOverride(dom::TouchEventsOverride aOverride,
ErrorResult& aRv) {
SetTouchEventsOverrideInternal(aOverride, aRv);
}
// We map `watchedByDevTools` WebIDL attribute to `watchedByDevToolsInternal`
// BC field. And we map it to the top level BrowsingContext.
bool BrowsingContext::WatchedByDevTools() {

Просмотреть файл

@ -525,7 +525,6 @@ class BrowsingContext : public nsILoadContext, public nsWrapperCache {
void SetWatchedByDevTools(bool aWatchedByDevTools, ErrorResult& aRv);
dom::TouchEventsOverride TouchEventsOverride() const;
void SetTouchEventsOverride(dom::TouchEventsOverride, ErrorResult& aRv);
bool FullscreenAllowed() const;

Просмотреть файл

@ -2351,6 +2351,11 @@ bool CanonicalBrowsingContext::AllowedInBFCache(
return bfcacheCombo == 0;
}
void CanonicalBrowsingContext::SetTouchEventsOverride(
dom::TouchEventsOverride aOverride, ErrorResult& aRv) {
SetTouchEventsOverrideInternal(aOverride, aRv);
}
NS_IMPL_CYCLE_COLLECTION_INHERITED(CanonicalBrowsingContext, BrowsingContext,
mSessionHistory, mContainerFeaturePolicy,
mCurrentBrowserParent,

Просмотреть файл

@ -322,6 +322,8 @@ class CanonicalBrowsingContext final : public BrowsingContext {
mPriorityActive = aIsActive;
}
void SetTouchEventsOverride(dom::TouchEventsOverride, ErrorResult& aRv);
protected:
// Called when the browsing context is being discarded.
void CanonicalDiscard();

Просмотреть файл

@ -187,12 +187,6 @@ interface BrowsingContext {
[SetterThrows] attribute DisplayMode displayMode;
/**
* This allows chrome to override the default choice of whether touch events
* are available in a specific BrowsingContext and its descendents.
*/
[SetterThrows] attribute TouchEventsOverride touchEventsOverride;
/**
* The nsID of the browsing context in the session history.
*/
@ -289,6 +283,12 @@ interface CanonicalBrowsingContext : BrowsingContext {
readonly attribute URI? currentURI;
void clearRestoreState();
/**
* This allows chrome to override the default choice of whether touch events
* are available in a specific BrowsingContext and its descendents.
*/
[SetterThrows] attribute TouchEventsOverride touchEventsOverride;
};
[Exposed=Window, ChromeOnly]