diff --git a/browser_patches/firefox-beta/BUILD_NUMBER b/browser_patches/firefox-beta/BUILD_NUMBER index 946d188523..a64f43ae8a 100644 --- a/browser_patches/firefox-beta/BUILD_NUMBER +++ b/browser_patches/firefox-beta/BUILD_NUMBER @@ -1,2 +1,2 @@ -1282 -Changed: joel.einbinder@gmail.com Wed 25 Aug 2021 08:16:37 AM PDT +1283 +Changed: joel.einbinder@gmail.com Wed 25 Aug 2021 08:42:49 AM PDT diff --git a/browser_patches/firefox-beta/juggler/TargetRegistry.js b/browser_patches/firefox-beta/juggler/TargetRegistry.js index 84228109f4..d8f5dbbc89 100644 --- a/browser_patches/firefox-beta/juggler/TargetRegistry.js +++ b/browser_patches/firefox-beta/juggler/TargetRegistry.js @@ -169,6 +169,7 @@ class TargetRegistry { throw new Error(`Internal error: cannot find context for userContextId=${userContextId}`); const target = new PageTarget(this, window, tab, browserContext, openerTarget); target.updateUserAgent(); + target.updatePlatform(); target.updateJavaScriptDisabled(); target.updateTouchOverride(); target.updateColorSchemeOverride(); @@ -406,6 +407,10 @@ class PageTarget { this._linkedBrowser.browsingContext.customUserAgent = this._browserContext.defaultUserAgent; } + updatePlatform() { + this._linkedBrowser.browsingContext.customPlatform = this._browserContext.defaultPlatform; + } + updateJavaScriptDisabled() { this._linkedBrowser.browsingContext.allowJavascript = !this._browserContext.javaScriptDisabled; } @@ -695,6 +700,7 @@ class BrowserContext { this.defaultViewportSize = undefined; this.deviceScaleFactor = undefined; this.defaultUserAgent = null; + this.defaultPlatform = null; this.javaScriptDisabled = false; this.touchOverride = false; this.colorScheme = 'none'; @@ -773,6 +779,12 @@ class BrowserContext { page.updateUserAgent(); } + setDefaultPlatform(platform) { + this.defaultPlatform = platform; + for (const page of this.pages) + page.updatePlatform(); + } + setJavaScriptDisabled(javaScriptDisabled) { this.javaScriptDisabled = javaScriptDisabled; for (const page of this.pages) diff --git a/browser_patches/firefox-beta/juggler/protocol/BrowserHandler.js b/browser_patches/firefox-beta/juggler/protocol/BrowserHandler.js index accad571a7..cbc1953fbe 100644 --- a/browser_patches/firefox-beta/juggler/protocol/BrowserHandler.js +++ b/browser_patches/firefox-beta/juggler/protocol/BrowserHandler.js @@ -221,6 +221,10 @@ class BrowserHandler { await this._targetRegistry.browserContextForId(browserContextId).setDefaultUserAgent(userAgent); } + async ['Browser.setPlatformOverride']({browserContextId, platform}) { + await this._targetRegistry.browserContextForId(browserContextId).setDefaultPlatform(platform); + } + async ['Browser.setBypassCSP']({browserContextId, bypassCSP}) { await this._targetRegistry.browserContextForId(browserContextId).applySetting('bypassCSP', nullToUndefined(bypassCSP)); } diff --git a/browser_patches/firefox-beta/juggler/protocol/Protocol.js b/browser_patches/firefox-beta/juggler/protocol/Protocol.js index 21421574f7..1efc2c8f0a 100644 --- a/browser_patches/firefox-beta/juggler/protocol/Protocol.js +++ b/browser_patches/firefox-beta/juggler/protocol/Protocol.js @@ -327,6 +327,12 @@ const Browser = { userAgent: t.Nullable(t.String), } }, + 'setPlatformOverride': { + params: { + browserContextId: t.Optional(t.String), + platform: t.Nullable(t.String), + } + }, 'setBypassCSP': { params: { browserContextId: t.Optional(t.String), diff --git a/browser_patches/firefox/BUILD_NUMBER b/browser_patches/firefox/BUILD_NUMBER index 026b2f0172..c7950901a1 100644 --- a/browser_patches/firefox/BUILD_NUMBER +++ b/browser_patches/firefox/BUILD_NUMBER @@ -1,2 +1,2 @@ -1287 -Changed: joel.einbinder@gmail.com Wed 25 Aug 2021 08:15:20 AM PDT +1288 +Changed: joel.einbinder@gmail.com Wed 25 Aug 2021 08:41:36 AM PDT diff --git a/browser_patches/firefox/juggler/TargetRegistry.js b/browser_patches/firefox/juggler/TargetRegistry.js index 84228109f4..d8f5dbbc89 100644 --- a/browser_patches/firefox/juggler/TargetRegistry.js +++ b/browser_patches/firefox/juggler/TargetRegistry.js @@ -169,6 +169,7 @@ class TargetRegistry { throw new Error(`Internal error: cannot find context for userContextId=${userContextId}`); const target = new PageTarget(this, window, tab, browserContext, openerTarget); target.updateUserAgent(); + target.updatePlatform(); target.updateJavaScriptDisabled(); target.updateTouchOverride(); target.updateColorSchemeOverride(); @@ -406,6 +407,10 @@ class PageTarget { this._linkedBrowser.browsingContext.customUserAgent = this._browserContext.defaultUserAgent; } + updatePlatform() { + this._linkedBrowser.browsingContext.customPlatform = this._browserContext.defaultPlatform; + } + updateJavaScriptDisabled() { this._linkedBrowser.browsingContext.allowJavascript = !this._browserContext.javaScriptDisabled; } @@ -695,6 +700,7 @@ class BrowserContext { this.defaultViewportSize = undefined; this.deviceScaleFactor = undefined; this.defaultUserAgent = null; + this.defaultPlatform = null; this.javaScriptDisabled = false; this.touchOverride = false; this.colorScheme = 'none'; @@ -773,6 +779,12 @@ class BrowserContext { page.updateUserAgent(); } + setDefaultPlatform(platform) { + this.defaultPlatform = platform; + for (const page of this.pages) + page.updatePlatform(); + } + setJavaScriptDisabled(javaScriptDisabled) { this.javaScriptDisabled = javaScriptDisabled; for (const page of this.pages) diff --git a/browser_patches/firefox/juggler/protocol/BrowserHandler.js b/browser_patches/firefox/juggler/protocol/BrowserHandler.js index accad571a7..cbc1953fbe 100644 --- a/browser_patches/firefox/juggler/protocol/BrowserHandler.js +++ b/browser_patches/firefox/juggler/protocol/BrowserHandler.js @@ -221,6 +221,10 @@ class BrowserHandler { await this._targetRegistry.browserContextForId(browserContextId).setDefaultUserAgent(userAgent); } + async ['Browser.setPlatformOverride']({browserContextId, platform}) { + await this._targetRegistry.browserContextForId(browserContextId).setDefaultPlatform(platform); + } + async ['Browser.setBypassCSP']({browserContextId, bypassCSP}) { await this._targetRegistry.browserContextForId(browserContextId).applySetting('bypassCSP', nullToUndefined(bypassCSP)); } diff --git a/browser_patches/firefox/juggler/protocol/Protocol.js b/browser_patches/firefox/juggler/protocol/Protocol.js index 21421574f7..1efc2c8f0a 100644 --- a/browser_patches/firefox/juggler/protocol/Protocol.js +++ b/browser_patches/firefox/juggler/protocol/Protocol.js @@ -327,6 +327,12 @@ const Browser = { userAgent: t.Nullable(t.String), } }, + 'setPlatformOverride': { + params: { + browserContextId: t.Optional(t.String), + platform: t.Nullable(t.String), + } + }, 'setBypassCSP': { params: { browserContextId: t.Optional(t.String),