From b9d15034876d2ebe106a08da906a98fbb9da63b3 Mon Sep 17 00:00:00 2001 From: daijro Date: Sat, 17 Aug 2024 00:24:50 -0500 Subject: [PATCH] Fix viewport hijacking Do not allow Juggler to set its default viewport size if Camoufox set it first --- additions/juggler/TargetRegistry.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/additions/juggler/TargetRegistry.js b/additions/juggler/TargetRegistry.js index 8c23ff8..f2340d0 100644 --- a/additions/juggler/TargetRegistry.js +++ b/additions/juggler/TargetRegistry.js @@ -530,6 +530,19 @@ class PageTarget { // The "default size" (1) is only respected when the page is opened. // Otherwise, explicitly set page viewport prevales over browser context // default viewport. + + // Do not allow default viewport size if Camoufox set it first + if ( + !viewportSize && + this._browserContext.defaultViewportSize && ( + ChromeUtils.camouGetConfig("window.outerWidth") || + ChromeUtils.camouGetConfig("window.outerHeight") || + ChromeUtils.camouGetConfig("window.innerWidth") || + ChromeUtils.camouGetConfig("window.innerHeight")) + ) { + return; + } + const viewportSize = this._viewportSize || this._browserContext.defaultViewportSize; if (viewportSize) { const {width, height} = viewportSize;