Skip to content

refactor(analytics): migrate shield and subscription events#43893

Merged
gauthierpetetin merged 3 commits into
mainfrom
refactor/analytics-migrate-shield
Jul 3, 2026
Merged

refactor(analytics): migrate shield and subscription events#43893
gauthierpetetin merged 3 commits into
mainfrom
refactor/analytics-migrate-shield

Conversation

@gauthierpetetin

@gauthierpetetin gauthierpetetin commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Description

Sub-PR of umbrella tracker #43885.

Migrates MetaMetrics trackEvent call sites in this CODEOWNERS domain to createEventBuilder + trackEvent via useAnalytics() (UI) or app/scripts/controllers/analytics (background).

Dependency note: Can merge in parallel with other domain PRs after PR1.

Files in this PR: 21

Changelog

CHANGELOG entry: null

Related issues

Part of analytics migration umbrella: #43885

Manual testing steps

  1. Check out this branch and run yarn start.
  2. Exercise flows in the touched domain (see diff file list).
  3. Confirm no console errors and representative events still fire.

Pre-merge author checklist

Pre-merge reviewer checklist

  • I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed).
  • I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.

Note

Medium Risk
Touches analytics emission across OAuth onboarding failures and Shield subscription flows; behavior should be equivalent but any regression could skew product metrics or drop pre-consent buffered events.

Overview
Migrates Shield, subscription, OAuth, and related UI from legacy MetaMetricsController:trackEvent / MetaMetricsContext to createEventBuilder + trackEvent (app/scripts/controllers/analytics in background, useAnalytics() in UI).

Background: SubscriptionService drops the MetaMetricsController:trackEvent messenger delegate and emits Shield metrics (cohort assignment, subscription requests, payment method changes, rewards opt-in) via the analytics module. OAuthService no longer accepts an injected trackEvent; social login failure events use the builder API while pre–opt-in buffering still maps built events back to addEventBeforeMetricsOptIn when onboarding/opt-in are incomplete.

UI: Modals (AddFundsModal, support data consent) and useSubscriptionMetrics switch to useAnalytics, with a shared trackShieldEvent helper to reduce duplication. Support link clicks now put page title on the event properties (via useSegmentContext) instead of the old contextPropsIntoEventProperties option.

Tests are updated to mock useAnalytics / controllers/analytics and to split OAuth init mocks between MetaMetricsController and AnalyticsController for opt-in state.

Reviewed by Cursor Bugbot for commit e77a542. Bugbot is set up for automated code reviews on this repo. Configure here.

@metamask-ci metamask-ci Bot added the team-extension-platform Extension Platform team label Jun 25, 2026
@metamask-ci

metamask-ci Bot commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

✨ Files requiring CODEOWNER review ✨

🔐 @MetaMask/web3auth (4 files, +82 -32)
  • 📁 ui/
    • 📁 components/
      • 📁 app/
        • 📁 modals/
          • 📁 add-funds-modal/
            • 📄 add-funds-modal.test.tsx +14 -0
            • 📄 add-funds-modal.tsx +39 -30
    • 📁 pages/
      • 📁 shield/
        • 📁 transaction-shield/
          • 📁 manage-shield-plan/
            • 📄 manage-shield-plan.test.tsx +13 -0
            • 📄 transaction-shield.test.tsx +16 -2

@metamask-ci

metamask-ci Bot commented Jun 25, 2026

Copy link
Copy Markdown
Contributor
Builds ready [94860b3]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 15 pass · 🟡 8 warn · 🔴 1 fail)

Baseline (latest main): d50b2dc | Date: 6/25/2026 | Pipeline: 28177707635 | Baseline logs

Metricschrome-webpackfirefox-webpack
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🔴 [CI log]

Regressions (🔴 1 failure)

Interaction Benchmarks · Samples: 5
Benchmarkchrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
confirmTx
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
bridgeUserActions
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/load_new_account: +10%
  • loadNewAccount/total: +10%
  • loadNewAccount/inp: -19%
  • confirmTx/inp: -12%
  • confirmTx/lcp: +10%
  • bridgeUserActions/longTaskCount: -29%
  • bridgeUserActions/inp: +23%
  • loadNewAccount/load_new_account: +38%
  • loadNewAccount/total: +38%
  • loadNewAccount/inp: -27%
  • loadNewAccount/fcp: -52%
  • loadNewAccount/lcp: +1074%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/inp: -12%
  • confirmTx/fcp: -49%
  • confirmTx/lcp: +1132%
  • bridgeUserActions/bridge_load_page: +254%
  • bridgeUserActions/bridge_load_asset_picker: +41%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +34%
  • bridgeUserActions/lcp: +1234%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 bridgeUserActions/FCP: p75 1.9s
Startup Benchmarks · Samples: 100
Benchmarkchrome-webpackfirefox-webpack
startupStandardHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
startupPowerUserHome
[Sentry log · main/release]
🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/numNetworkReqs: +11%
  • startupStandardHome/domInteractive: -19%
  • startupStandardHome/fcp: -15%
  • startupPowerUserHome/uiStartup: +12%
  • startupPowerUserHome/domInteractive: +11%
  • startupPowerUserHome/backgroundConnect: +162%
  • startupPowerUserHome/setupStore: -88%
  • startupPowerUserHome/inp: +20%
  • startupPowerUserHome/fcp: +12%
  • startupPowerUserHome/lcp: +10%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 startupPowerUserHome/INP: p75 248ms
  • 🟡 startupPowerUserHome/LCP: p75 3.9s
User Journey Benchmarks · Samples: 5 · mock API 🔴 1
Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🔴 [CI log]
🔴 total
assetDetails
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
solanaAssetDetails
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]
importSrpHome
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
sendTransactions
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]
swap
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/metricsToWalletReadyScreen: -28%
  • onboardingImportWallet/doneButtonToHomeScreen: -84%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -100%
  • onboardingImportWallet/longTaskCount: -55%
  • onboardingImportWallet/longTaskTotalDuration: -88%
  • onboardingImportWallet/longTaskMaxDuration: -90%
  • onboardingImportWallet/tbt: -97%
  • onboardingImportWallet/total: -86%
  • onboardingNewWallet/doneButtonToAssetList: -49%
  • onboardingNewWallet/longTaskCount: -50%
  • onboardingNewWallet/longTaskTotalDuration: -52%
  • onboardingNewWallet/longTaskMaxDuration: -32%
  • onboardingNewWallet/tbt: -62%
  • onboardingNewWallet/total: -43%
  • solanaAssetDetails/assetClickToPriceChart: -64%
  • solanaAssetDetails/total: -64%
  • solanaAssetDetails/lcp: -60%
  • solanaAssetDetails/cls: +10%
  • importSrpHome/loginToHomeScreen: -18%
  • importSrpHome/openAccountMenuAfterLogin: +95%
  • importSrpHome/homeAfterImportWithNewWallet: -39%
  • importSrpHome/longTaskCount: -31%
  • importSrpHome/longTaskTotalDuration: -38%
  • importSrpHome/longTaskMaxDuration: -23%
  • importSrpHome/tbt: -34%
  • importSrpHome/total: -36%
  • importSrpHome/inp: -15%
  • importSrpHome/cls: -73%
  • sendTransactions/openSendPageFromHome: -24%
  • sendTransactions/selectTokenToSendFormLoaded: -24%
  • sendTransactions/reviewTransactionToConfirmationPage: +31%
  • sendTransactions/longTaskCount: -100%
  • sendTransactions/longTaskTotalDuration: -100%
  • sendTransactions/longTaskMaxDuration: -100%
  • sendTransactions/tbt: -100%
  • sendTransactions/total: +30%
  • sendTransactions/lcp: -19%
  • sendTransactions/cls: -93%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 solanaAssetDetails/FCP: p75 1.8s
  • 🟡 importSrpHome/INP: p75 264ms
  • 🟡 sendTransactions/FCP: p75 1.8s
  • 🔴 assetDetails/INP: p75 760ms
  • 🟡 assetDetails/FCP: p75 1.8s
  • 🟡 solanaAssetDetails/FCP: p75 1.9s
  • 🟡 sendTransactions/FCP: p75 1.9s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]
Bundle size diffs
  • background: -74 Bytes (0%)
  • ui: -960 Bytes (-0.01%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: 0 Bytes (0%)
  • zip: -17 Bytes (0%)

@metamask-ci

metamask-ci Bot commented Jun 26, 2026

Copy link
Copy Markdown
Contributor
Builds ready [83133e5]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 16 pass · 🟡 8 warn · 🔴 0 fail)

Baseline (latest main): 1e3d238 | Date: 6/25/2026 | Pipeline: 28216087295 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
confirmTx
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
bridgeUserActions
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/load_new_account: -12%
  • loadNewAccount/total: -12%
  • loadNewAccount/inp: +19%
  • loadNewAccount/lcp: -14%
  • loadNewAccount/cls: -75%
  • confirmTx/inp: -22%
  • bridgeUserActions/longTaskCount: +67%
  • bridgeUserActions/longTaskTotalDuration: +34%
  • loadNewAccount/inp: -29%
  • loadNewAccount/fcp: -56%
  • loadNewAccount/lcp: +1036%
  • confirmTx/confirm_tx: +10%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/total: +10%
  • confirmTx/inp: +38%
  • confirmTx/fcp: -63%
  • confirmTx/lcp: +1375%
  • bridgeUserActions/bridge_load_page: +225%
  • bridgeUserActions/bridge_load_asset_picker: +49%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +25%
  • bridgeUserActions/lcp: +1180%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 loadNewAccount/FCP: p75 1.9s
  • 🟡 confirmTx/FCP: p75 1.9s
Startup Benchmarks · Samples: 100
Benchmarkchrome-webpackfirefox-webpack
startupStandardHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
startupPowerUserHome
[Sentry log · main/release]
🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/domInteractive: -19%
  • startupStandardHome/setupStore: -29%
  • startupStandardHome/fcp: -17%
  • startupPowerUserHome/domInteractive: +11%
  • startupPowerUserHome/backgroundConnect: -17%
  • startupPowerUserHome/setupStore: +31%
  • startupPowerUserHome/inp: +11%
  • startupPowerUserHome/fcp: +10%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 startupPowerUserHome/INP: p75 216ms
  • 🟡 startupPowerUserHome/LCP: p75 3.6s
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
🟡 total
assetDetails
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
solanaAssetDetails
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
importSrpHome
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
sendTransactions
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
swap
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/pwFormToMetricsScreen: +13%
  • onboardingImportWallet/doneButtonToHomeScreen: -76%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -99%
  • onboardingImportWallet/longTaskCount: -50%
  • onboardingImportWallet/longTaskTotalDuration: -86%
  • onboardingImportWallet/longTaskMaxDuration: -89%
  • onboardingImportWallet/tbt: -97%
  • onboardingImportWallet/total: -82%
  • onboardingNewWallet/skipBackupToMetricsScreen: +14%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: -19%
  • onboardingNewWallet/doneButtonToAssetList: -23%
  • onboardingNewWallet/longTaskCount: -23%
  • onboardingNewWallet/longTaskTotalDuration: -50%
  • onboardingNewWallet/longTaskMaxDuration: -39%
  • onboardingNewWallet/tbt: -70%
  • onboardingNewWallet/total: -19%
  • solanaAssetDetails/assetClickToPriceChart: -50%
  • solanaAssetDetails/total: -50%
  • solanaAssetDetails/cls: +12%
  • importSrpHome/homeAfterImportWithNewWallet: -29%
  • importSrpHome/longTaskCount: -25%
  • importSrpHome/longTaskTotalDuration: -31%
  • importSrpHome/longTaskMaxDuration: -14%
  • importSrpHome/tbt: -38%
  • importSrpHome/total: -24%
  • importSrpHome/inp: -31%
  • importSrpHome/lcp: +29%
  • importSrpHome/cls: -53%
  • sendTransactions/openSendPageFromHome: -24%
  • sendTransactions/longTaskCount: -50%
  • sendTransactions/longTaskTotalDuration: -59%
  • sendTransactions/longTaskMaxDuration: -35%
  • sendTransactions/tbt: -92%
  • sendTransactions/inp: -25%
  • sendTransactions/cls: -92%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 assetDetails/FCP: p75 1.9s
  • 🟡 solanaAssetDetails/FCP: p75 1.9s
  • 🟡 importSrpHome/FCP: p75 1.8s
  • 🟡 sendTransactions/FCP: p75 1.8s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]
Bundle size diffs
  • background: -74 Bytes (0%)
  • ui: -960 Bytes (-0.01%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: 0 Bytes (0%)
  • zip: -24 Bytes (0%)

@github-actions

Copy link
Copy Markdown
Contributor

CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes.

@gauthierpetetin
gauthierpetetin force-pushed the refactor/analytics-migrate-shield branch from 83133e5 to fb88c75 Compare June 26, 2026 05:15
@gauthierpetetin
gauthierpetetin force-pushed the refactor/analytics-migrate-shield branch from fb88c75 to 7d1a8e9 Compare June 26, 2026 05:29
@gauthierpetetin
gauthierpetetin force-pushed the refactor/analytics-migrate-shield branch from 7d1a8e9 to 336865d Compare June 26, 2026 06:02
@gauthierpetetin
gauthierpetetin force-pushed the refactor/analytics-migrate-shield branch from 336865d to 11e8114 Compare June 26, 2026 06:12
@gauthierpetetin
gauthierpetetin force-pushed the refactor/analytics-migrate-shield branch from 11e8114 to af195c9 Compare June 26, 2026 06:18
@gauthierpetetin
gauthierpetetin force-pushed the refactor/analytics-migrate-shield branch from af195c9 to 00dd119 Compare June 26, 2026 07:20
@gauthierpetetin
gauthierpetetin force-pushed the refactor/analytics-migrate-shield branch from 00dd119 to 3ec56e4 Compare June 26, 2026 07:59
@gauthierpetetin
gauthierpetetin force-pushed the refactor/analytics-migrate-shield branch from 3ec56e4 to 97df82c Compare June 26, 2026 08:33
Limit scope to analytics migration bucket files only.
Part of analytics migration umbrella PR #43885.
@metamask-ci

metamask-ci Bot commented Jun 29, 2026

Copy link
Copy Markdown
Contributor
Builds ready [59586b7]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 18 pass · 🟡 6 warn · 🔴 0 fail)

Baseline (latest main): 1716549 | Date: 6/29/2026 | Pipeline: 28400562795 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
🔴 load_new_account
confirmTx
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
bridgeUserActions
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/load_new_account: +37%
  • loadNewAccount/total: +37%
  • loadNewAccount/inp: -18%
  • bridgeUserActions/longTaskCount: -17%
  • bridgeUserActions/longTaskTotalDuration: -14%
  • bridgeUserActions/inp: +29%
  • bridgeUserActions/lcp: -12%
  • loadNewAccount/load_new_account: +554%
  • loadNewAccount/total: +554%
  • loadNewAccount/fcp: -55%
  • loadNewAccount/lcp: +1008%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/fcp: -59%
  • confirmTx/lcp: +1025%
  • bridgeUserActions/bridge_load_page: +85%
  • bridgeUserActions/bridge_load_asset_picker: +86%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +28%
  • bridgeUserActions/inp: -22%
  • bridgeUserActions/fcp: -50%
  • bridgeUserActions/lcp: +1104%
Startup Benchmarks · Samples: 100
Benchmarkchrome-webpackfirefox-webpack
startupStandardHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
startupPowerUserHome
[Sentry log · main/release]
🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/domInteractive: -27%
  • startupStandardHome/fcp: -22%
  • startupPowerUserHome/domInteractive: -18%
  • startupPowerUserHome/backgroundConnect: +53%
  • startupPowerUserHome/inp: -16%
  • startupPowerUserHome/fcp: -13%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 startupPowerUserHome/LCP: p75 3.8s
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
🟡 total
assetDetails
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]
solanaAssetDetails
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
importSrpHome
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
sendTransactions
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
swap
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/metricsToWalletReadyScreen: -39%
  • onboardingImportWallet/doneButtonToHomeScreen: -86%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -98%
  • onboardingImportWallet/longTaskCount: -80%
  • onboardingImportWallet/longTaskTotalDuration: -93%
  • onboardingImportWallet/longTaskMaxDuration: -90%
  • onboardingImportWallet/tbt: -98%
  • onboardingImportWallet/total: -85%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: -25%
  • onboardingNewWallet/doneButtonToAssetList: -32%
  • onboardingNewWallet/longTaskCount: -50%
  • onboardingNewWallet/longTaskTotalDuration: -61%
  • onboardingNewWallet/tbt: -32%
  • onboardingNewWallet/total: -28%
  • solanaAssetDetails/assetClickToPriceChart: -68%
  • solanaAssetDetails/total: -68%
  • solanaAssetDetails/inp: -24%
  • solanaAssetDetails/cls: +1620%
  • importSrpHome/homeAfterImportWithNewWallet: -43%
  • importSrpHome/longTaskCount: -19%
  • importSrpHome/longTaskTotalDuration: -23%
  • importSrpHome/longTaskMaxDuration: -10%
  • importSrpHome/tbt: -22%
  • importSrpHome/total: -37%
  • importSrpHome/inp: -30%
  • importSrpHome/lcp: -59%
  • importSrpHome/cls: -47%
  • sendTransactions/openSendPageFromHome: -30%
  • sendTransactions/selectTokenToSendFormLoaded: -44%
  • sendTransactions/reviewTransactionToConfirmationPage: +52%
  • sendTransactions/longTaskCount: -20%
  • sendTransactions/longTaskTotalDuration: -22%
  • sendTransactions/tbt: -32%
  • sendTransactions/total: +51%
  • sendTransactions/inp: -28%
  • sendTransactions/fcp: -12%
  • sendTransactions/lcp: -16%
  • sendTransactions/cls: -40%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 assetDetails/FCP: p75 2.2s
  • 🟡 assetDetails/FCP: p75 1.9s
  • 🟡 solanaAssetDetails/FCP: p75 1.9s
  • 🟡 importSrpHome/FCP: p75 1.8s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]
Bundle size diffs
  • background: 209 Bytes (0%)
  • ui: -171 Bytes (0%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: -156 Bytes (-0.01%)
  • zip: 248 Bytes (0%)

Clarify oauth init test mocks for MetaMetrics vs Analytics controllers
and inline subscription service Shield event tracking calls.

Co-authored-by: Cursor <cursoragent@cursor.com>
@metamask-ci

metamask-ci Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor
Builds ready [baf3060]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 14 pass · 🟡 10 warn · 🔴 0 fail)

Baseline (latest main): 1716549 | Date: 6/29/2026 | Pipeline: 28510785247 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
🔴 load_new_account
confirmTx
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
bridgeUserActions
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/load_new_account: -21%
  • loadNewAccount/total: -21%
  • loadNewAccount/inp: +15%
  • confirmTx/inp: +12%
  • confirmTx/lcp: -11%
  • bridgeUserActions/bridge_load_page: +49%
  • bridgeUserActions/bridge_load_asset_picker: -15%
  • bridgeUserActions/longTaskCount: -17%
  • bridgeUserActions/longTaskTotalDuration: -17%
  • bridgeUserActions/tbt: -18%
  • bridgeUserActions/inp: +38%
  • loadNewAccount/load_new_account: +591%
  • loadNewAccount/total: +591%
  • loadNewAccount/lcp: +1029%
  • confirmTx/confirm_tx: +11%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/total: +11%
  • confirmTx/inp: +12%
  • confirmTx/fcp: -58%
  • confirmTx/lcp: +1423%
  • bridgeUserActions/bridge_load_page: +93%
  • bridgeUserActions/bridge_load_asset_picker: +56%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +15%
  • bridgeUserActions/inp: -14%
  • bridgeUserActions/lcp: +1194%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 loadNewAccount/FCP: p75 1.8s
  • 🟡 confirmTx/LCP: p75 2.7s
  • 🟡 bridgeUserActions/FCP: p75 1.8s
Startup Benchmarks · Samples: 100
Benchmarkchrome-webpackfirefox-webpack
startupStandardHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
startupPowerUserHome
[Sentry log · main/release]
🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/domInteractive: -29%
  • startupStandardHome/fcp: -28%
  • startupPowerUserHome/domInteractive: -20%
  • startupPowerUserHome/backgroundConnect: -21%
  • startupPowerUserHome/fcp: -20%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 startupPowerUserHome/INP: p75 224ms
  • 🟡 startupPowerUserHome/LCP: p75 3.3s
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
🟡 total
assetDetails
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
solanaAssetDetails
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
importSrpHome
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]
sendTransactions
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
swap
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/metricsToWalletReadyScreen: -17%
  • onboardingImportWallet/doneButtonToHomeScreen: -86%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -64%
  • onboardingImportWallet/longTaskCount: -80%
  • onboardingImportWallet/longTaskTotalDuration: -93%
  • onboardingImportWallet/longTaskMaxDuration: -89%
  • onboardingImportWallet/tbt: -98%
  • onboardingImportWallet/total: -84%
  • onboardingNewWallet/srpButtonToPwForm: -14%
  • onboardingNewWallet/createPwToRecoveryScreen: -18%
  • onboardingNewWallet/skipBackupToMetricsScreen: -19%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: -16%
  • onboardingNewWallet/doneButtonToAssetList: -52%
  • onboardingNewWallet/longTaskCount: -50%
  • onboardingNewWallet/longTaskTotalDuration: -56%
  • onboardingNewWallet/longTaskMaxDuration: -22%
  • onboardingNewWallet/tbt: -56%
  • onboardingNewWallet/total: -52%
  • solanaAssetDetails/assetClickToPriceChart: -65%
  • solanaAssetDetails/total: -65%
  • solanaAssetDetails/inp: -31%
  • solanaAssetDetails/cls: +1620%
  • importSrpHome/loginToHomeScreen: -12%
  • importSrpHome/openAccountMenuAfterLogin: -12%
  • importSrpHome/homeAfterImportWithNewWallet: -42%
  • importSrpHome/longTaskCount: -27%
  • importSrpHome/longTaskTotalDuration: -30%
  • importSrpHome/longTaskMaxDuration: -23%
  • importSrpHome/tbt: -26%
  • importSrpHome/total: -35%
  • importSrpHome/inp: -21%
  • importSrpHome/fcp: +18%
  • importSrpHome/lcp: -55%
  • importSrpHome/cls: -47%
  • sendTransactions/openSendPageFromHome: -40%
  • sendTransactions/reviewTransactionToConfirmationPage: +12%
  • sendTransactions/longTaskCount: +60%
  • sendTransactions/longTaskTotalDuration: +49%
  • sendTransactions/total: +11%
  • sendTransactions/inp: -23%
  • sendTransactions/lcp: -20%
  • sendTransactions/cls: -40%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 importSrpHome/INP: p75 208ms
  • 🟡 importSrpHome/FCP: p75 2.0s
  • 🟡 assetDetails/FCP: p75 1.8s
  • 🟡 solanaAssetDetails/FCP: p75 1.8s
  • 🟡 importSrpHome/FCP: p75 1.9s
  • 🟡 sendTransactions/FCP: p75 1.8s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 38.35 KiB (0.35%)
  • ui: 17.44 KiB (0.1%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: 420 Bytes (0.02%)
  • zip: 19.43 KiB (0.07%)

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR is a Shield/Subscription domain sub-step of the analytics migration umbrella (#43885), moving UI and background MetaMetrics trackEvent call sites to the new createEventBuilder(...).build() event shape and routing events via useAnalytics() (UI) or app/scripts/controllers/analytics (background).

Changes:

  • Updated Shield/Subscription UI tracking to build events with createEventBuilder and send them through useAnalytics().trackEvent.
  • Updated background Shield/Subscription tracking to use createEventBuilder + trackEvent from app/scripts/controllers/analytics instead of MetaMetricsController:trackEvent messenger calls.
  • Adjusted and expanded unit tests/mocks to align with the new analytics APIs and event payload shape.

Reviewed changes

Copilot reviewed 15 out of 15 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
ui/pages/shield/transaction-shield/transaction-shield.test.tsx Updates router/analytics mocks to support new analytics hook usage.
ui/pages/shield/transaction-shield/manage-shield-plan/manage-shield-plan.test.tsx Adds useAnalytics mocking to keep tests isolated from analytics implementation.
ui/hooks/shield/metrics/useSubscriptionMetrics.ts Refactors Shield subscription metric emitters to use useAnalytics + event builder (centralizing common props).
ui/components/app/modals/visit-support-data-consent-modal/visit-support-data.test.tsx Updates expectations and mocks to validate new built-event payload shape.
ui/components/app/modals/visit-support-data-consent-modal/visit-support-data-consent-modal.tsx Migrates support-link click tracking to useAnalytics + builder and includes page title via segment context.
ui/components/app/modals/add-funds-modal/add-funds-modal.tsx Migrates navigation metrics in the modal to event builder + useAnalytics.
ui/components/app/modals/add-funds-modal/add-funds-modal.test.tsx Adds useAnalytics mocking for the new tracking implementation.
app/scripts/services/subscription/subscription-service.ts Migrates Shield-related background tracking to controllers/analytics helpers.
app/scripts/services/subscription/subscription-service.test.ts Updates test wiring/mocks to remove reliance on MetaMetricsController:trackEvent.
app/scripts/services/oauth/types.ts Removes trackEvent from OAuth service options surface (no longer injected).
app/scripts/services/oauth/oauth-service.ts Migrates buffered tracking path to accept built analytics events and routes via analytics helpers / buffering API.
app/scripts/services/oauth/oauth-service.test.ts Updates tests to reflect constructor signature change and new analytics helper mocking.
app/scripts/messenger-client-init/seedless-onboarding/oauth-service-init.ts Stops injecting trackEvent into OAuth service init (now uses analytics helpers directly).
app/scripts/messenger-client-init/seedless-onboarding/oauth-service-init.test.ts Updates controller mocks to reflect split MetaMetrics onboarding vs Analytics opt-in state.
app/scripts/messenger-client-init/messengers/subscription/subscription-service-messenger.ts Removes now-unused MetaMetricsController:trackEvent permission from subscription service messenger.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread ui/hooks/shield/metrics/useSubscriptionMetrics.ts
Comment thread ui/hooks/shield/metrics/useSubscriptionMetrics.ts Outdated
Comment thread ui/pages/shield/transaction-shield/transaction-shield.test.tsx Outdated
Remove redundant omitBy filtering in trackShieldEvent since
createEventBuilder.addProperties already strips undefined values,
and mock useLocation.search as an empty string in TransactionShield tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
@sonarqubecloud

sonarqubecloud Bot commented Jul 1, 2026

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
50.0% Coverage on New Code (required ≥ 80%)

See analysis details on SonarQube Cloud

@metamask-ci

metamask-ci Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor
Builds ready [e77a542]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 16 pass · 🟡 8 warn · 🔴 0 fail)

Baseline (latest main): 1716549 | Date: 6/29/2026 | Pipeline: 28513121125 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
🔴 load_new_account
confirmTx
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
bridgeUserActions
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/load_new_account: -15%
  • loadNewAccount/total: -15%
  • confirmTx/longTaskMaxDuration: -12%
  • confirmTx/tbt: -17%
  • bridgeUserActions/longTaskCount: -17%
  • bridgeUserActions/longTaskTotalDuration: -18%
  • bridgeUserActions/tbt: -20%
  • bridgeUserActions/inp: +47%
  • loadNewAccount/load_new_account: +564%
  • loadNewAccount/total: +564%
  • loadNewAccount/fcp: -48%
  • loadNewAccount/lcp: +1024%
  • confirmTx/confirm_tx: +11%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/total: +11%
  • confirmTx/fcp: -46%
  • confirmTx/lcp: +1075%
  • bridgeUserActions/bridge_load_page: +67%
  • bridgeUserActions/bridge_load_asset_picker: +73%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +22%
  • bridgeUserActions/inp: -22%
  • bridgeUserActions/fcp: -52%
  • bridgeUserActions/lcp: +1160%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 loadNewAccount/FCP: p75 2.0s
Startup Benchmarks · Samples: 100
Benchmarkchrome-webpackfirefox-webpack
startupStandardHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
startupPowerUserHome
[Sentry log · main/release]
🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/setupStore: -15%
  • startupStandardHome/numNetworkReqs: +50%
  • startupStandardHome/domInteractive: -23%
  • startupStandardHome/fcp: -22%
  • startupPowerUserHome/domInteractive: -33%
  • startupPowerUserHome/backgroundConnect: -22%
  • startupPowerUserHome/fcp: -30%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 startupPowerUserHome/INP: p75 216ms
  • 🟡 startupPowerUserHome/LCP: p75 3.4s
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
🟡 total
assetDetails
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]
solanaAssetDetails
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
importSrpHome
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
sendTransactions
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
swap
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/metricsToWalletReadyScreen: -15%
  • onboardingImportWallet/doneButtonToHomeScreen: -86%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -97%
  • onboardingImportWallet/longTaskCount: -60%
  • onboardingImportWallet/longTaskTotalDuration: -89%
  • onboardingImportWallet/longTaskMaxDuration: -89%
  • onboardingImportWallet/tbt: -97%
  • onboardingImportWallet/total: -85%
  • onboardingNewWallet/doneButtonToAssetList: -28%
  • onboardingNewWallet/longTaskCount: -50%
  • onboardingNewWallet/longTaskTotalDuration: -62%
  • onboardingNewWallet/longTaskMaxDuration: -33%
  • onboardingNewWallet/tbt: -73%
  • onboardingNewWallet/total: -24%
  • solanaAssetDetails/assetClickToPriceChart: -71%
  • solanaAssetDetails/total: -71%
  • solanaAssetDetails/cls: +1620%
  • importSrpHome/loginToHomeScreen: -17%
  • importSrpHome/longTaskCount: -35%
  • importSrpHome/longTaskTotalDuration: -36%
  • importSrpHome/longTaskMaxDuration: -20%
  • importSrpHome/tbt: -27%
  • importSrpHome/inp: -27%
  • importSrpHome/lcp: -63%
  • importSrpHome/cls: -47%
  • sendTransactions/openSendPageFromHome: -29%
  • sendTransactions/selectTokenToSendFormLoaded: -55%
  • sendTransactions/reviewTransactionToConfirmationPage: +15%
  • sendTransactions/longTaskCount: -20%
  • sendTransactions/longTaskTotalDuration: -26%
  • sendTransactions/longTaskMaxDuration: -10%
  • sendTransactions/tbt: -55%
  • sendTransactions/total: +14%
  • sendTransactions/inp: -23%
  • sendTransactions/cls: -40%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 assetDetails/FCP: p75 2.1s
  • 🟡 assetDetails/FCP: p75 1.8s
  • 🟡 solanaAssetDetails/FCP: p75 1.8s
  • 🟡 importSrpHome/FCP: p75 1.9s
  • 🟡 sendTransactions/FCP: p75 1.8s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • dappPageLoad/pageLoadTime: -25%
  • dappPageLoad/domContentLoaded: -22%
  • dappPageLoad/firstPaint: -19%
  • dappPageLoad/firstContentfulPaint: -19%
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 38.35 KiB (0.35%)
  • ui: 17.38 KiB (0.1%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: 420 Bytes (0.02%)
  • zip: 19.51 KiB (0.07%)

@gauthierpetetin
gauthierpetetin marked this pull request as ready for review July 1, 2026 12:16
@gauthierpetetin
gauthierpetetin requested a review from a team as a code owner July 1, 2026 12:16
@gauthierpetetin
gauthierpetetin enabled auto-merge July 1, 2026 13:04
@gauthierpetetin gauthierpetetin self-assigned this Jul 1, 2026
@gauthierpetetin
gauthierpetetin added this pull request to the merge queue Jul 3, 2026
Merged via the queue into main with commit a201467 Jul 3, 2026
393 of 396 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

release-13.40.0 Issue or pull request that will be included in release 13.40.0 risk:medium size-L team-extension-platform Extension Platform team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants