diff --git a/additions/juggler/TargetRegistry.js b/additions/juggler/TargetRegistry.js index 4a73580..77277ad 100644 --- a/additions/juggler/TargetRegistry.js +++ b/additions/juggler/TargetRegistry.js @@ -394,6 +394,7 @@ class PageTarget { height: ChromeUtils.camouGetInt("window.innerHeight") || 720, }; } + this._zoom = 1; this._initialDPPX = this._linkedBrowser.browsingContext.overrideDPPX; this._url = 'about:blank'; this._openerId = opener ? opener.id() : undefined; @@ -506,6 +507,7 @@ class PageTarget { this.updateUserAgent(browsingContext); this.updatePlatform(browsingContext); this.updateDPPXOverride(browsingContext); + this.updateZoom(browsingContext); this.updateEmulatedMedia(browsingContext); this.updateColorSchemeOverride(browsingContext); this.updateReducedMotionOverride(browsingContext); @@ -544,7 +546,16 @@ class PageTarget { } updateDPPXOverride(browsingContext = undefined) { - (browsingContext || this._linkedBrowser.browsingContext).overrideDPPX = this._browserContext.deviceScaleFactor || this._initialDPPX; + browsingContext ||= this._linkedBrowser.browsingContext; + const dppx = this._zoom * (this._browserContext.deviceScaleFactor || this._initialDPPX); + browsingContext.overrideDPPX = dppx; + } + + async updateZoom(browsingContext = undefined) { + browsingContext ||= this._linkedBrowser.browsingContext; + // Update dpr first, and then UI zoom. + this.updateDPPXOverride(browsingContext); + browsingContext.fullZoom = this._zoom; } _updateModalDialogs() { @@ -606,7 +617,7 @@ class PageTarget { const toolbarTop = stackRect.y; this._window.resizeBy(width - this._window.innerWidth, height + toolbarTop - this._window.innerHeight); - await this._channel.connect('').send('awaitViewportDimensions', { width, height }); + await this._channel.connect('').send('awaitViewportDimensions', { width: width / this._zoom, height: height / this._zoom }); } else { this._linkedBrowser.style.removeProperty('width'); this._linkedBrowser.style.removeProperty('height'); @@ -618,8 +629,8 @@ class PageTarget { const actualSize = this._linkedBrowser.getBoundingClientRect(); await this._channel.connect('').send('awaitViewportDimensions', { - width: actualSize.width, - height: actualSize.height, + width: actualSize.width / this._zoom, + height: actualSize.height / this._zoom, }); } } @@ -671,6 +682,14 @@ class PageTarget { this._viewportSize = viewportSize; await this.updateViewportSize(); } + + async setZoom(zoom) { + // This is default range from the ZoomManager. + if (zoom < 0.3 || zoom > 5) + throw new Error('Invalid zoom value, must be between 0.3 and 5'); + this._zoom = zoom; + await this.updateZoom(); + } close(runBeforeUnload = false) { this._gBrowser.removeTab(this._tab, { diff --git a/additions/juggler/protocol/PageHandler.js b/additions/juggler/protocol/PageHandler.js index 213ede0..6a2fac9 100644 --- a/additions/juggler/protocol/PageHandler.js +++ b/additions/juggler/protocol/PageHandler.js @@ -250,6 +250,10 @@ class PageHandler { await this._pageTarget.setViewportSize(viewportSize === null ? undefined : viewportSize); } + async ['Page.setZoom']({zoom}) { + await this._pageTarget.setZoom(zoom); + } + async ['Runtime.evaluate'](options) { return await this._contentPage.send('evaluate', options); } diff --git a/additions/juggler/protocol/Protocol.js b/additions/juggler/protocol/Protocol.js index 2b93186..6fa3dc8 100644 --- a/additions/juggler/protocol/Protocol.js +++ b/additions/juggler/protocol/Protocol.js @@ -794,6 +794,11 @@ const Page = { viewportSize: t.Nullable(pageTypes.Size), }, }, + 'setZoom': { + params: { + zoom: t.Number, + }, + }, 'bringToFront': { params: { }, diff --git a/additions/juggler/screencast/nsScreencastService.cpp b/additions/juggler/screencast/nsScreencastService.cpp index 062a851..f33294b 100644 --- a/additions/juggler/screencast/nsScreencastService.cpp +++ b/additions/juggler/screencast/nsScreencastService.cpp @@ -343,10 +343,17 @@ nsresult nsScreencastService::StartVideoRecording(nsIScreencastServiceClient* aC return NS_ERROR_FAILURE; gfx::IntMargin margin; - auto bounds = widget->GetScreenBounds().ToUnknownRect(); + // Screen bounds is the widget location on screen. + auto screenBounds = widget->GetScreenBounds().ToUnknownRect(); + // Client bounds is the content location, in terms of parent widget. + // To use it, we need to translate it to screen coordinates first. auto clientBounds = widget->GetClientBounds().ToUnknownRect(); + for (auto parent = widget->GetParent(); parent != nullptr; parent = parent->GetParent()) { + auto pb = parent->GetClientBounds().ToUnknownRect(); + clientBounds.MoveBy(pb.X(), pb.Y()); + } // Crop the image to exclude frame (if any). - margin = bounds - clientBounds; + margin = screenBounds - clientBounds; // Crop the image to exclude controls. margin.top += offsetTop; @@ -391,4 +398,4 @@ nsresult nsScreencastService::ScreencastFrameAck(const nsAString& aSessionId) { return NS_OK; } -} // namespace mozilla +} // namespace mozilla \ No newline at end of file diff --git a/patches/playwright/0-playwright.patch b/patches/playwright/0-playwright.patch index 4fe4110..9fecd89 100644 --- a/patches/playwright/0-playwright.patch +++ b/patches/playwright/0-playwright.patch @@ -1,5 +1,5 @@ diff --git a/accessible/base/NotificationController.h b/accessible/base/NotificationController.h -index 137963f117..41fa27bc4a 100644 +index 137963f1170927ae0262e0dc26ef721d496376f4..41fa27bc4a3da41814a7f326792990df3424e81f 100644 --- a/accessible/base/NotificationController.h +++ b/accessible/base/NotificationController.h @@ -244,6 +244,8 @@ class NotificationController final : public EventQueue, @@ -12,7 +12,7 @@ index 137963f117..41fa27bc4a 100644 virtual ~NotificationController(); diff --git a/accessible/interfaces/nsIAccessibleDocument.idl b/accessible/interfaces/nsIAccessibleDocument.idl -index 1886621c37..a0febf7288 100644 +index 1886621c373fe1fd5ff54092afc4c64e9ca9a8fd..a0febf72885410b45227171c63e823eca118cb37 100644 --- a/accessible/interfaces/nsIAccessibleDocument.idl +++ b/accessible/interfaces/nsIAccessibleDocument.idl @@ -67,4 +67,9 @@ interface nsIAccessibleDocument : nsISupports @@ -26,7 +26,7 @@ index 1886621c37..a0febf7288 100644 + readonly attribute boolean isUpdatePendingForJugglerAccessibility; }; diff --git a/accessible/xpcom/xpcAccessibleDocument.cpp b/accessible/xpcom/xpcAccessibleDocument.cpp -index d616e476b2..7a8a48d5e7 100644 +index d616e476b2149de5703077563680905e40db0459..7a8a48d5e7303a298a3e2e9fdf64558b3cdbe654 100644 --- a/accessible/xpcom/xpcAccessibleDocument.cpp +++ b/accessible/xpcom/xpcAccessibleDocument.cpp @@ -131,6 +131,13 @@ xpcAccessibleDocument::GetChildDocumentAt(uint32_t aIndex, @@ -44,7 +44,7 @@ index d616e476b2..7a8a48d5e7 100644 // xpcAccessibleDocument diff --git a/accessible/xpcom/xpcAccessibleDocument.h b/accessible/xpcom/xpcAccessibleDocument.h -index 8e9bf2b413..5a3b194b54 100644 +index 8e9bf2b413585b5a3db9370eee5d57fb6c6716ed..5a3b194b54e3813c89989f13a214c989a409f0f6 100644 --- a/accessible/xpcom/xpcAccessibleDocument.h +++ b/accessible/xpcom/xpcAccessibleDocument.h @@ -47,6 +47,8 @@ class xpcAccessibleDocument : public xpcAccessibleHyperText, @@ -57,7 +57,7 @@ index 8e9bf2b413..5a3b194b54 100644 * Return XPCOM wrapper for the internal accessible. */ diff --git a/browser/app/winlauncher/LauncherProcessWin.cpp b/browser/app/winlauncher/LauncherProcessWin.cpp -index 8167d2b81c..3ae798880a 100644 +index 8167d2b81c918e02ce757f7f448f22e07c29d140..3ae798880acfd8aa965ae08051f2f81855133711 100644 --- a/browser/app/winlauncher/LauncherProcessWin.cpp +++ b/browser/app/winlauncher/LauncherProcessWin.cpp @@ -23,6 +23,7 @@ @@ -89,7 +89,7 @@ index 8167d2b81c..3ae798880a 100644 DWORD creationFlags = CREATE_SUSPENDED | CREATE_UNICODE_ENVIRONMENT; diff --git a/browser/installer/allowed-dupes.mn b/browser/installer/allowed-dupes.mn -index 213a99ed43..ee4f6484cd 100644 +index 213a99ed433d5219c2b9a64baad82d14cdbcd432..ee4f6484cdfe80899c28a1d9607494e520bfc93d 100644 --- a/browser/installer/allowed-dupes.mn +++ b/browser/installer/allowed-dupes.mn @@ -67,6 +67,12 @@ browser/features/webcompat@mozilla.org/shims/empty-shim.txt @@ -106,7 +106,7 @@ index 213a99ed43..ee4f6484cd 100644 browser/chrome/browser/content/activity-stream/data/content/tippytop/favicons/allegro-pl.ico browser/defaults/settings/main/search-config-icons/96327a73-c433-5eb4-a16d-b090cadfb80b diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in -index 861ba1c484..5b0082ad32 100644 +index 90c2e7a69076df56392f6d14aacadada7f413e89..9ed24d7d690eca04ef07e9715444227ecf32a008 100644 --- a/browser/installer/package-manifest.in +++ b/browser/installer/package-manifest.in @@ -196,6 +196,9 @@ @@ -120,7 +120,7 @@ index 861ba1c484..5b0082ad32 100644 @RESPATH@/components/extensions-toolkit.manifest @RESPATH@/browser/components/extensions-browser.manifest diff --git a/devtools/server/socket/websocket-server.js b/devtools/server/socket/websocket-server.js -index d49c6fbf1b..7ea3540947 100644 +index d49c6fbf1bf83b832795fa674f6b41f223eef812..7ea3540947ff5f61b15f27fbf4b955649f8e9ff9 100644 --- a/devtools/server/socket/websocket-server.js +++ b/devtools/server/socket/websocket-server.js @@ -134,13 +134,12 @@ function writeHttpResponse(output, response) { @@ -167,7 +167,7 @@ index d49c6fbf1b..7ea3540947 100644 const transportProvider = { setListener(upgradeListener) { diff --git a/docshell/base/BrowsingContext.cpp b/docshell/base/BrowsingContext.cpp -index b30dab9ecd..534a89916e 100644 +index b30dab9ecdee37d7db842acaad30ded30fc326b2..534a89916e34f3d4d960dfcf660c38e2d1000e0c 100644 --- a/docshell/base/BrowsingContext.cpp +++ b/docshell/base/BrowsingContext.cpp @@ -106,8 +106,11 @@ struct ParamTraits @@ -209,7 +209,7 @@ index b30dab9ecd..534a89916e 100644 nsString&& aOldValue) { MOZ_ASSERT(IsTop()); diff --git a/docshell/base/BrowsingContext.h b/docshell/base/BrowsingContext.h -index e0310bbed0..19fe77791b 100644 +index e0310bbed02a805a247e04bdc88ae142bcbe5637..19fe77791b055f7f907a0ab00b03e100a0aac1e8 100644 --- a/docshell/base/BrowsingContext.h +++ b/docshell/base/BrowsingContext.h @@ -203,10 +203,10 @@ struct EmbedderColorSchemes { @@ -262,7 +262,7 @@ index e0310bbed0..19fe77791b 100644 bool CanSet(FieldIndex, bool, ContentParent*) { diff --git a/docshell/base/CanonicalBrowsingContext.cpp b/docshell/base/CanonicalBrowsingContext.cpp -index e73d56380f..2ce283bcc4 100644 +index e73d56380ff6802103896bd63d2e11c26c8ee3f5..2ce283bcc4e6690a26a6483b6b50b24093797e45 100644 --- a/docshell/base/CanonicalBrowsingContext.cpp +++ b/docshell/base/CanonicalBrowsingContext.cpp @@ -323,6 +323,8 @@ void CanonicalBrowsingContext::ReplacedBy( @@ -288,7 +288,7 @@ index e73d56380f..2ce283bcc4 100644 } diff --git a/docshell/base/nsDocShell.cpp b/docshell/base/nsDocShell.cpp -index 4851148d88..9f4e3fd0cd 100644 +index 4851148d889bdfc12a4b9a463c05d3fb9f1f593f..9f4e3fd0cdfc66b49b1650a05f4b296603846d84 100644 --- a/docshell/base/nsDocShell.cpp +++ b/docshell/base/nsDocShell.cpp @@ -15,6 +15,12 @@ @@ -635,7 +635,7 @@ index 4851148d88..9f4e3fd0cd 100644 } diff --git a/docshell/base/nsDocShell.h b/docshell/base/nsDocShell.h -index 888741f849..0958824d57 100644 +index 888741f8490d6f0e885ed0ce73115c16e7bbe821..0958824d57a082fecae6dde1eb568f457c42f443 100644 --- a/docshell/base/nsDocShell.h +++ b/docshell/base/nsDocShell.h @@ -15,6 +15,7 @@ @@ -697,7 +697,7 @@ index 888741f849..0958824d57 100644 bool mAllowKeywordFixup : 1; bool mDisableMetaRefreshWhenInactive : 1; diff --git a/docshell/base/nsIDocShell.idl b/docshell/base/nsIDocShell.idl -index 84e821e33e..397742551b 100644 +index 84e821e33e8164829dfee4f05340784e189b90ee..397742551b98d0d9e6fcf94f55efda5ea628b9ac 100644 --- a/docshell/base/nsIDocShell.idl +++ b/docshell/base/nsIDocShell.idl @@ -44,6 +44,7 @@ interface nsIURI; @@ -746,7 +746,7 @@ index 84e821e33e..397742551b 100644 * This attempts to save any applicable layout history state (like * scroll position) in the nsISHEntry. This is normally done diff --git a/dom/base/Document.cpp b/dom/base/Document.cpp -index 8680bd4e64..44ea126777 100644 +index 8680bd4e64abc48233b5babb3b4123fea0e76f3b..44ea1267771cd925df74c716cc26d7ab51b2b985 100644 --- a/dom/base/Document.cpp +++ b/dom/base/Document.cpp @@ -3741,6 +3741,9 @@ void Document::SendToConsole(nsCOMArray& aMessages) { @@ -819,7 +819,7 @@ index 8680bd4e64..44ea126777 100644 if (!sLoadingForegroundTopLevelContentDocument) { return false; diff --git a/dom/base/Document.h b/dom/base/Document.h -index ee5800c51c..91a8ea64eb 100644 +index ee5800c51cacc7ac3517c03274ed4e0a35e57f9f..91a8ea64eb40dc0e642e8ab515b78c93e11d7d5a 100644 --- a/dom/base/Document.h +++ b/dom/base/Document.h @@ -4123,6 +4123,8 @@ class Document : public nsINode, @@ -832,7 +832,7 @@ index ee5800c51c..91a8ea64eb 100644 static bool AutomaticStorageAccessPermissionCanBeGranted( diff --git a/dom/base/Navigator.cpp b/dom/base/Navigator.cpp -index 0f159ad09a..e0cbb3f1f8 100644 +index 0f159ad09a2a4b8962307b9f20abf30323377a36..e0cbb3f1f8af42825696d7152eb9993ab3802f90 100644 --- a/dom/base/Navigator.cpp +++ b/dom/base/Navigator.cpp @@ -344,14 +344,18 @@ void Navigator::GetAppName(nsAString& aAppName) const { @@ -882,7 +882,7 @@ index 0f159ad09a..e0cbb3f1f8 100644 AutoplayPolicy Navigator::GetAutoplayPolicy(AutoplayPolicyMediaType aType) { diff --git a/dom/base/Navigator.h b/dom/base/Navigator.h -index 6abf6cef23..46ead1f32e 100644 +index 6abf6cef230c97815f17f6b7abf9f1b1de274a6f..46ead1f32e0d710b5b32e61dff72a4f772d5421e 100644 --- a/dom/base/Navigator.h +++ b/dom/base/Navigator.h @@ -218,7 +218,7 @@ class Navigator final : public nsISupports, public nsWrapperCache { @@ -895,7 +895,7 @@ index 6abf6cef23..46ead1f32e 100644 dom::MediaCapabilities* MediaCapabilities(); dom::MediaSession* MediaSession(); diff --git a/dom/base/nsContentUtils.cpp b/dom/base/nsContentUtils.cpp -index 13ba7fa81c..f438d58b59 100644 +index 13ba7fa81c67f41e419a13c74f9c382193e0eb27..f438d58b594e1434d090eecc89accc66b9f62fcd 100644 --- a/dom/base/nsContentUtils.cpp +++ b/dom/base/nsContentUtils.cpp @@ -8773,7 +8773,8 @@ nsresult nsContentUtils::SendMouseEvent( @@ -967,7 +967,7 @@ index 13ba7fa81c..f438d58b59 100644 nsPresContext* presContext = aPresShell->GetPresContext(); if (!presContext) return NS_ERROR_FAILURE; diff --git a/dom/base/nsContentUtils.h b/dom/base/nsContentUtils.h -index a1efe3efc7..caf55fa9da 100644 +index a1efe3efc7f48f9ff8e2b1a1a50e5dd7bf81f263..caf55fa9dae74ce4ce9ad0369c8cfc8eea061778 100644 --- a/dom/base/nsContentUtils.h +++ b/dom/base/nsContentUtils.h @@ -3033,7 +3033,8 @@ class nsContentUtils { @@ -981,7 +981,7 @@ index a1efe3efc7..caf55fa9da 100644 static void FirePageShowEventForFrameLoaderSwap( nsIDocShellTreeItem* aItem, diff --git a/dom/base/nsDOMWindowUtils.cpp b/dom/base/nsDOMWindowUtils.cpp -index aae46b9bd2..5e8ae13a9d 100644 +index aae46b9bd2e7756fc025c0597db221c579cac679..5e8ae13a9d1747312cd7df9d80cbb1677530465c 100644 --- a/dom/base/nsDOMWindowUtils.cpp +++ b/dom/base/nsDOMWindowUtils.cpp @@ -686,6 +686,26 @@ nsDOMWindowUtils::GetPresShellId(uint32_t* aPresShellId) { @@ -1046,7 +1046,7 @@ index aae46b9bd2..5e8ae13a9d 100644 if (aPreventDefault) { *aPreventDefault = preventDefaultResult != PreventDefaultResult::No; diff --git a/dom/base/nsDOMWindowUtils.h b/dom/base/nsDOMWindowUtils.h -index 47ff326b20..b8e084b0c7 100644 +index 47ff326b202266b1d7d6af8bdfb72776df8a6a93..b8e084b0c788c46345b1455b8257f1719c851404 100644 --- a/dom/base/nsDOMWindowUtils.h +++ b/dom/base/nsDOMWindowUtils.h @@ -93,7 +93,7 @@ class nsDOMWindowUtils final : public nsIDOMWindowUtils, @@ -1059,7 +1059,7 @@ index 47ff326b20..b8e084b0c7 100644 MOZ_CAN_RUN_SCRIPT nsresult SendTouchEventCommon( diff --git a/dom/base/nsFocusManager.cpp b/dom/base/nsFocusManager.cpp -index 54cf5e2647..37ff283278 100644 +index 54cf5e2647a8fa097481e972e0ab67928b2abc8b..37ff283278cebc0e058b0345a157036283847de8 100644 --- a/dom/base/nsFocusManager.cpp +++ b/dom/base/nsFocusManager.cpp @@ -1712,6 +1712,10 @@ Maybe nsFocusManager::SetFocusInner(Element* aNewContent, @@ -1105,7 +1105,7 @@ index 54cf5e2647..37ff283278 100644 // care of lowering the present active window. This happens in // a separate runnable to avoid touching multiple windows in diff --git a/dom/base/nsGlobalWindowOuter.cpp b/dom/base/nsGlobalWindowOuter.cpp -index d8ba9e36c9..f3b5b0417e 100644 +index d8ba9e36c98197a7dd7e1b0781f2477c451fc5fd..f3b5b0417ed9433678c7379d304de263c7bc1f80 100644 --- a/dom/base/nsGlobalWindowOuter.cpp +++ b/dom/base/nsGlobalWindowOuter.cpp @@ -2516,10 +2516,16 @@ nsresult nsGlobalWindowOuter::SetNewDocument(Document* aDocument, @@ -1150,7 +1150,7 @@ index d8ba9e36c9..f3b5b0417e 100644 void nsGlobalWindowOuter::SetDocShell(nsDocShell* aDocShell) { diff --git a/dom/base/nsGlobalWindowOuter.h b/dom/base/nsGlobalWindowOuter.h -index d4347e7a50..5088520537 100644 +index d4347e7a508742986f634e97394a9e3dd435d170..5088520537c8c5c6cc79c1dffd91a68de09f27eb 100644 --- a/dom/base/nsGlobalWindowOuter.h +++ b/dom/base/nsGlobalWindowOuter.h @@ -317,6 +317,7 @@ class nsGlobalWindowOuter final : public mozilla::dom::EventTarget, @@ -1162,7 +1162,7 @@ index d4347e7a50..5088520537 100644 // Outer windows only. virtual void EnsureSizeAndPositionUpToDate() override; diff --git a/dom/base/nsINode.cpp b/dom/base/nsINode.cpp -index 855ba87b5b..f96eb49056 100644 +index 855ba87b5b6db67d7dd207cb54001190c494c61a..f96eb49056dafcbd0ca244dac6d1d4a38e7819ce 100644 --- a/dom/base/nsINode.cpp +++ b/dom/base/nsINode.cpp @@ -1438,6 +1438,61 @@ void nsINode::GetBoxQuadsFromWindowOrigin(const BoxQuadOptions& aOptions, @@ -1228,7 +1228,7 @@ index 855ba87b5b..f96eb49056 100644 DOMQuad& aQuad, const GeometryNode& aFrom, const ConvertCoordinateOptions& aOptions, CallerType aCallerType, diff --git a/dom/base/nsINode.h b/dom/base/nsINode.h -index e1fb6c2aeb..55e573dce8 100644 +index e1fb6c2aeb67ab600b668b342bee0c716427d116..55e573dce8ad4d34542f89b9179a1da14f45d1bc 100644 --- a/dom/base/nsINode.h +++ b/dom/base/nsINode.h @@ -2356,6 +2356,10 @@ class nsINode : public mozilla::dom::EventTarget { @@ -1243,7 +1243,7 @@ index e1fb6c2aeb..55e573dce8 100644 DOMQuad& aQuad, const TextOrElementOrDocument& aFrom, const ConvertCoordinateOptions& aOptions, CallerType aCallerType, diff --git a/dom/base/nsJSUtils.cpp b/dom/base/nsJSUtils.cpp -index bf7eb34da0..a2ec3b1b7e 100644 +index bf7eb34da03c0958de688deecb53b407d430f645..a2ec3b1b7e86f72bee38d890c0834abfe4be8637 100644 --- a/dom/base/nsJSUtils.cpp +++ b/dom/base/nsJSUtils.cpp @@ -149,6 +149,11 @@ bool nsJSUtils::GetEnvironmentChainForElement(JSContext* aCx, Element* aElement, @@ -1259,7 +1259,7 @@ index bf7eb34da0..a2ec3b1b7e 100644 void nsJSUtils::ResetTimeZone() { JS::ResetTimeZone(); } diff --git a/dom/base/nsJSUtils.h b/dom/base/nsJSUtils.h -index f32e21752d..83763d2354 100644 +index f32e21752d5013bf143eb45391ab9218debab08e..83763d2354dade2f8d2b7930ba18ae91c55133ad 100644 --- a/dom/base/nsJSUtils.h +++ b/dom/base/nsJSUtils.h @@ -75,6 +75,7 @@ class nsJSUtils { @@ -1271,7 +1271,7 @@ index f32e21752d..83763d2354 100644 static bool DumpEnabled(); diff --git a/dom/chrome-webidl/BrowsingContext.webidl b/dom/chrome-webidl/BrowsingContext.webidl -index 28e8d8cb9c..0058e60aaa 100644 +index 28e8d8cb9c61ff8362b2d191d47c3630d2cb0b34..0058e60aaab21f8003bbe1bf3f271c63ed78f29a 100644 --- a/dom/chrome-webidl/BrowsingContext.webidl +++ b/dom/chrome-webidl/BrowsingContext.webidl @@ -61,6 +61,15 @@ enum ForcedColorsOverride { @@ -1301,7 +1301,7 @@ index 28e8d8cb9c..0058e60aaa 100644 * A unique identifier for the browser element that is hosting this * BrowsingContext tree. Every BrowsingContext in the element's tree will diff --git a/dom/geolocation/Geolocation.cpp b/dom/geolocation/Geolocation.cpp -index 6a624e4c0f..370625634f 100644 +index 6a624e4c0f5fb8ffff06419a29f6e6acc6108773..370625634f7846d0545ec7ee964d7fa1a15b3ac0 100644 --- a/dom/geolocation/Geolocation.cpp +++ b/dom/geolocation/Geolocation.cpp @@ -29,6 +29,7 @@ @@ -1363,7 +1363,7 @@ index 6a624e4c0f..370625634f 100644 mService->AddLocator(this); } diff --git a/dom/geolocation/Geolocation.h b/dom/geolocation/Geolocation.h -index 992de29b5d..cdc20567b6 100644 +index 992de29b5d2d09c19e55ebb2502215ec9d05a171..cdc20567b693283b0fd5a5923f7ea54210bd1712 100644 --- a/dom/geolocation/Geolocation.h +++ b/dom/geolocation/Geolocation.h @@ -31,6 +31,7 @@ @@ -1400,7 +1400,7 @@ index 992de29b5d..cdc20567b6 100644 ~Geolocation(); diff --git a/dom/html/HTMLInputElement.cpp b/dom/html/HTMLInputElement.cpp -index 4b6686880b..825a006b05 100644 +index 4b6686880b9fca9bb7c08e850918a4c0f15dac88..825a006b05947ede8ffdfefa4cd12dd5663fb98f 100644 --- a/dom/html/HTMLInputElement.cpp +++ b/dom/html/HTMLInputElement.cpp @@ -62,6 +62,7 @@ @@ -1426,7 +1426,7 @@ index 4b6686880b..825a006b05 100644 return NS_OK; } diff --git a/dom/interfaces/base/nsIDOMWindowUtils.idl b/dom/interfaces/base/nsIDOMWindowUtils.idl -index b4d065ff31..59448d3c4f 100644 +index b4d065ff3197404f92e099afea9a0dcb4ff79bf1..59448d3c4f1054a8a1c8cb415f36fdeb2983040d 100644 --- a/dom/interfaces/base/nsIDOMWindowUtils.idl +++ b/dom/interfaces/base/nsIDOMWindowUtils.idl @@ -374,6 +374,26 @@ interface nsIDOMWindowUtils : nsISupports { @@ -1457,7 +1457,7 @@ index b4d065ff31..59448d3c4f 100644 * touchstart, touchend, touchmove, and touchcancel * diff --git a/dom/ipc/BrowserChild.cpp b/dom/ipc/BrowserChild.cpp -index 067e855168..5667fbbfff 100644 +index 067e8551685497a8d7681296bbb7d7eae1d7587b..5667fbbfff99b77992eac181304093d8afbff367 100644 --- a/dom/ipc/BrowserChild.cpp +++ b/dom/ipc/BrowserChild.cpp @@ -1674,6 +1674,21 @@ void BrowserChild::HandleRealMouseButtonEvent(const WidgetMouseEvent& aEvent, @@ -1483,7 +1483,7 @@ index 067e855168..5667fbbfff 100644 mozilla::ipc::IPCResult BrowserChild::RecvNormalPriorityRealMouseButtonEvent( diff --git a/dom/ipc/CoalescedMouseData.cpp b/dom/ipc/CoalescedMouseData.cpp -index 5aa445d2e0..671f71979b 100644 +index 5aa445d2e0a6169e57c44569974d557b3baf7064..671f71979b407f0ca17c66f13805e851ba30479e 100644 --- a/dom/ipc/CoalescedMouseData.cpp +++ b/dom/ipc/CoalescedMouseData.cpp @@ -67,6 +67,9 @@ bool CoalescedMouseData::CanCoalesce(const WidgetMouseEvent& aEvent, @@ -1497,7 +1497,7 @@ index 5aa445d2e0..671f71979b 100644 } diff --git a/dom/media/systemservices/video_engine/desktop_capture_impl.cc b/dom/media/systemservices/video_engine/desktop_capture_impl.cc -index c43a1b3b24..c07a568da3 100644 +index c43a1b3b245101c974742c5e50f54857e538bbfb..c07a568da3342cbf2af07471fa6959cb242b9a4e 100644 --- a/dom/media/systemservices/video_engine/desktop_capture_impl.cc +++ b/dom/media/systemservices/video_engine/desktop_capture_impl.cc @@ -52,9 +52,10 @@ namespace webrtc { @@ -1589,7 +1589,7 @@ index c43a1b3b24..c07a568da3 100644 frameInfo.width * frameInfo.height * DesktopFrame::kBytesPerPixel; diff --git a/dom/media/systemservices/video_engine/desktop_capture_impl.h b/dom/media/systemservices/video_engine/desktop_capture_impl.h -index a76b7de569..3d61ad8d3a 100644 +index a76b7de569db1cb42728a5514fb80e5c46e0344e..3d61ad8d3aa4a7eaf96957dcd680e1e1ee8abdf4 100644 --- a/dom/media/systemservices/video_engine/desktop_capture_impl.h +++ b/dom/media/systemservices/video_engine/desktop_capture_impl.h @@ -26,6 +26,7 @@ @@ -1686,7 +1686,7 @@ index a76b7de569..3d61ad8d3a 100644 const nsCOMPtr mControlThread; // Set in StartCapture. diff --git a/dom/script/ScriptSettings.cpp b/dom/script/ScriptSettings.cpp -index 3b39538e51..c7bf4f2d53 100644 +index 3b39538e51840cd9b1685b2efd2ff2e9ec83608a..c7bf4f2d53b58bbacb22b3ebebf6f3fc9b5e445f 100644 --- a/dom/script/ScriptSettings.cpp +++ b/dom/script/ScriptSettings.cpp @@ -150,6 +150,30 @@ ScriptSettingsStackEntry::~ScriptSettingsStackEntry() { @@ -1730,7 +1730,7 @@ index 3b39538e51..c7bf4f2d53 100644 return aGlobalOrNull; diff --git a/dom/security/nsCSPUtils.cpp b/dom/security/nsCSPUtils.cpp -index 8c4364190d..ffadb3b466 100644 +index 8c4364190dadd1a58bfd99e2c0dae1524a4e2c0c..ffadb3b4665a804320724b5a12e09cb29ef31498 100644 --- a/dom/security/nsCSPUtils.cpp +++ b/dom/security/nsCSPUtils.cpp @@ -23,6 +23,7 @@ @@ -1754,18 +1754,18 @@ index 8c4364190d..ffadb3b466 100644 nsContentUtils::TrimWhitespace( aPolicyStr)); diff --git a/dom/webidl/GeometryUtils.webidl b/dom/webidl/GeometryUtils.webidl -index aee376e971..1d741d15db 100644 +index aee376e971ae01ac1e512c3920b115bfaf06afa8..1701311534bf77e6cd9bafc0e3a283610476aa8f 100644 --- a/dom/webidl/GeometryUtils.webidl +++ b/dom/webidl/GeometryUtils.webidl -@@ -16,6 +16,8 @@ dictionary GeometryUtilsOptions { - [ChromeOnly] +@@ -17,6 +17,8 @@ dictionary GeometryUtilsOptions { boolean createFramesForSuppressedWhitespace = true; [ChromeOnly] -+ boolean recurseWhenNoFrame = false; -+ [ChromeOnly] boolean flush = true; ++ [ChromeOnly] ++ boolean recurseWhenNoFrame = false; }; + dictionary BoxQuadOptions : GeometryUtilsOptions { @@ -35,6 +37,9 @@ interface mixin GeometryUtils { [Throws, Func="nsINode::HasBoxQuadsSupport", NeedsCallerType] sequence getBoxQuads(optional BoxQuadOptions options = {}); @@ -1777,7 +1777,7 @@ index aee376e971..1d741d15db 100644 * returned quads are further translated relative to the window * origin -- which is not the layout origin. Further translation diff --git a/dom/workers/RuntimeService.cpp b/dom/workers/RuntimeService.cpp -index 996b569916..5b08ea6145 100644 +index 996b5699166711901ff0d11fe64352b6c9c97d1e..5b08ea6145e6052058a55d6a678fd7539f70baa1 100644 --- a/dom/workers/RuntimeService.cpp +++ b/dom/workers/RuntimeService.cpp @@ -1005,7 +1005,7 @@ void PrefLanguagesChanged(const char* /* aPrefName */, void* /* aClosure */) { @@ -1829,7 +1829,7 @@ index 996b569916..5b08ea6145 100644 MOZ_ASSERT(!NS_IsMainThread()); MOZ_ASSERT(aCx); diff --git a/dom/workers/RuntimeService.h b/dom/workers/RuntimeService.h -index 534bbe9ec4..6aa99b64fd 100644 +index 534bbe9ec4f0261189eb3322c1229c1eb5d8802e..6aa99b64fdbbff3704602e944b129879fbdf8c15 100644 --- a/dom/workers/RuntimeService.h +++ b/dom/workers/RuntimeService.h @@ -112,6 +112,8 @@ class RuntimeService final : public nsIObserver { @@ -1842,7 +1842,7 @@ index 534bbe9ec4..6aa99b64fd 100644 return mNavigatorProperties; } diff --git a/dom/workers/WorkerCommon.h b/dom/workers/WorkerCommon.h -index 58894a8361..c481d40d79 100644 +index 58894a8361c7ef1dddd481ca5877a209a8b8ff5c..c481d40d79b6397b7f1d571bd9f6ae5c0a946217 100644 --- a/dom/workers/WorkerCommon.h +++ b/dom/workers/WorkerCommon.h @@ -47,6 +47,8 @@ void ResumeWorkersForWindow(const nsPIDOMWindowInner& aWindow); @@ -1855,7 +1855,7 @@ index 58894a8361..c481d40d79 100644 bool IsWorkerGlobal(JSObject* global); diff --git a/dom/workers/WorkerPrivate.cpp b/dom/workers/WorkerPrivate.cpp -index 0076a8463f..9f810c9728 100644 +index 0076a8463fa9ff05b32edfe21462987610432b5d..9f810c9728b7d7caf9fbeb3e24346c219326637d 100644 --- a/dom/workers/WorkerPrivate.cpp +++ b/dom/workers/WorkerPrivate.cpp @@ -736,6 +736,18 @@ class UpdateContextOptionsRunnable final : public WorkerControlRunnable { @@ -1911,7 +1911,7 @@ index 0076a8463f..9f810c9728 100644 const nsTArray& aLanguages) { WorkerGlobalScope* globalScope = GlobalScope(); diff --git a/dom/workers/WorkerPrivate.h b/dom/workers/WorkerPrivate.h -index c2ade46793..414814c031 100644 +index c2ade467934d08587d4e3589b310c6302534d699..414814c03180b50d218ad84a0db262fff19f78a7 100644 --- a/dom/workers/WorkerPrivate.h +++ b/dom/workers/WorkerPrivate.h @@ -443,6 +443,8 @@ class WorkerPrivate final @@ -1933,7 +1933,7 @@ index c2ade46793..414814c031 100644 void UpdateJSWorkerMemoryParameter(JSGCParamKey key, Maybe value); diff --git a/intl/components/src/TimeZone.cpp b/intl/components/src/TimeZone.cpp -index 7a069ef0c5..5b09dfdcc5 100644 +index 7a069ef0c59895cf1f8dc35d612f1494c9c9f1ef..5b09dfdcc5323def65c35b0696141b44eef9dcda 100644 --- a/intl/components/src/TimeZone.cpp +++ b/intl/components/src/TimeZone.cpp @@ -16,6 +16,7 @@ @@ -1959,7 +1959,7 @@ index 7a069ef0c5..5b09dfdcc5 100644 Span aTimeZone) { #if MOZ_INTL_USE_ICU_CPP_TIMEZONE diff --git a/intl/components/src/TimeZone.h b/intl/components/src/TimeZone.h -index 89770839ae..a7e40d6b7c 100644 +index 89770839ae108b5f3462a7f20684fdb72c4ab2fb..a7e40d6b7c33c234b41e586eac573ba4ce3a7d18 100644 --- a/intl/components/src/TimeZone.h +++ b/intl/components/src/TimeZone.h @@ -191,6 +191,8 @@ class TimeZone final { @@ -1972,7 +1972,7 @@ index 89770839ae..a7e40d6b7c 100644 * Set the default time zone. */ diff --git a/js/public/Date.h b/js/public/Date.h -index 523e84c8c9..98d5b1176e 100644 +index 523e84c8c93f4221701f90f2e8ee146ec8e1adbd..98d5b1176e5378431b859a2dbd4d4e778d236e78 100644 --- a/js/public/Date.h +++ b/js/public/Date.h @@ -55,6 +55,8 @@ namespace JS { @@ -1985,7 +1985,7 @@ index 523e84c8c9..98d5b1176e 100644 inline ClippedTime TimeClip(double time); diff --git a/js/src/debugger/Object.cpp b/js/src/debugger/Object.cpp -index 880e716c24..6e046fbd2e 100644 +index 880e716c24464c93283410417f8e69d6d233d105..6e046fbd2e643dace5ad7796740253df3ddf2cbe 100644 --- a/js/src/debugger/Object.cpp +++ b/js/src/debugger/Object.cpp @@ -2474,7 +2474,11 @@ Maybe DebuggerObject::call(JSContext* cx, @@ -2001,7 +2001,7 @@ index 880e716c24..6e046fbd2e 100644 } diff --git a/js/src/vm/DateTime.cpp b/js/src/vm/DateTime.cpp -index cf63b124f3..9e3a7b757c 100644 +index cf63b124f39223a1a42c322dcc0ad108947d54f5..9e3a7b757cbad57ee6cfe2254d0355f62f7c8662 100644 --- a/js/src/vm/DateTime.cpp +++ b/js/src/vm/DateTime.cpp @@ -185,6 +185,11 @@ void js::DateTimeInfo::internalResetTimeZone(ResetTimeZoneMode mode) { @@ -2066,7 +2066,7 @@ index cf63b124f3..9e3a7b757c 100644 # if defined(XP_WIN) diff --git a/js/src/vm/DateTime.h b/js/src/vm/DateTime.h -index e3cf82daa3..b45b49c4f3 100644 +index e3cf82daa3749664aa8ced7e6553b8c6434dfec8..b45b49c4f3bbf12853c4afb12de21d99ac88d77b 100644 --- a/js/src/vm/DateTime.h +++ b/js/src/vm/DateTime.h @@ -65,6 +65,8 @@ enum class ResetTimeZoneMode : bool { @@ -2105,7 +2105,7 @@ index e3cf82daa3..b45b49c4f3 100644 void internalResyncICUDefaultTimeZone(); diff --git a/layout/base/GeometryUtils.cpp b/layout/base/GeometryUtils.cpp -index 4bfd336ddc..88800e72e6 100644 +index 4bfd336ddcbee8004ac538ca7b7d8216d04a61c3..cd22351c4aeacea8afc9828972222aca1b3063bf 100644 --- a/layout/base/GeometryUtils.cpp +++ b/layout/base/GeometryUtils.cpp @@ -23,6 +23,7 @@ @@ -2116,46 +2116,47 @@ index 4bfd336ddc..88800e72e6 100644 using namespace mozilla; using namespace mozilla::dom; -@@ -54,18 +55,35 @@ static nsIFrame* GetFrameForNode(nsINode* aNode, GeometryNodeType aType, - doc->FlushPendingNotifications(FlushType::Layout); - } +@@ -265,10 +266,27 @@ static bool CheckFramesInSameTopLevelBrowsingContext(nsIFrame* aFrame1, + return false; + } -+ nsIFrame* frame = nullptr; - switch (aType) { - case GEOMETRY_NODE_TEXT: - case GEOMETRY_NODE_ELEMENT: -- return aNode->AsContent()->GetPrimaryFrame(); -+ frame = aNode->AsContent()->GetPrimaryFrame(); -+ break; - case GEOMETRY_NODE_DOCUMENT: { - PresShell* presShell = doc->GetPresShell(); -- return presShell ? presShell->GetRootFrame() : nullptr; -+ frame = presShell ? presShell->GetRootFrame() : nullptr; -+ break; - } - default: - MOZ_ASSERT(false, "Unknown GeometryNodeType"); - return nullptr; - } -+ // If no frame found and recursion is requested, try children -+ if (!frame && aOptions.mRecurseWhenNoFrame && aNode->IsContent()) { ++static nsIFrame* GetFrameForNodeRecursive(nsINode* aNode, ++ const GeometryUtilsOptions& aOptions, ++ bool aRecurseWhenNoFrame) { ++ nsIFrame* frame = GetFrameForNode(aNode, aOptions); ++ if (!frame && aRecurseWhenNoFrame && aNode->IsContent()) { + dom::FlattenedChildIterator iter(aNode->AsContent()); + for (nsIContent* child = iter.GetNextChild(); child; child = iter.GetNextChild()) { -+ // Recursively call with the same options but for the child node -+ frame = GetFrameForNode(child, -+ child->IsElement() ? GEOMETRY_NODE_ELEMENT : GEOMETRY_NODE_TEXT, -+ aOptions); ++ frame = GetFrameForNodeRecursive(child, aOptions, aRecurseWhenNoFrame); + if (frame) { + break; + } + } + } + return frame; - } - - static nsIFrame* GetFrameForGeometryNode( ++} ++ + void GetBoxQuads(nsINode* aNode, const dom::BoxQuadOptions& aOptions, + nsTArray>& aResult, CallerType aCallerType, + ErrorResult& aRv) { +- nsIFrame* frame = GetFrameForNode(aNode, aOptions); ++ nsIFrame* frame = ++ GetFrameForNodeRecursive(aNode, aOptions, aOptions.mRecurseWhenNoFrame); + if (!frame) { + // No boxes to return + return; +@@ -281,7 +299,8 @@ void GetBoxQuads(nsINode* aNode, const dom::BoxQuadOptions& aOptions, + // EnsureFrameForTextNode call. We need to get the first frame again + // when that happens and re-check it. + if (!weakFrame.IsAlive()) { +- frame = GetFrameForNode(aNode, aOptions); ++ frame = ++ GetFrameForNodeRecursive(aNode, aOptions, aOptions.mRecurseWhenNoFrame); + if (!frame) { + // No boxes to return + return; diff --git a/layout/base/PresShell.cpp b/layout/base/PresShell.cpp -index c533494e49..1da4eeb774 100644 +index c533494e49d59904b839ea770475ec726c4c897e..1da4eeb774dadb4e3463cbeb17d857ccb6ef76ea 100644 --- a/layout/base/PresShell.cpp +++ b/layout/base/PresShell.cpp @@ -11278,7 +11278,9 @@ bool PresShell::ComputeActiveness() const { @@ -2170,7 +2171,7 @@ index c533494e49..1da4eeb774 100644 // If the browser is visible but just due to be preserving layers diff --git a/layout/base/nsLayoutUtils.cpp b/layout/base/nsLayoutUtils.cpp -index 1fba8697d4..77d0de76f3 100644 +index 1fba8697d48f35e20a69ff861f5da9689c6d6769..77d0de76f346c0563d9b74b667c8400e26a98694 100644 --- a/layout/base/nsLayoutUtils.cpp +++ b/layout/base/nsLayoutUtils.cpp @@ -708,6 +708,10 @@ bool nsLayoutUtils::AllowZoomingForDocument( @@ -2195,7 +2196,7 @@ index 1fba8697d4..77d0de76f3 100644 return StaticPrefs::dom_meta_viewport_enabled() || (bc && bc->InRDMPane()); } diff --git a/layout/style/GeckoBindings.h b/layout/style/GeckoBindings.h -index acb5b24776..191ddd1f43 100644 +index acb5b24776c8591933d1abcbcc7b254cf2ceb4e4..191ddd1f43bd704294727555c3d5137d69c1460c 100644 --- a/layout/style/GeckoBindings.h +++ b/layout/style/GeckoBindings.h @@ -593,6 +593,7 @@ float Gecko_MediaFeatures_GetResolution(const mozilla::dom::Document*); @@ -2207,7 +2208,7 @@ index acb5b24776..191ddd1f43 100644 const mozilla::dom::Document*); mozilla::StylePrefersColorScheme Gecko_MediaFeatures_PrefersColorScheme( diff --git a/layout/style/nsMediaFeatures.cpp b/layout/style/nsMediaFeatures.cpp -index ca382a3cfb..b1f1b579d7 100644 +index ca382a3cfba8ce5839890d6e4cb3cf9789287e3b..b1f1b579d7609c6ab93cc0bc52417ea54ab4aeed 100644 --- a/layout/style/nsMediaFeatures.cpp +++ b/layout/style/nsMediaFeatures.cpp @@ -264,11 +264,7 @@ bool Gecko_MediaFeatures_MatchesPlatform(StylePlatform aPlatform) { @@ -2224,7 +2225,7 @@ index ca382a3cfb..b1f1b579d7 100644 bool Gecko_MediaFeatures_PrefersReducedTransparency(const Document* aDocument) { diff --git a/netwerk/base/LoadInfo.cpp b/netwerk/base/LoadInfo.cpp -index 06acdc629c..6c263edf54 100644 +index 06acdc629c2b6ee0e29c50d8edc5a96d343b1ef2..6c263edf54117fd9cbf4a77abc396f1238730880 100644 --- a/netwerk/base/LoadInfo.cpp +++ b/netwerk/base/LoadInfo.cpp @@ -696,7 +696,8 @@ LoadInfo::LoadInfo(const LoadInfo& rhs) @@ -2255,7 +2256,7 @@ index 06acdc629c..6c263edf54 100644 + } // namespace mozilla::net diff --git a/netwerk/base/LoadInfo.h b/netwerk/base/LoadInfo.h -index c78602f6b4..e292766a0f 100644 +index c78602f6b46c983aa4d96c5727ebbaf7e2c7d984..e292766a0f34306ea1101be4ecd8848764726bad 100644 --- a/netwerk/base/LoadInfo.h +++ b/netwerk/base/LoadInfo.h @@ -423,6 +423,8 @@ class LoadInfo final : public nsILoadInfo { @@ -2268,7 +2269,7 @@ index c78602f6b4..e292766a0f 100644 // This is exposed solely for testing purposes and should not be used outside of diff --git a/netwerk/base/TRRLoadInfo.cpp b/netwerk/base/TRRLoadInfo.cpp -index 5984a0a196..3617816a06 100644 +index 5984a0a196615cca5544de052874cbb163a8233b..3617816a06651ae65c214ebd5f0affedc4d11390 100644 --- a/netwerk/base/TRRLoadInfo.cpp +++ b/netwerk/base/TRRLoadInfo.cpp @@ -936,5 +936,15 @@ TRRLoadInfo::GetFetchDestination(nsACString& aDestination) { @@ -2288,7 +2289,7 @@ index 5984a0a196..3617816a06 100644 } // namespace net } // namespace mozilla diff --git a/netwerk/base/nsILoadInfo.idl b/netwerk/base/nsILoadInfo.idl -index 50dfc8767a..32a171eac2 100644 +index 50dfc8767a99eef5e8748d648995f3cd7cc81a73..32a171eac26376144482bc7d90e8662a0e719f47 100644 --- a/netwerk/base/nsILoadInfo.idl +++ b/netwerk/base/nsILoadInfo.idl @@ -1616,4 +1616,6 @@ interface nsILoadInfo : nsISupports @@ -2299,7 +2300,7 @@ index 50dfc8767a..32a171eac2 100644 + [infallible] attribute unsigned long long jugglerLoadIdentifier; }; diff --git a/netwerk/base/nsINetworkInterceptController.idl b/netwerk/base/nsINetworkInterceptController.idl -index 7f91d2df6f..ba6569f4be 100644 +index 7f91d2df6f8bb4020c75c132dc8f6bf26625fa1e..ba6569f4be8fc54ec96ee44d5de45a0904c077ba 100644 --- a/netwerk/base/nsINetworkInterceptController.idl +++ b/netwerk/base/nsINetworkInterceptController.idl @@ -59,6 +59,7 @@ interface nsIInterceptedChannel : nsISupports @@ -2311,7 +2312,7 @@ index 7f91d2df6f..ba6569f4be 100644 /** * Set the status and reason for the forthcoming synthesized response. diff --git a/netwerk/ipc/DocumentLoadListener.cpp b/netwerk/ipc/DocumentLoadListener.cpp -index 8b392845d0..b0817d1b66 100644 +index 8b392845d07f50dddf016770836107614b6b9753..b0817d1b660dbb2dd856daf30ec9ec0fcb3d2aeb 100644 --- a/netwerk/ipc/DocumentLoadListener.cpp +++ b/netwerk/ipc/DocumentLoadListener.cpp @@ -172,6 +172,7 @@ static auto CreateDocumentLoadInfo(CanonicalBrowsingContext* aBrowsingContext, @@ -2323,7 +2324,7 @@ index 8b392845d0..b0817d1b66 100644 return loadInfo.forget(); } diff --git a/netwerk/protocol/http/InterceptedHttpChannel.cpp b/netwerk/protocol/http/InterceptedHttpChannel.cpp -index b7c129dcc2..6f3881c002 100644 +index b7c129dcc21cb5d5478765f6aa06ed047aee6de0..6f3881c002c5f6d3e48865d253515ffd4d24bcf6 100644 --- a/netwerk/protocol/http/InterceptedHttpChannel.cpp +++ b/netwerk/protocol/http/InterceptedHttpChannel.cpp @@ -726,6 +726,14 @@ NS_IMPL_ISUPPORTS(ResetInterceptionHeaderVisitor, nsIHttpHeaderVisitor) @@ -2361,7 +2362,7 @@ index b7c129dcc2..6f3881c002 100644 if (mPump && mLoadFlags & LOAD_CALL_CONTENT_SNIFFERS) { mPump->PeekStream(CallTypeSniffers, static_cast(this)); diff --git a/parser/html/nsHtml5TreeOpExecutor.cpp b/parser/html/nsHtml5TreeOpExecutor.cpp -index d05b06c3f9..9b2cc35c50 100644 +index d05b06c3f9ddba3b40d5969730474eaf0d843cb1..9b2cc35c504e1044ac681c62c107f8feb6c16938 100644 --- a/parser/html/nsHtml5TreeOpExecutor.cpp +++ b/parser/html/nsHtml5TreeOpExecutor.cpp @@ -1334,6 +1334,10 @@ void nsHtml5TreeOpExecutor::UpdateReferrerInfoFromMeta( @@ -2376,7 +2377,7 @@ index d05b06c3f9..9b2cc35c50 100644 nsCOMPtr preloadCsp = mDocument->GetPreloadCsp(); if (!preloadCsp) { diff --git a/security/manager/ssl/nsCertOverrideService.cpp b/security/manager/ssl/nsCertOverrideService.cpp -index b2e328e7c7..54f24b213b 100644 +index b2e328e7c7d7a89be34b84fd176c306a3620c77c..54f24b213bcdc78c702e15d4d45a3943bc082281 100644 --- a/security/manager/ssl/nsCertOverrideService.cpp +++ b/security/manager/ssl/nsCertOverrideService.cpp @@ -439,7 +439,12 @@ nsCertOverrideService::HasMatchingOverride( @@ -2422,7 +2423,7 @@ index b2e328e7c7..54f24b213b 100644 nsCOMPtr nss(do_GetService(PSM_COMPONENT_CONTRACTID)); diff --git a/security/manager/ssl/nsCertOverrideService.h b/security/manager/ssl/nsCertOverrideService.h -index 21cff56300..ce9a7fc16c 100644 +index 21cff56300db6490cf9649aa62099cb5525749b3..ce9a7fc16c2d5980be166e0f4ab9a25df300ca2f 100644 --- a/security/manager/ssl/nsCertOverrideService.h +++ b/security/manager/ssl/nsCertOverrideService.h @@ -118,6 +118,7 @@ class nsCertOverrideService final : public nsICertOverrideService, @@ -2434,7 +2435,7 @@ index 21cff56300..ce9a7fc16c 100644 nsTHashtable mSettingsTable MOZ_GUARDED_BY(mMutex); diff --git a/security/manager/ssl/nsICertOverrideService.idl b/security/manager/ssl/nsICertOverrideService.idl -index 6dfd07d6b6..e3c6794363 100644 +index 6dfd07d6b676a99993408921de8dea9d561f201d..e3c6794363cd6336effbeac83a179f3796dd71b0 100644 --- a/security/manager/ssl/nsICertOverrideService.idl +++ b/security/manager/ssl/nsICertOverrideService.idl @@ -137,7 +137,9 @@ interface nsICertOverrideService : nsISupports { @@ -2449,7 +2450,7 @@ index 6dfd07d6b6..e3c6794363 100644 readonly attribute boolean securityCheckDisabled; }; diff --git a/services/settings/Utils.sys.mjs b/services/settings/Utils.sys.mjs -index 12fef6cde8..0f7f06d100 100644 +index 12fef6cde815a9301944c399a58f27a7e4c4d5d7..0f7f06d1002a089547d1b15d7d8ddf264f28b529 100644 --- a/services/settings/Utils.sys.mjs +++ b/services/settings/Utils.sys.mjs @@ -97,7 +97,7 @@ const _cdnURLs = {}; @@ -2472,7 +2473,7 @@ index 12fef6cde8..0f7f06d100 100644 (lazy.isRunningTests || Cu.isInAutomation) && this.SERVER_URL == "data:,#remote-settings-dummy/v1" diff --git a/toolkit/components/browser/nsIWebBrowserChrome.idl b/toolkit/components/browser/nsIWebBrowserChrome.idl -index 75555352b8..72855a404e 100644 +index 75555352b8a15a50e4a21e34fc8ede4e9246c7cc..72855a404effa42b6c55cd0c2fcb8bdd6c2b3f9f 100644 --- a/toolkit/components/browser/nsIWebBrowserChrome.idl +++ b/toolkit/components/browser/nsIWebBrowserChrome.idl @@ -74,6 +74,9 @@ interface nsIWebBrowserChrome : nsISupports @@ -2486,7 +2487,7 @@ index 75555352b8..72855a404e 100644 // ignored for Linux. const unsigned long CHROME_SUPPRESS_ANIMATION = 1 << 24; diff --git a/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.sys.mjs b/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.sys.mjs -index 8b975a8b11..0eeb5924c4 100644 +index 8b975a8b11bcf2eabbb7fa51a431ff99ff69a5bc..0eeb5924c43a21b8561dd4b68fa89228ddcbc708 100644 --- a/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.sys.mjs +++ b/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.sys.mjs @@ -108,6 +108,12 @@ EnterprisePoliciesManager.prototype = { @@ -2503,7 +2504,7 @@ index 8b975a8b11..0eeb5924c4 100644 if (provider.failed) { diff --git a/toolkit/components/resistfingerprinting/nsUserCharacteristics.cpp b/toolkit/components/resistfingerprinting/nsUserCharacteristics.cpp -index 77496e700e..3d13e9b316 100644 +index 77496e700eebbf286e8c5175ea1f77f8576fde1f..3d13e9b316284eaef5d4c82087117020ca8aba71 100644 --- a/toolkit/components/resistfingerprinting/nsUserCharacteristics.cpp +++ b/toolkit/components/resistfingerprinting/nsUserCharacteristics.cpp @@ -488,7 +488,7 @@ void PopulateLanguages() { @@ -2516,7 +2517,7 @@ index 77496e700e..3d13e9b316 100644 for (const auto& language : languages) { diff --git a/toolkit/components/startup/nsAppStartup.cpp b/toolkit/components/startup/nsAppStartup.cpp -index 9297e5eacd..15926f1068 100644 +index 9297e5eacd65658289dda764ad39e182c22d192b..15926f106850637a5bbd27e56834dc5c82791250 100644 --- a/toolkit/components/startup/nsAppStartup.cpp +++ b/toolkit/components/startup/nsAppStartup.cpp @@ -365,7 +365,7 @@ nsAppStartup::Quit(uint32_t aMode, int aExitCode, bool* aUserAllowedQuit) { @@ -2529,7 +2530,7 @@ index 9297e5eacd..15926f1068 100644 if (windowEnumerator) { bool more; diff --git a/toolkit/components/statusfilter/nsBrowserStatusFilter.cpp b/toolkit/components/statusfilter/nsBrowserStatusFilter.cpp -index 654903fadb..815b3dc24c 100644 +index 654903fadb709be976b72f36f155e23bc0622152..815b3dc24c9fda6b1db6c4666ac68904c87ac0ab 100644 --- a/toolkit/components/statusfilter/nsBrowserStatusFilter.cpp +++ b/toolkit/components/statusfilter/nsBrowserStatusFilter.cpp @@ -174,8 +174,8 @@ nsBrowserStatusFilter::OnStateChange(nsIWebProgress* aWebProgress, @@ -2544,7 +2545,7 @@ index 654903fadb..815b3dc24c 100644 int32_t aMaxSelfProgress, int32_t aCurTotalProgress, diff --git a/toolkit/components/windowwatcher/nsWindowWatcher.cpp b/toolkit/components/windowwatcher/nsWindowWatcher.cpp -index 585a957fd8..16ad38c3b7 100644 +index 585a957fd8a1467dc262bd1ca2058584fd8762c9..16ad38c3b7d753c386e091af700d1bebd4c59e3e 100644 --- a/toolkit/components/windowwatcher/nsWindowWatcher.cpp +++ b/toolkit/components/windowwatcher/nsWindowWatcher.cpp @@ -1875,7 +1875,11 @@ uint32_t nsWindowWatcher::CalculateChromeFlagsForContent( @@ -2561,7 +2562,7 @@ index 585a957fd8..16ad38c3b7 100644 /** diff --git a/toolkit/mozapps/update/UpdateService.sys.mjs b/toolkit/mozapps/update/UpdateService.sys.mjs -index eeec31f4d7..8907773fb6 100644 +index eeec31f4d77de0f9622692eeb761392ed54b90ad..8907773fb6212f4e9cc184f87b840c91a0db67b6 100644 --- a/toolkit/mozapps/update/UpdateService.sys.mjs +++ b/toolkit/mozapps/update/UpdateService.sys.mjs @@ -3811,6 +3811,8 @@ export class UpdateService { @@ -2574,7 +2575,7 @@ index eeec31f4d7..8907773fb6 100644 } diff --git a/toolkit/toolkit.mozbuild b/toolkit/toolkit.mozbuild -index c50b7f3932..708e0d7559 100644 +index c50b7f3932e18da9fad4b673e353974a001e78c4..708e0d75594ddcd62276d4e08c4bd5c64d7f0698 100644 --- a/toolkit/toolkit.mozbuild +++ b/toolkit/toolkit.mozbuild @@ -152,6 +152,7 @@ if CONFIG["ENABLE_WEBDRIVER"]: @@ -2586,7 +2587,7 @@ index c50b7f3932..708e0d7559 100644 ] diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp -index 795fc8669c..46651bb0b5 100644 +index 795fc8669cc6f03a57139745f58963ffefe5aeff..46651bb0b53be9a522e1deb90140bf386a9f8b51 100644 --- a/toolkit/xre/nsAppRunner.cpp +++ b/toolkit/xre/nsAppRunner.cpp @@ -5633,7 +5633,10 @@ nsresult XREMain::XRE_mainRun() { @@ -2602,7 +2603,7 @@ index 795fc8669c..46651bb0b5 100644 NS_ENSURE_SUCCESS(rv, NS_ERROR_FAILURE); } diff --git a/toolkit/xre/nsWindowsWMain.cpp b/toolkit/xre/nsWindowsWMain.cpp -index 7eb9e11046..a8315d6dec 100644 +index 7eb9e1104682d4eb47060654f43a1efa8b2a6bb2..a8315d6decf654b5302bea5beeea34140c300ded 100644 --- a/toolkit/xre/nsWindowsWMain.cpp +++ b/toolkit/xre/nsWindowsWMain.cpp @@ -14,8 +14,10 @@ @@ -2637,7 +2638,7 @@ index 7eb9e11046..a8315d6dec 100644 // Only run this code if LauncherProcessWin.h was included beforehand, thus // signalling that the hosting process should support launcher mode. diff --git a/uriloader/base/nsDocLoader.cpp b/uriloader/base/nsDocLoader.cpp -index e5cc386651..e560ad4fef 100644 +index e5cc386651e192710b61858ab5625c97a02b92da..e560ad4fef232a26ce1e1b244f4ccea05f4aea71 100644 --- a/uriloader/base/nsDocLoader.cpp +++ b/uriloader/base/nsDocLoader.cpp @@ -812,6 +812,12 @@ void nsDocLoader::DocLoaderIsEmpty(bool aFlushLayout, @@ -2654,7 +2655,7 @@ index e5cc386651..e560ad4fef 100644 // nsDocumentViewer::LoadComplete that doesn't do various things // that are not relevant here because this wasn't an actual diff --git a/uriloader/exthandler/nsExternalHelperAppService.cpp b/uriloader/exthandler/nsExternalHelperAppService.cpp -index c4dc159180..20756dc916 100644 +index c4dc15918032a34d8be9f1cda94a9375466980f6..20756dc9166f9665d408cd007e9df55b5937b73c 100644 --- a/uriloader/exthandler/nsExternalHelperAppService.cpp +++ b/uriloader/exthandler/nsExternalHelperAppService.cpp @@ -112,6 +112,7 @@ @@ -2773,7 +2774,7 @@ index c4dc159180..20756dc916 100644 // OnStartRequest) mDialog = nullptr; diff --git a/uriloader/exthandler/nsExternalHelperAppService.h b/uriloader/exthandler/nsExternalHelperAppService.h -index 2dd4ff87bd..83e8a3d328 100644 +index 2dd4ff87bda3e0ba395cca168c42b37db1713ddf..83e8a3d328e325b3f50f593c9ea71692f9c7d401 100644 --- a/uriloader/exthandler/nsExternalHelperAppService.h +++ b/uriloader/exthandler/nsExternalHelperAppService.h @@ -258,6 +258,8 @@ class nsExternalHelperAppService : public nsIExternalHelperAppService, @@ -2796,7 +2797,7 @@ index 2dd4ff87bd..83e8a3d328 100644 * When we download a helper app, we are going to retarget all load * notifications into our own docloader and load group instead of diff --git a/uriloader/exthandler/nsIExternalHelperAppService.idl b/uriloader/exthandler/nsIExternalHelperAppService.idl -index 53ea934dd4..0b7b88c853 100644 +index 53ea934dd4876e4b491b724385c8fbf7d00ee6cd..0b7b88c853b21ce778d8e87fea0a2bfe839ad412 100644 --- a/uriloader/exthandler/nsIExternalHelperAppService.idl +++ b/uriloader/exthandler/nsIExternalHelperAppService.idl @@ -6,8 +6,11 @@ @@ -2839,7 +2840,7 @@ index 53ea934dd4..0b7b88c853 100644 /** diff --git a/widget/InProcessCompositorWidget.cpp b/widget/InProcessCompositorWidget.cpp -index 1c25e9d9a1..22cf67b0f6 100644 +index 1c25e9d9a101233f71e92288a0f93125b81ac1c5..22cf67b0f6e3ddd2b3ed725a314ba6a9896abd1c 100644 --- a/widget/InProcessCompositorWidget.cpp +++ b/widget/InProcessCompositorWidget.cpp @@ -4,7 +4,10 @@ @@ -2867,7 +2868,7 @@ index 1c25e9d9a1..22cf67b0f6 100644 } #endif diff --git a/widget/MouseEvents.h b/widget/MouseEvents.h -index c4e510441c..e34d797ee3 100644 +index c4e510441cf6329b2ad898034fbe39fa1a701ad4..e34d797ee3e3f2985e6d4472afce133e97a0caa4 100644 --- a/widget/MouseEvents.h +++ b/widget/MouseEvents.h @@ -363,6 +363,9 @@ class WidgetMouseEvent : public WidgetMouseEventBase, @@ -2889,10 +2890,10 @@ index c4e510441c..e34d797ee3 100644 mIgnoreCapturingContent = aEvent.mIgnoreCapturingContent; mClickEventPrevented = aEvent.mClickEventPrevented; diff --git a/widget/cocoa/NativeKeyBindings.mm b/widget/cocoa/NativeKeyBindings.mm -index e4bdf715e2..3554f91948 100644 +index e4bdf715e2fb899e97a5bfeb2e147127460d6047..3554f919480278b7353617481c7ce8050630a1aa 100644 --- a/widget/cocoa/NativeKeyBindings.mm +++ b/widget/cocoa/NativeKeyBindings.mm -@@ -528,6 +528,13 @@ void NativeKeyBindings::GetEditCommandsForTests( +@@ -528,6 +528,13 @@ break; case KEY_NAME_INDEX_ArrowLeft: if (aEvent.IsAlt()) { @@ -2906,7 +2907,7 @@ index e4bdf715e2..3554f91948 100644 break; } if (aEvent.IsMeta() || (aEvent.IsControl() && aEvent.IsShift())) { -@@ -550,6 +557,13 @@ void NativeKeyBindings::GetEditCommandsForTests( +@@ -550,6 +557,13 @@ break; case KEY_NAME_INDEX_ArrowRight: if (aEvent.IsAlt()) { @@ -2920,7 +2921,7 @@ index e4bdf715e2..3554f91948 100644 break; } if (aEvent.IsMeta() || (aEvent.IsControl() && aEvent.IsShift())) { -@@ -572,6 +586,10 @@ void NativeKeyBindings::GetEditCommandsForTests( +@@ -572,6 +586,10 @@ break; case KEY_NAME_INDEX_ArrowUp: if (aEvent.IsControl()) { @@ -2931,7 +2932,7 @@ index e4bdf715e2..3554f91948 100644 break; } if (aEvent.IsMeta()) { -@@ -582,7 +600,7 @@ void NativeKeyBindings::GetEditCommandsForTests( +@@ -582,7 +600,7 @@ !aEvent.IsShift() ? ToObjcSelectorPtr(@selector(moveToBeginningOfDocument:)) : ToObjcSelectorPtr( @@ -2940,7 +2941,7 @@ index e4bdf715e2..3554f91948 100644 aCommands); break; } -@@ -609,6 +627,10 @@ void NativeKeyBindings::GetEditCommandsForTests( +@@ -609,6 +627,10 @@ break; case KEY_NAME_INDEX_ArrowDown: if (aEvent.IsControl()) { @@ -2952,7 +2953,7 @@ index e4bdf715e2..3554f91948 100644 } if (aEvent.IsMeta()) { diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp -index ad56ab325b..6e636a3da1 100644 +index ad56ab325bb3b3c348259f852453eec1190d892b..272731c25d19e83a2da988ec3176e5227dc4da5b 100644 --- a/widget/gtk/nsFilePicker.cpp +++ b/widget/gtk/nsFilePicker.cpp @@ -21,6 +21,7 @@ @@ -2963,20 +2964,8 @@ index ad56ab325b..6e636a3da1 100644 #include "nsArrayEnumerator.h" #include "nsEnumeratorUtils.h" -@@ -415,6 +416,11 @@ nsFilePicker::Open(nsIFilePickerShownCallback* aCallback) { - return NS_ERROR_NOT_AVAILABLE; - } - -+ // Don't attempt to open a real file-picker in headless mode. -+ if (gfxPlatform::IsHeadless()) { -+ return NS_ERROR_NOT_AVAILABLE; -+ } -+ - NS_ConvertUTF16toUTF8 title(mTitle); - - GtkWindow* parent_widget = diff --git a/widget/headless/HeadlessCompositorWidget.cpp b/widget/headless/HeadlessCompositorWidget.cpp -index bb4ee9175e..747625e386 100644 +index bb4ee9175e66dc40de1871a7f91368fe309494a3..747625e3869882300bfbc18b184db5151dd90c1a 100644 --- a/widget/headless/HeadlessCompositorWidget.cpp +++ b/widget/headless/HeadlessCompositorWidget.cpp @@ -3,6 +3,7 @@ @@ -3081,7 +3070,7 @@ index bb4ee9175e..747625e386 100644 LayoutDeviceIntSize HeadlessCompositorWidget::GetClientSize() { diff --git a/widget/headless/HeadlessCompositorWidget.h b/widget/headless/HeadlessCompositorWidget.h -index facd2bc65a..d6dea95472 100644 +index facd2bc65afab8ec1aa322faa20a67464964dfb9..d6dea95472bec6006411753c3dfdab2e3659171f 100644 --- a/widget/headless/HeadlessCompositorWidget.h +++ b/widget/headless/HeadlessCompositorWidget.h @@ -6,6 +6,7 @@ @@ -3125,7 +3114,7 @@ index facd2bc65a..d6dea95472 100644 } // namespace widget diff --git a/widget/headless/HeadlessWidget.cpp b/widget/headless/HeadlessWidget.cpp -index b8b3f6a09f..8b9ea637e1 100644 +index b8b3f6a09f3fd480f67c28a2d3c6daa960946324..8b9ea637e18c404254ca8a72dabf860452699096 100644 --- a/widget/headless/HeadlessWidget.cpp +++ b/widget/headless/HeadlessWidget.cpp @@ -111,6 +111,8 @@ void HeadlessWidget::Destroy() { @@ -3153,7 +3142,7 @@ index b8b3f6a09f..8b9ea637e1 100644 } // namespace widget } // namespace mozilla diff --git a/widget/headless/HeadlessWidget.h b/widget/headless/HeadlessWidget.h -index f07f728449..daefaa8f58 100644 +index f07f7284495cf5e48409866aaef6fd4d529568be..daefaa8f58c3c8392ce229c814807bc5fff77dc7 100644 --- a/widget/headless/HeadlessWidget.h +++ b/widget/headless/HeadlessWidget.h @@ -136,6 +136,9 @@ class HeadlessWidget : public nsBaseWidget { @@ -3167,7 +3156,7 @@ index f07f728449..daefaa8f58 100644 ~HeadlessWidget(); bool mEnabled; diff --git a/widget/nsGUIEventIPC.h b/widget/nsGUIEventIPC.h -index a1f4816740..eac7fccf34 100644 +index a1f48167403f5bfb30a66809ec3e64bea468fa05..eac7fccf3493e162629918462294456e6ee6b6e1 100644 --- a/widget/nsGUIEventIPC.h +++ b/widget/nsGUIEventIPC.h @@ -244,6 +244,7 @@ struct ParamTraits { @@ -3187,7 +3176,7 @@ index a1f4816740..eac7fccf34 100644 } }; diff --git a/xpcom/reflect/xptinfo/xptinfo.h b/xpcom/reflect/xptinfo/xptinfo.h -index 787d30d881..ae1a0172c9 100644 +index 787d30d881adedd57d2025ca57bff4bc6c57e803..ae1a0172c960ab16919133485722d2ae0cdbcbd4 100644 --- a/xpcom/reflect/xptinfo/xptinfo.h +++ b/xpcom/reflect/xptinfo/xptinfo.h @@ -505,7 +505,7 @@ static_assert(sizeof(nsXPTMethodInfo) == 8, "wrong size"); diff --git a/patches/playwright/1-leak-fixes.patch b/patches/playwright/1-leak-fixes.patch index 9fc9c0b..ab7fc11 100644 --- a/patches/playwright/1-leak-fixes.patch +++ b/patches/playwright/1-leak-fixes.patch @@ -32,30 +32,6 @@ index e0cbb3f1f8..d7868e7ae0 100644 } AutoplayPolicy Navigator::GetAutoplayPolicy(AutoplayPolicyMediaType aType) { -diff --git a/layout/base/nsLayoutUtils.cpp b/layout/base/nsLayoutUtils.cpp -index 77d0de76f3..8d427db0a9 100644 ---- a/layout/base/nsLayoutUtils.cpp -+++ b/layout/base/nsLayoutUtils.cpp -@@ -709,9 +709,6 @@ bool nsLayoutUtils::AllowZoomingForDocument( - return false; - } - -- /* Playwright: disable zooming as we don't support meta viewport tag */ -- if (1 == 1) return false; -- - // True if we allow zooming for all documents on this platform, or if we are - // in RDM. - BrowsingContext* bc = aDocument->GetBrowsingContext(); -@@ -9713,9 +9710,6 @@ void nsLayoutUtils::ComputeSystemFont(nsFont* aSystemFont, - - /* static */ - bool nsLayoutUtils::ShouldHandleMetaViewport(const Document* aDocument) { -- /* Playwright: disable meta viewport handling since we don't require one */ -- if (1 == 1) return false; -- - BrowsingContext* bc = aDocument->GetBrowsingContext(); - return StaticPrefs::dom_meta_viewport_enabled() || (bc && bc->InRDMPane()); - } diff --git a/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.sys.mjs b/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.sys.mjs index 0eeb5924c4..8b975a8b11 100644 --- a/toolkit/components/enterprisepolicies/EnterprisePoliciesParent.sys.mjs diff --git a/settings/camoufox.cfg b/settings/camoufox.cfg index b8112c6..c39520c 100644 --- a/settings/camoufox.cfg +++ b/settings/camoufox.cfg @@ -516,6 +516,10 @@ defaultPref("geo.provider.testing", true); // THESE ARE NICHE PROPERTIES THAT ARE NICE TO HAVE // ================================================================= +// We never want to have interactive screen capture picker enabled in FF build. +pref("media.getdisplaymedia.screencapturekit.enabled", false); +pref("media.getdisplaymedia.screencapturekit.picker.enabled", false); + // Enable software-backed webgl. See https://phabricator.services.mozilla.com/D164016 defaultPref("webgl.forbid-software", false);