From 4c9408176712475d0fe20bdd7e31807c3fe97060 Mon Sep 17 00:00:00 2001 From: Manoj-Katta Date: Fri, 17 Apr 2026 11:19:58 +0530 Subject: [PATCH 1/4] chore: upgrade Chromium from v126 to v143 for asset discovery Upgrade bundled Chromium from v126.0.6478.184 to v143.0.7499.169 to match the renderer browser version. Update sec-ch-ua header from v123 to v143 in direct font request headers. PPLT-4214 Co-Authored-By: Claude Opus 4.6 (1M context) --- packages/core/src/install.js | 12 ++++++------ packages/core/src/network.js | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/core/src/install.js b/packages/core/src/install.js index ac87c89bd..5bb788352 100644 --- a/packages/core/src/install.js +++ b/packages/core/src/install.js @@ -175,13 +175,13 @@ export function chromium({ }); } -// default chromium revisions corresponds to v126.0.6478.184 +// default chromium revisions corresponds to v143.0.7499.169 chromium.revisions = { - linux: '1300309', - win64: '1300297', - win32: '1300295', - darwin: '1300293', - darwinArm: '1300314' + linux: '1536366', + win64: '1536376', + win32: '1536377', + darwin: '1536380', + darwinArm: '1536376' }; // export the namespace by default diff --git a/packages/core/src/network.js b/packages/core/src/network.js index dba250149..e19d6e3b4 100644 --- a/packages/core/src/network.js +++ b/packages/core/src/network.js @@ -558,7 +558,7 @@ async function makeDirectRequest(network, request, session) { 'sec-fetch-site': 'same-origin', 'sec-fetch-mode': 'cors', 'sec-fetch-dest': 'font', - 'sec-ch-ua': '"Chromium";v="123", "Google Chrome";v="123", "Not?A_Brand";v="99"', + 'sec-ch-ua': '"Chromium";v="143", "Google Chrome";v="143", "Not?A_Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': '"macOS"', 'sec-fetch-user': '?1', From c3b1f1636c3b323efc25ff47ac0890ab354d0603 Mon Sep 17 00:00:00 2001 From: Manoj-Katta Date: Sun, 19 Apr 2026 12:46:47 +0530 Subject: [PATCH 2/4] test(core): ignore favicon.ico in test server request log Chrome >=128 new headless auto-requests /favicon.ico on page load, breaking discovery tests that asserted exact request counts. Filter at the helper level so all tests benefit without per-assertion churn. --- packages/core/test/helpers/server.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/core/test/helpers/server.js b/packages/core/test/helpers/server.js index ad8d0bdf0..0a1cfef9f 100644 --- a/packages/core/test/helpers/server.js +++ b/packages/core/test/helpers/server.js @@ -28,7 +28,11 @@ export function createTestServer({ default: defaultReply, ...replies }, port = 8 server.route(async (req, res, next) => { let pathname = req.url.pathname; if (req.url.search) pathname += req.url.search; - server.requests.push(req.body ? [pathname, req.body, req.headers] : [pathname, req.headers]); + // skip favicon.ico — Chrome >=128 new headless auto-requests it, but it's + // not part of any test's asset graph. Filter here to avoid per-test churn. + if (req.url.pathname !== '/favicon.ico') { + server.requests.push(req.body ? [pathname, req.body, req.headers] : [pathname, req.headers]); + } let reply = replies[pathname] || defaultReply; return reply ? await reply(req, res) : next(); }); From 319744ff4a532e533400de16b1fe9b55765e09e0 Mon Sep 17 00:00:00 2001 From: Manoj-Katta Date: Sun, 19 Apr 2026 13:20:51 +0530 Subject: [PATCH 3/4] fix(core): disable site isolation for Chrome 143 new headless Chrome >=128 new headless enforces site isolation via IsolateOrigins and site-per-process, putting cross-origin sub-resources and worker fetches into separate renderer processes. The existing --disable-site-isolation-trials flag only covers opt-in trials and no longer keeps everything in one renderer. Extend the existing --disable-features list with IsolateOrigins and site-per-process so the main page's Fetch.enable / Network.enable listeners continue to see cross-origin and worker traffic, matching the v126 old-headless behavior Percy relies on. Also add HttpsFirstBalancedModeAutoEnable to prevent new headless from blocking HTTP asset discovery with ERR_BLOCKED_BY_CLIENT. --- packages/core/src/browser.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/core/src/browser.js b/packages/core/src/browser.js index 74f3eade3..c84731727 100644 --- a/packages/core/src/browser.js +++ b/packages/core/src/browser.js @@ -20,8 +20,10 @@ export class Browser extends EventEmitter { #lastid = 0; args = [ - // disable the translate popup and optimization downloads - '--disable-features=Translate,OptimizationGuideModelDownloading', + // disable the translate popup, optimization downloads, baseline site + // isolation (so cross-origin sub-resources and worker fetches stay in + // the main renderer for interception), and HTTPS-first navigation blocking + '--disable-features=Translate,OptimizationGuideModelDownloading,IsolateOrigins,site-per-process,HttpsFirstBalancedModeAutoEnable', // disable several subsystems which run network requests in the background '--disable-background-networking', // disable task throttling of timer tasks from background pages From 1b7f936542b7b9745f4bb6a940d99a3daebea89e Mon Sep 17 00:00:00 2001 From: Manoj-Katta Date: Mon, 20 Apr 2026 14:43:11 +0530 Subject: [PATCH 4/4] chore(ci): bump cache-key for Chromium v143 upgrade Invalidates actions/cache entries that still contain the old v126 Chromium binary so CI downloads the new v143 revisions fresh. --- .github/.cache-key | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/.cache-key b/.github/.cache-key index b25300ecf..d05221f2f 100644 --- a/.github/.cache-key +++ b/.github/.cache-key @@ -6,5 +6,5 @@ ; ; / \ _____________/_ __ \_____________ -Times we have broken CI: 3 +Times we have broken CI: 4 Times Windows has broken CI: 99+