From 43cdd06478b35d1f6fc1329647331de3a3d27cf7 Mon Sep 17 00:00:00 2001 From: chloeYue Date: Thu, 4 Dec 2025 14:26:06 +0100 Subject: [PATCH 1/5] privacy max e2e --- .github/CODEOWNERS | 21 +- .../onboarding-maximum-privacy.spec.ts | 252 ++++++++++++++++++ .../privacy-max-allowlist-onboarding.json | 24 ++ 3 files changed, 287 insertions(+), 10 deletions(-) create mode 100644 test/e2e/tests/privacy/onboarding-maximum-privacy.spec.ts create mode 100644 test/e2e/tests/privacy/privacy-max-allowlist-onboarding.json diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 08c69c7b9724..bd96f3f08d28 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -166,16 +166,17 @@ app/scripts/lib/smart-transaction @MetaMask/transactions shared/lib/multichain/addresses/* @MetaMask/new-networks # QA Team - E2E Framework -test/e2e/page-objects/ @MetaMask/qa -test/e2e/seeder/ @MetaMask/qa -test/e2e/default-fixture.js @MetaMask/qa -test/e2e/fixture-builder.js @MetaMask/qa -test/e2e/fixture-server.js @MetaMask/qa -test/e2e/helpers.js @MetaMask/qa -test/e2e/mock-e2e-allowlist.js @MetaMask/qa -test/e2e/mock-e2e.js @MetaMask/qa -test/e2e/tests/settings/state-logs-helpers.ts @MetaMask/qa -test/e2e/tests/settings/state-logs.json @MetaMask/qa @MetaMask/extension-privacy-reviewers +test/e2e/page-objects/ @MetaMask/qa +test/e2e/seeder/ @MetaMask/qa +test/e2e/default-fixture.js @MetaMask/qa +test/e2e/fixture-builder.js @MetaMask/qa +test/e2e/fixture-server.js @MetaMask/qa +test/e2e/helpers.js @MetaMask/qa +test/e2e/mock-e2e-allowlist.js @MetaMask/qa +test/e2e/mock-e2e.js @MetaMask/qa +test/e2e/tests/settings/state-logs-helpers.ts @MetaMask/qa +test/e2e/tests/settings/state-logs.json @MetaMask/qa @MetaMask/extension-privacy-reviewers +test/e2e/tests/privacy/privacy-max-allowlist-onboarding.json @MetaMask/qa @MetaMask/extension-platform # Wallet Integrations app/scripts/lib/rpc-method-middleware @MetaMask/wallet-integrations diff --git a/test/e2e/tests/privacy/onboarding-maximum-privacy.spec.ts b/test/e2e/tests/privacy/onboarding-maximum-privacy.spec.ts new file mode 100644 index 000000000000..b676bffe6b43 --- /dev/null +++ b/test/e2e/tests/privacy/onboarding-maximum-privacy.spec.ts @@ -0,0 +1,252 @@ +/** + * This test verifies that with maximum privacy settings during onboarding enabled, + * only allowlisted network calls are made during the onboarding process. + * + * It checks two critical phases during onboarding: + * 1. During onboarding (before clicking "Done" on complete onboarding screen) + * 2. After completing onboarding (on homepage without any user action) + * + * The allowlist is defined in privacy-max-allowlist-onboarding.json + */ +import { strict as assert } from 'assert'; +import { promises as fs } from 'fs'; +import path from 'path'; +import { Mockttp, MockedEndpoint } from 'mockttp'; +import { withFixtures, veryLargeDelayMs } from '../../helpers'; +import { FEATURE_FLAGS_API_MOCK_RESULT } from '../../../data/mock-data'; +import FixtureBuilder from '../../fixtures/fixture-builder'; +import HomePage from '../../page-objects/pages/home/homepage'; +import OnboardingCompletePage from '../../page-objects/pages/onboarding/onboarding-complete-page'; +import OnboardingPrivacySettingsPage from '../../page-objects/pages/onboarding/onboarding-privacy-settings-page'; +import { + importSRPOnboardingFlow, + createNewWalletOnboardingFlow, + handleSidepanelPostOnboarding, +} from '../../page-objects/flows/onboarding.flow'; + +const ALLOWLIST_FILE_NAME = 'privacy-max-allowlist-onboarding.json'; + +async function mockApis( + mockServer: Mockttp, +): Promise { + return [ + // Mock Infura RPC endpoints + await mockServer + .forPost(/https:\/\/.*\.infura\.io\/v3\/.*/) + .thenCallback(() => ({ + statusCode: 200, + json: { + jsonrpc: '2.0', + id: '1', + result: '0x1', + }, + })), + await mockServer + .forGet('https://bridge.api.cx.metamask.io/featureFlags') + .thenCallback(() => ({ + statusCode: 200, + json: FEATURE_FLAGS_API_MOCK_RESULT, + })), + ]; +} + +interface OnboardingAllowlist { + duringOnboarding: string[]; + untilOnboardingComplete: string[]; +} + +async function loadAllowlist(): Promise { + const allowlistPath = path.join(__dirname, ALLOWLIST_FILE_NAME); + const allowlistRaw = await fs.readFile(allowlistPath, 'utf8'); + const allowlist: OnboardingAllowlist = JSON.parse(allowlistRaw); + console.log('Privacy maximum onboarding allowlist loaded'); + return allowlist; +} + +describe('Onboarding with Maximum Privacy Settings', function () { + it('should only make allowlisted network calls during and after import wallet onboarding', async function () { + const allowlist = await loadAllowlist(); + const capturedCalls = new Set(); + + await withFixtures( + { + fixtures: new FixtureBuilder({ onboarding: true }).build(), + title: this.test?.fullTitle(), + testSpecificMock: mockApis, + }, + async ({ driver, mockServer }) => { + // Listen to all network requests and capture them + mockServer.on( + 'request-initiated', + (request: { headers: { host: string }; url: string }) => { + const host = request.headers.host; + if (host) { + capturedCalls.add(host); + } + }, + ); + + // Complete onboarding up to the complete page + await importSRPOnboardingFlow({ driver }); + + const onboardingCompletePage = new OnboardingCompletePage(driver); + await onboardingCompletePage.checkPageIsLoaded(); + await onboardingCompletePage.checkWalletReadyMessageIsDisplayed(); + + // Navigate to privacy settings and toggle them OFF (maximum privacy) + await onboardingCompletePage.navigateToDefaultPrivacySettings(); + + const onboardingPrivacySettingsPage = + new OnboardingPrivacySettingsPage(driver); + await onboardingPrivacySettingsPage.checkPageIsLoaded(); + await onboardingPrivacySettingsPage.toggleBasicFunctionalitySettings(); + await onboardingPrivacySettingsPage.toggleAssetsSettings(); + await onboardingPrivacySettingsPage.navigateBackToOnboardingCompletePage(); + + await onboardingCompletePage.checkPageIsLoaded(); + + // Intended delay to ensure we cover at least 1 polling loop for network requests + await driver.delay(veryLargeDelayMs); + + // Check Phase 1: All calls until now should be in duringOnboarding allowlist + const unexpectedCallsDuringOnboarding = [...capturedCalls].filter( + (host) => !allowlist.duringOnboarding.includes(host), + ); + + console.log('Checking calls until complete onboarding screen'); + console.log('Total calls made during onboarding:', capturedCalls.size); + console.log('Calls made during onboarding:', JSON.stringify([...capturedCalls].sort(), null, 2)); + + // Assert no unexpected hosts during onboarding + assert.equal( + unexpectedCallsDuringOnboarding.length, + 0, + `Unexpected network calls during onboarding:\n${unexpectedCallsDuringOnboarding + .map((host) => ` - ${host}`) + .join('\n')}\n\nThese hosts are NOT in the duringOnboarding allowlist.\nIf these are expected, add them to privacy-max-allowlist-onboarding.json`, + ); + + // Complete onboarding and go to homepage + await onboardingCompletePage.completeOnboarding(); + await handleSidepanelPostOnboarding(driver); + + const homePage = new HomePage(driver); + await homePage.checkPageIsLoaded(); + + // Intended delay to ensure we cover at least 1 polling loop for network requests + await driver.delay(veryLargeDelayMs); + + // Check Phase 2: All calls (including previous ones) should be in untilOnboardingComplete allowlist + const unexpectedCallsAfterOnboardingComplete = [...capturedCalls].filter( + (host) => !allowlist.untilOnboardingComplete.includes(host), + ); + + console.log('Checking calls until homepage'); + console.log('Total calls made until landing on homepage:', capturedCalls.size); + console.log('Calls made until landing on homepage:', JSON.stringify([...capturedCalls].sort(), null, 2)); + + // Assert no unexpected hosts after onboarding complete + assert.equal( + unexpectedCallsAfterOnboardingComplete.length, + 0, + `Unexpected network calls after onboarding complete:\n${unexpectedCallsAfterOnboardingComplete + .map((host) => ` - ${host}`) + .join('\n')}\n\nThese hosts are NOT in the untilOnboardingComplete allowlist.\nIf these are expected, add them to privacy-max-allowlist-onboarding.json`, + ); + }, + ); + }); + + it('should only make allowlisted network calls during and after create new wallet onboarding', async function () { + const allowlist = await loadAllowlist(); + const capturedCalls = new Set(); + + await withFixtures( + { + fixtures: new FixtureBuilder({ onboarding: true }).build(), + title: this.test?.fullTitle(), + testSpecificMock: mockApis, + }, + async ({ driver, mockServer }) => { + // Listen to all network requests and capture them + mockServer.on( + 'request-initiated', + (request: { headers: { host: string }; url: string }) => { + const host = request.headers.host; + if (host) { + capturedCalls.add(host); + } + }, + ); + + // Complete onboarding up to the complete page + await createNewWalletOnboardingFlow({ driver }); + + const onboardingCompletePage = new OnboardingCompletePage(driver); + await onboardingCompletePage.checkPageIsLoaded(); + await onboardingCompletePage.checkWalletReadyMessageIsDisplayed(); + + // Navigate to privacy settings and toggle them OFF (maximum privacy) + await onboardingCompletePage.navigateToDefaultPrivacySettings(); + + const onboardingPrivacySettingsPage = + new OnboardingPrivacySettingsPage(driver); + await onboardingPrivacySettingsPage.checkPageIsLoaded(); + await onboardingPrivacySettingsPage.toggleBasicFunctionalitySettings(); + await onboardingPrivacySettingsPage.toggleAssetsSettings(); + await onboardingPrivacySettingsPage.navigateBackToOnboardingCompletePage(); + + await onboardingCompletePage.checkPageIsLoaded(); + + // Intended delay to ensure we cover at least 1 polling loop for network requests + await driver.delay(veryLargeDelayMs); + + // Check Phase 1: All calls until now should be in duringOnboarding allowlist + const unexpectedCallsDuringOnboarding = [...capturedCalls].filter( + (host) => !allowlist.duringOnboarding.includes(host), + ); + + console.log('Checking calls until complete onboarding screen'); + console.log('Total calls made during onboarding:', capturedCalls.size); + console.log('Calls made during onboarding:', JSON.stringify([...capturedCalls].sort(), null, 2)); + + // Assert no unexpected hosts during onboarding + assert.equal( + unexpectedCallsDuringOnboarding.length, + 0, + `Unexpected network calls during onboarding:\n${unexpectedCallsDuringOnboarding + .map((host) => ` - ${host}`) + .join('\n')}\n\nThese hosts are NOT in the duringOnboarding allowlist.\nIf these are expected, add them to privacy-max-allowlist-onboarding.json`, + ); + + // Complete onboarding and go to homepage + await onboardingCompletePage.completeOnboarding(); + await handleSidepanelPostOnboarding(driver); + + const homePage = new HomePage(driver); + await homePage.checkPageIsLoaded(); + + // Intended delay to ensure we cover at least 1 polling loop for network requests + await driver.delay(veryLargeDelayMs); + + // Check Phase 2: All calls (including previous ones) should be in untilOnboardingComplete allowlist + const unexpectedCallsAfterOnboardingComplete = [...capturedCalls].filter( + (host) => !allowlist.untilOnboardingComplete.includes(host), + ); + + console.log('Checking calls until homepage'); + console.log('Total calls made until landing on homepage:', capturedCalls.size); + console.log('Calls made until landing on homepage:', JSON.stringify([...capturedCalls].sort(), null, 2)); + + // Assert no unexpected hosts after onboarding complete + assert.equal( + unexpectedCallsAfterOnboardingComplete.length, + 0, + `Unexpected network calls after onboarding complete:\n${unexpectedCallsAfterOnboardingComplete + .map((host) => ` - ${host}`) + .join('\n')}\n\nThese hosts are NOT in the untilOnboardingComplete allowlist.\nIf these are expected, add them to privacy-max-allowlist-onboarding.json`, + ); + }, + ); + }); +}); diff --git a/test/e2e/tests/privacy/privacy-max-allowlist-onboarding.json b/test/e2e/tests/privacy/privacy-max-allowlist-onboarding.json new file mode 100644 index 000000000000..6d078418a411 --- /dev/null +++ b/test/e2e/tests/privacy/privacy-max-allowlist-onboarding.json @@ -0,0 +1,24 @@ +{ + "duringOnboarding": [ + "accounts.google.com", + "metamask.github.io" + ], + "untilOnboardingComplete": [ + "accounts.google.com", + "arbitrum-mainnet.infura.io", + "base-mainnet.infura.io", + "bridge.api.cx.metamask.io", + "bsc-mainnet.infura.io", + "linea-mainnet.infura.io", + "mainnet.infura.io", + "metamask.github.io", + "optimism-mainnet.infura.io", + "polygon-mainnet.infura.io", + "sei-mainnet.infura.io" + ], + "toBeRemoved": { + "accounts.google.com": "Should be removed - web3auth team - will only call during social login", + "bridge.api.cx.metamask.io": "Should be removed - STX team - when move to remote feature flag" + } +} + From de07c319e8079eb7504fbd3f2f633f42c96e7aaf Mon Sep 17 00:00:00 2001 From: chloeYue Date: Thu, 4 Dec 2025 14:32:38 +0100 Subject: [PATCH 2/5] update --- .github/CODEOWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index bd96f3f08d28..044ee8e3eaa0 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -176,7 +176,7 @@ test/e2e/mock-e2e-allowlist.js @MetaMask/q test/e2e/mock-e2e.js @MetaMask/qa test/e2e/tests/settings/state-logs-helpers.ts @MetaMask/qa test/e2e/tests/settings/state-logs.json @MetaMask/qa @MetaMask/extension-privacy-reviewers -test/e2e/tests/privacy/privacy-max-allowlist-onboarding.json @MetaMask/qa @MetaMask/extension-platform +test/e2e/tests/privacy/privacy-max-allowlist-onboarding.json @MetaMask/qa @MetaMask/extension-privacy-reviewers # Wallet Integrations app/scripts/lib/rpc-method-middleware @MetaMask/wallet-integrations From 05a8e37afa47dde490fd78e81181b75f4f88adec Mon Sep 17 00:00:00 2001 From: chloeYue Date: Thu, 4 Dec 2025 14:55:09 +0100 Subject: [PATCH 3/5] fix lint --- .../onboarding-maximum-privacy.spec.ts | 82 ++++++++++++------- .../privacy-max-allowlist-onboarding.json | 16 ++-- 2 files changed, 60 insertions(+), 38 deletions(-) diff --git a/test/e2e/tests/privacy/onboarding-maximum-privacy.spec.ts b/test/e2e/tests/privacy/onboarding-maximum-privacy.spec.ts index b676bffe6b43..ad2ca038566b 100644 --- a/test/e2e/tests/privacy/onboarding-maximum-privacy.spec.ts +++ b/test/e2e/tests/privacy/onboarding-maximum-privacy.spec.ts @@ -26,13 +26,11 @@ import { const ALLOWLIST_FILE_NAME = 'privacy-max-allowlist-onboarding.json'; -async function mockApis( - mockServer: Mockttp, -): Promise { +async function mockApis(mockServer: Mockttp): Promise { return [ // Mock Infura RPC endpoints await mockServer - .forPost(/https:\/\/.*\.infura\.io\/v3\/.*/) + .forPost(/https:\/\/.*\.infura\.io\/v3\/.*/u) .thenCallback(() => ({ statusCode: 200, json: { @@ -50,10 +48,10 @@ async function mockApis( ]; } -interface OnboardingAllowlist { +type OnboardingAllowlist = { duringOnboarding: string[]; untilOnboardingComplete: string[]; -} +}; async function loadAllowlist(): Promise { const allowlistPath = path.join(__dirname, ALLOWLIST_FILE_NAME); @@ -79,7 +77,7 @@ describe('Onboarding with Maximum Privacy Settings', function () { mockServer.on( 'request-initiated', (request: { headers: { host: string }; url: string }) => { - const host = request.headers.host; + const { host } = request.headers; if (host) { capturedCalls.add(host); } @@ -96,8 +94,9 @@ describe('Onboarding with Maximum Privacy Settings', function () { // Navigate to privacy settings and toggle them OFF (maximum privacy) await onboardingCompletePage.navigateToDefaultPrivacySettings(); - const onboardingPrivacySettingsPage = - new OnboardingPrivacySettingsPage(driver); + const onboardingPrivacySettingsPage = new OnboardingPrivacySettingsPage( + driver, + ); await onboardingPrivacySettingsPage.checkPageIsLoaded(); await onboardingPrivacySettingsPage.toggleBasicFunctionalitySettings(); await onboardingPrivacySettingsPage.toggleAssetsSettings(); @@ -115,7 +114,10 @@ describe('Onboarding with Maximum Privacy Settings', function () { console.log('Checking calls until complete onboarding screen'); console.log('Total calls made during onboarding:', capturedCalls.size); - console.log('Calls made during onboarding:', JSON.stringify([...capturedCalls].sort(), null, 2)); + console.log( + 'Calls made during onboarding:', + JSON.stringify([...capturedCalls].sort(), null, 2), + ); // Assert no unexpected hosts during onboarding assert.equal( @@ -123,7 +125,9 @@ describe('Onboarding with Maximum Privacy Settings', function () { 0, `Unexpected network calls during onboarding:\n${unexpectedCallsDuringOnboarding .map((host) => ` - ${host}`) - .join('\n')}\n\nThese hosts are NOT in the duringOnboarding allowlist.\nIf these are expected, add them to privacy-max-allowlist-onboarding.json`, + .join( + '\n', + )}\n\nThese hosts are NOT in the duringOnboarding allowlist.\nIf these are expected, add them to privacy-max-allowlist-onboarding.json`, ); // Complete onboarding and go to homepage @@ -137,13 +141,19 @@ describe('Onboarding with Maximum Privacy Settings', function () { await driver.delay(veryLargeDelayMs); // Check Phase 2: All calls (including previous ones) should be in untilOnboardingComplete allowlist - const unexpectedCallsAfterOnboardingComplete = [...capturedCalls].filter( - (host) => !allowlist.untilOnboardingComplete.includes(host), - ); + const unexpectedCallsAfterOnboardingComplete = [ + ...capturedCalls, + ].filter((host) => !allowlist.untilOnboardingComplete.includes(host)); console.log('Checking calls until homepage'); - console.log('Total calls made until landing on homepage:', capturedCalls.size); - console.log('Calls made until landing on homepage:', JSON.stringify([...capturedCalls].sort(), null, 2)); + console.log( + 'Total calls made until landing on homepage:', + capturedCalls.size, + ); + console.log( + 'Calls made until landing on homepage:', + JSON.stringify([...capturedCalls].sort(), null, 2), + ); // Assert no unexpected hosts after onboarding complete assert.equal( @@ -151,7 +161,9 @@ describe('Onboarding with Maximum Privacy Settings', function () { 0, `Unexpected network calls after onboarding complete:\n${unexpectedCallsAfterOnboardingComplete .map((host) => ` - ${host}`) - .join('\n')}\n\nThese hosts are NOT in the untilOnboardingComplete allowlist.\nIf these are expected, add them to privacy-max-allowlist-onboarding.json`, + .join( + '\n', + )}\n\nThese hosts are NOT in the untilOnboardingComplete allowlist.\nIf these are expected, add them to privacy-max-allowlist-onboarding.json`, ); }, ); @@ -172,7 +184,7 @@ describe('Onboarding with Maximum Privacy Settings', function () { mockServer.on( 'request-initiated', (request: { headers: { host: string }; url: string }) => { - const host = request.headers.host; + const { host } = request.headers; if (host) { capturedCalls.add(host); } @@ -189,8 +201,9 @@ describe('Onboarding with Maximum Privacy Settings', function () { // Navigate to privacy settings and toggle them OFF (maximum privacy) await onboardingCompletePage.navigateToDefaultPrivacySettings(); - const onboardingPrivacySettingsPage = - new OnboardingPrivacySettingsPage(driver); + const onboardingPrivacySettingsPage = new OnboardingPrivacySettingsPage( + driver, + ); await onboardingPrivacySettingsPage.checkPageIsLoaded(); await onboardingPrivacySettingsPage.toggleBasicFunctionalitySettings(); await onboardingPrivacySettingsPage.toggleAssetsSettings(); @@ -208,7 +221,10 @@ describe('Onboarding with Maximum Privacy Settings', function () { console.log('Checking calls until complete onboarding screen'); console.log('Total calls made during onboarding:', capturedCalls.size); - console.log('Calls made during onboarding:', JSON.stringify([...capturedCalls].sort(), null, 2)); + console.log( + 'Calls made during onboarding:', + JSON.stringify([...capturedCalls].sort(), null, 2), + ); // Assert no unexpected hosts during onboarding assert.equal( @@ -216,7 +232,9 @@ describe('Onboarding with Maximum Privacy Settings', function () { 0, `Unexpected network calls during onboarding:\n${unexpectedCallsDuringOnboarding .map((host) => ` - ${host}`) - .join('\n')}\n\nThese hosts are NOT in the duringOnboarding allowlist.\nIf these are expected, add them to privacy-max-allowlist-onboarding.json`, + .join( + '\n', + )}\n\nThese hosts are NOT in the duringOnboarding allowlist.\nIf these are expected, add them to privacy-max-allowlist-onboarding.json`, ); // Complete onboarding and go to homepage @@ -230,13 +248,19 @@ describe('Onboarding with Maximum Privacy Settings', function () { await driver.delay(veryLargeDelayMs); // Check Phase 2: All calls (including previous ones) should be in untilOnboardingComplete allowlist - const unexpectedCallsAfterOnboardingComplete = [...capturedCalls].filter( - (host) => !allowlist.untilOnboardingComplete.includes(host), - ); + const unexpectedCallsAfterOnboardingComplete = [ + ...capturedCalls, + ].filter((host) => !allowlist.untilOnboardingComplete.includes(host)); console.log('Checking calls until homepage'); - console.log('Total calls made until landing on homepage:', capturedCalls.size); - console.log('Calls made until landing on homepage:', JSON.stringify([...capturedCalls].sort(), null, 2)); + console.log( + 'Total calls made until landing on homepage:', + capturedCalls.size, + ); + console.log( + 'Calls made until landing on homepage:', + JSON.stringify([...capturedCalls].sort(), null, 2), + ); // Assert no unexpected hosts after onboarding complete assert.equal( @@ -244,7 +268,9 @@ describe('Onboarding with Maximum Privacy Settings', function () { 0, `Unexpected network calls after onboarding complete:\n${unexpectedCallsAfterOnboardingComplete .map((host) => ` - ${host}`) - .join('\n')}\n\nThese hosts are NOT in the untilOnboardingComplete allowlist.\nIf these are expected, add them to privacy-max-allowlist-onboarding.json`, + .join( + '\n', + )}\n\nThese hosts are NOT in the untilOnboardingComplete allowlist.\nIf these are expected, add them to privacy-max-allowlist-onboarding.json`, ); }, ); diff --git a/test/e2e/tests/privacy/privacy-max-allowlist-onboarding.json b/test/e2e/tests/privacy/privacy-max-allowlist-onboarding.json index 6d078418a411..16086485aec1 100644 --- a/test/e2e/tests/privacy/privacy-max-allowlist-onboarding.json +++ b/test/e2e/tests/privacy/privacy-max-allowlist-onboarding.json @@ -1,8 +1,9 @@ { - "duringOnboarding": [ - "accounts.google.com", - "metamask.github.io" - ], + "duringOnboarding": ["accounts.google.com", "metamask.github.io"], + "toBeRemoved": { + "accounts.google.com": "Should be removed - web3auth team - will only call during social login", + "bridge.api.cx.metamask.io": "Should be removed - STX team - when move to remote feature flag" + }, "untilOnboardingComplete": [ "accounts.google.com", "arbitrum-mainnet.infura.io", @@ -15,10 +16,5 @@ "optimism-mainnet.infura.io", "polygon-mainnet.infura.io", "sei-mainnet.infura.io" - ], - "toBeRemoved": { - "accounts.google.com": "Should be removed - web3auth team - will only call during social login", - "bridge.api.cx.metamask.io": "Should be removed - STX team - when move to remote feature flag" - } + ] } - From 3349536f8e96a55d39f172609f6beb2cb0a68fdb Mon Sep 17 00:00:00 2001 From: chloeYue Date: Thu, 4 Dec 2025 15:30:19 +0100 Subject: [PATCH 4/5] update --- .../tests/privacy/privacy-max-allowlist-onboarding.json | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/test/e2e/tests/privacy/privacy-max-allowlist-onboarding.json b/test/e2e/tests/privacy/privacy-max-allowlist-onboarding.json index 16086485aec1..94abf6fa8de4 100644 --- a/test/e2e/tests/privacy/privacy-max-allowlist-onboarding.json +++ b/test/e2e/tests/privacy/privacy-max-allowlist-onboarding.json @@ -1,5 +1,9 @@ { - "duringOnboarding": ["accounts.google.com", "metamask.github.io"], + "duringOnboarding": [ + "accounts.google.com", + "metamask.github.io", + "sentry.io" + ], "toBeRemoved": { "accounts.google.com": "Should be removed - web3auth team - will only call during social login", "bridge.api.cx.metamask.io": "Should be removed - STX team - when move to remote feature flag" @@ -15,6 +19,7 @@ "metamask.github.io", "optimism-mainnet.infura.io", "polygon-mainnet.infura.io", - "sei-mainnet.infura.io" + "sei-mainnet.infura.io", + "sentry.io" ] } From b69da005af42ad08f95682f06413762cacdb1b26 Mon Sep 17 00:00:00 2001 From: chloeYue Date: Thu, 4 Dec 2025 16:10:33 +0100 Subject: [PATCH 5/5] update --- test/e2e/tests/privacy/privacy-max-allowlist-onboarding.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/e2e/tests/privacy/privacy-max-allowlist-onboarding.json b/test/e2e/tests/privacy/privacy-max-allowlist-onboarding.json index 94abf6fa8de4..f16ff2b8910a 100644 --- a/test/e2e/tests/privacy/privacy-max-allowlist-onboarding.json +++ b/test/e2e/tests/privacy/privacy-max-allowlist-onboarding.json @@ -1,6 +1,7 @@ { "duringOnboarding": [ "accounts.google.com", + "firefox.settings.services.mozilla.com", "metamask.github.io", "sentry.io" ], @@ -14,6 +15,7 @@ "base-mainnet.infura.io", "bridge.api.cx.metamask.io", "bsc-mainnet.infura.io", + "firefox.settings.services.mozilla.com", "linea-mainnet.infura.io", "mainnet.infura.io", "metamask.github.io",