From 4f23c1eba70f2300b5601c272b13c649e6381550 Mon Sep 17 00:00:00 2001 From: Peter Hedenskog Date: Mon, 12 Oct 2026 19:18:13 +0200 Subject: [PATCH] Block Chrome's push channel to mtalk.google.com Every Chrome start opens a long-lived connection to mtalk.google.com on port 5228 (GCM/FCM push), even with --disable-background-networking. The WebPageReplay rules only map ports 80 and 443, so the connection went to the real internet during measurements and added background network work to every run. Mapping the host to ^NOTFOUND makes the lookup fail inside Chrome without sending any packets. Assisted-by: Claude Opus 5.5 noreply@anthropic.com Change-Id: Ic3b2a96d077a5290909dcaaf2a9ce4b150d7d49c --- lib/chrome/webdriver/setupChromiumOptions.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/chrome/webdriver/setupChromiumOptions.js b/lib/chrome/webdriver/setupChromiumOptions.js index 7f355d1ab..7faf473aa 100644 --- a/lib/chrome/webdriver/setupChromiumOptions.js +++ b/lib/chrome/webdriver/setupChromiumOptions.js @@ -10,6 +10,7 @@ const log = getLogger('browsertime.chrome'); const CHROME_AMD_EDGE_INTERNAL_PHONE_HOME = [ 'MAP cache.pack.google.com 127.0.0.1', 'MAP clients1.google.com 127.0.0.1', + 'MAP mtalk.google.com ^NOTFOUND', 'MAP update.googleapis.com 127.0.0.1', 'MAP content-autofill.googleapis.com 127.0.0.1', 'MAP redirector.gvt1.com 127.0.0.1', @@ -147,7 +148,7 @@ export function setupChromiumOptions( } // If we are replaying with WebPageReplay else if (browserOptions.webPageReplayHostResolver) { addArgs( - `--host-resolver-rules= "MAP *:80 127.0.0.1:${browserOptions.webPageReplayHTTPPort}, MAP *:443 127.0.0.1:${browserOptions.webPageReplayHTTPSPort}, EXCLUDE localhost"` + `--host-resolver-rules= "MAP *:80 127.0.0.1:${browserOptions.webPageReplayHTTPPort}, MAP *:443 127.0.0.1:${browserOptions.webPageReplayHTTPSPort}, MAP mtalk.google.com ^NOTFOUND, EXCLUDE localhost"` ); } // If we do not use WebPageReplay but wanna block on domain else if (browserOptions.blockDomainsExcept) {