From 6553b9b08fbf8c394c4f2510d4be4b6940f68f87 Mon Sep 17 00:00:00 2001 From: Henrik Skupin Date: Wed, 6 Oct 2021 04:30:27 +0000 Subject: [PATCH] Bug 1601245 - [remote] Enable Puppeteer and CDP browser-chrome mochitests for Fission. r=webdriver-reviewers,jdescottes Differential Revision: https://phabricator.services.mozilla.com/D127524 --- remote/cdp/test/browser/browser.ini | 4 +++- remote/cdp/test/browser/component/browser.ini | 1 - remote/cdp/test/browser/dom/browser.ini | 4 +++- remote/cdp/test/browser/emulation/browser.ini | 4 +++- remote/cdp/test/browser/input/browser.ini | 4 +++- remote/cdp/test/browser/io/browser.ini | 4 +++- remote/cdp/test/browser/log/browser.ini | 4 +++- remote/cdp/test/browser/network/browser.ini | 4 +++- remote/cdp/test/browser/page/browser.ini | 4 +++- remote/cdp/test/browser/runtime/browser.ini | 4 +++- remote/cdp/test/browser/security/browser.ini | 4 +++- remote/cdp/test/browser/target/browser.ini | 4 +++- remote/mach_commands.py | 1 + remote/test/puppeteer/src/node/Launcher.ts | 7 +++++-- taskcluster/ci/source-test/remote.yml | 8 ++++---- 15 files changed, 43 insertions(+), 18 deletions(-) diff --git a/remote/cdp/test/browser/browser.ini b/remote/cdp/test/browser/browser.ini index 9e0bfec88b09..be743931ded4 100644 --- a/remote/cdp/test/browser/browser.ini +++ b/remote/cdp/test/browser/browser.ini @@ -1,7 +1,9 @@ [DEFAULT] tags = remote subsuite = remote -skip-if = fission # Bug 1600054: Make cdp Fission compatible +prefs = # Bug 1600054: Make CDP Fission compatible + fission.bfcacheInParent=false + fission.webContentIsolationStrategy=0 support-files = chrome-remote-interface.js head.js diff --git a/remote/cdp/test/browser/component/browser.ini b/remote/cdp/test/browser/component/browser.ini index 625276ce6869..bc060fe90f73 100644 --- a/remote/cdp/test/browser/component/browser.ini +++ b/remote/cdp/test/browser/component/browser.ini @@ -1,7 +1,6 @@ [DEFAULT] tags = remote subsuite = remote -skip-if = fission # Bug 1600054: Make cdp Fission compatible support-files = !/remote/cdp/test/browser/chrome-remote-interface.js !/remote/cdp/test/browser/head.js diff --git a/remote/cdp/test/browser/dom/browser.ini b/remote/cdp/test/browser/dom/browser.ini index 71c438349378..b9a48ce487df 100644 --- a/remote/cdp/test/browser/dom/browser.ini +++ b/remote/cdp/test/browser/dom/browser.ini @@ -1,7 +1,9 @@ [DEFAULT] tags = remote subsuite = remote -skip-if = fission # Bug 1600054: Make cdp Fission compatible +prefs = # Bug 1600054: Make CDP Fission compatible + fission.bfcacheInParent=false + fission.webContentIsolationStrategy=0 support-files = !/remote/cdp/test/browser/chrome-remote-interface.js !/remote/cdp/test/browser/head.js diff --git a/remote/cdp/test/browser/emulation/browser.ini b/remote/cdp/test/browser/emulation/browser.ini index 2cd025f552d6..da709e23ff39 100644 --- a/remote/cdp/test/browser/emulation/browser.ini +++ b/remote/cdp/test/browser/emulation/browser.ini @@ -1,7 +1,9 @@ [DEFAULT] tags = remote subsuite = remote -skip-if = fission # Bug 1600054: Make cdp Fission compatible +prefs = # Bug 1600054: Make CDP Fission compatible + fission.bfcacheInParent=false + fission.webContentIsolationStrategy=0 support-files = !/remote/cdp/test/browser/chrome-remote-interface.js !/remote/cdp/test/browser/head.js diff --git a/remote/cdp/test/browser/input/browser.ini b/remote/cdp/test/browser/input/browser.ini index bd16a09d4ad0..6357e8d091d3 100644 --- a/remote/cdp/test/browser/input/browser.ini +++ b/remote/cdp/test/browser/input/browser.ini @@ -1,7 +1,9 @@ [DEFAULT] tags = remote subsuite = remote -skip-if = fission # Bug 1600054: Make cdp Fission compatible +prefs = # Bug 1600054: Make CDP Fission compatible + fission.bfcacheInParent=false + fission.webContentIsolationStrategy=0 support-files = !/remote/cdp/test/browser/chrome-remote-interface.js !/remote/cdp/test/browser/head.js diff --git a/remote/cdp/test/browser/io/browser.ini b/remote/cdp/test/browser/io/browser.ini index a0237b0d0ffc..193e7c9b0264 100644 --- a/remote/cdp/test/browser/io/browser.ini +++ b/remote/cdp/test/browser/io/browser.ini @@ -1,7 +1,9 @@ [DEFAULT] tags = remote subsuite = remote -skip-if = fission # Bug 1600054: Make cdp Fission compatible +prefs = # Bug 1600054: Make CDP Fission compatible + fission.bfcacheInParent=false + fission.webContentIsolationStrategy=0 support-files = !/remote/cdp/test/browser/chrome-remote-interface.js !/remote/cdp/test/browser/head.js diff --git a/remote/cdp/test/browser/log/browser.ini b/remote/cdp/test/browser/log/browser.ini index 1063bdc3c647..cfb84f617cab 100644 --- a/remote/cdp/test/browser/log/browser.ini +++ b/remote/cdp/test/browser/log/browser.ini @@ -1,7 +1,9 @@ [DEFAULT] tags = remote subsuite = remote -skip-if = fission # Bug 1600054: Make cdp Fission compatible +prefs = # Bug 1600054: Make CDP Fission compatible + fission.bfcacheInParent=false + fission.webContentIsolationStrategy=0 support-files = !/remote/cdp/test/browser/chrome-remote-interface.js !/remote/cdp/test/browser/head.js diff --git a/remote/cdp/test/browser/network/browser.ini b/remote/cdp/test/browser/network/browser.ini index 34716108b54c..c19402cc6be9 100644 --- a/remote/cdp/test/browser/network/browser.ini +++ b/remote/cdp/test/browser/network/browser.ini @@ -1,7 +1,9 @@ [DEFAULT] tags = remote subsuite = remote -skip-if = fission # Bug 1600054: Make cdp Fission compatible +prefs = # Bug 1600054: Make CDP Fission compatible + fission.bfcacheInParent=false + fission.webContentIsolationStrategy=0 support-files = !/remote/cdp/test/browser/chrome-remote-interface.js !/remote/cdp/test/browser/head.js diff --git a/remote/cdp/test/browser/page/browser.ini b/remote/cdp/test/browser/page/browser.ini index 988ffceda2cd..5a25a7d561e6 100644 --- a/remote/cdp/test/browser/page/browser.ini +++ b/remote/cdp/test/browser/page/browser.ini @@ -1,7 +1,9 @@ [DEFAULT] tags = remote subsuite = remote -skip-if = fission # Bug 1600054: Make cdp Fission compatible +prefs = # Bug 1600054: Make CDP Fission compatible + fission.bfcacheInParent=false + fission.webContentIsolationStrategy=0 support-files = !/remote/cdp/test/browser/chrome-remote-interface.js !/remote/cdp/test/browser/head.js diff --git a/remote/cdp/test/browser/runtime/browser.ini b/remote/cdp/test/browser/runtime/browser.ini index 3571e49ebbd4..af08173154ac 100644 --- a/remote/cdp/test/browser/runtime/browser.ini +++ b/remote/cdp/test/browser/runtime/browser.ini @@ -1,7 +1,9 @@ [DEFAULT] tags = remote subsuite = remote -skip-if = fission # Bug 1600054: Make cdp Fission compatible +prefs = # Bug 1600054: Make CDP Fission compatible + fission.bfcacheInParent=false + fission.webContentIsolationStrategy=0 support-files = !/remote/cdp/test/browser/chrome-remote-interface.js !/remote/cdp/test/browser/head.js diff --git a/remote/cdp/test/browser/security/browser.ini b/remote/cdp/test/browser/security/browser.ini index 9bda49e43874..e477f1508bfe 100644 --- a/remote/cdp/test/browser/security/browser.ini +++ b/remote/cdp/test/browser/security/browser.ini @@ -1,7 +1,9 @@ [DEFAULT] tags = remote subsuite = remote -skip-if = fission # Bug 1600054: Make cdp Fission compatible +prefs = # Bug 1600054: Make CDP Fission compatible + fission.bfcacheInParent=false + fission.webContentIsolationStrategy=0 support-files = !/remote/cdp/test/browser/chrome-remote-interface.js !/remote/cdp/test/browser/head.js diff --git a/remote/cdp/test/browser/target/browser.ini b/remote/cdp/test/browser/target/browser.ini index c354c6e3cda6..9bf5c7192dd6 100644 --- a/remote/cdp/test/browser/target/browser.ini +++ b/remote/cdp/test/browser/target/browser.ini @@ -1,7 +1,9 @@ [DEFAULT] tags = remote subsuite = remote -skip-if = fission # Bug 1600054: Make cdp Fission compatible +prefs = # Bug 1600054: Make CDP Fission compatible + fission.bfcacheInParent=false + fission.webContentIsolationStrategy=0 support-files = !/remote/cdp/test/browser/chrome-remote-interface.js !/remote/cdp/test/browser/head.js diff --git a/remote/mach_commands.py b/remote/mach_commands.py index 7b0933129e78..0dc1230e3c7c 100644 --- a/remote/mach_commands.py +++ b/remote/mach_commands.py @@ -454,6 +454,7 @@ class PuppeteerRunner(MozbuildObject): prefs = {} for k, v in params.get("extra_prefs", {}).items(): + print("Using extra preference: {}={}".format(k, v)) prefs[k] = mozprofile.Preferences.cast(v) if prefs: diff --git a/remote/test/puppeteer/src/node/Launcher.ts b/remote/test/puppeteer/src/node/Launcher.ts index 669d04d7ad08..51968459c2ca 100644 --- a/remote/test/puppeteer/src/node/Launcher.ts +++ b/remote/test/puppeteer/src/node/Launcher.ts @@ -494,8 +494,11 @@ class FirefoxLauncher implements ProductLauncher { // Make sure opening about:addons will not hit the network 'extensions.webservice.discoverURL': `http://${server}/dummy/discoveryURL`, - // Force disable Fission until the Remote Agent is compatible - 'fission.autostart': false, + // Temporarily force disable BFCache in parent (https://bit.ly/bug-1732263) + 'fission.bfcacheInParent': false, + + // Force all web content to use a single content process + 'fission.webContentIsolationStrategy': 0, // Allow the application to have focus even it runs in the background 'focusmanager.testmode': true, diff --git a/taskcluster/ci/source-test/remote.yml b/taskcluster/ci/source-test/remote.yml index 2c3b02ae2751..60fdfa9eefcf 100644 --- a/taskcluster/ci/source-test/remote.yml +++ b/taskcluster/ci/source-test/remote.yml @@ -39,7 +39,7 @@ puppeteer: treeherder: symbol: remote(pup) tier: 1 - run: + run: # Bug 1651542: Use screenshot feature to warm-up the font cache before the actual test using: run-task command: > cd $GECKO_PATH/ && @@ -47,13 +47,13 @@ puppeteer: ./mach puppeteer-test --ci -vv --binary $MOZ_FETCHES_DIR/firefox/firefox --headless --write-results /builds/worker/results.json --log-tbpl - --log-errorsummary /builds/worker/pup_errorsummary.json --log-raw /builds/worker/pup_raw.log puppeteer-fis: - description: Puppeteer tests against Firefox CDP-based remote protocol with Fission (site isolation) turned on - run-on-projects: [] + description: Puppeteer tests against Firefox CDP-based remote protocol (Fission) treeherder: symbol: remote(pup-fis) tier: 2 - run: + run: # Bug 1651542: Use screenshot feature to warm-up the font cache before the actual test using: run-task command: > cd $GECKO_PATH/ && + $MOZ_FETCHES_DIR/firefox/firefox --screenshot http://example.org && ./mach puppeteer-test --ci -vv --binary $MOZ_FETCHES_DIR/firefox/firefox --headless --enable-fission --write-results /builds/worker/results.json --log-tbpl - --log-errorsummary /builds/worker/pup_errorsummary.json --log-raw /builds/worker/pup_raw.log