Skip to content

refactor(analytics): migrate notifications events#43887

Merged
gauthierpetetin merged 7 commits into
mainfrom
refactor/analytics-migrate-notifications
Jul 2, 2026
Merged

refactor(analytics): migrate notifications events#43887
gauthierpetetin merged 7 commits into
mainfrom
refactor/analytics-migrate-notifications

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.

Files in this PR: 32

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

Low Risk
Analytics-only refactor in notifications UI and push init; event names and properties are preserved, with test coverage updated for the new API.

Overview
Migrates notifications analytics from legacy MetaMetricsContext / MetaMetricsController:trackEvent to createEventBuilder + trackEvent via useAnalytics() in UI and app/scripts/controllers/analytics in the push-notification init path.

Coverage includes notification list/detail interactions, settings toggles, activation modal, global menu “notifications opened”, and push received/clicked handlers. Event payloads stay the same; only the plumbing and builder shape change. Integration tests now assert trackAnalyticsEvent with name and properties.category instead of trackMetaMetricsEvent with top-level event/category. Several unit tests mock useAnalytics instead of wrapping MetaMetricsContext.

The push controller init messenger no longer delegates MetaMetricsController:trackEvent. Global menu support-link tracking uses useSegmentContext for page title where context props were injected before. Unrelated: a small String(type) fix in notification preference error logging.

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

@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.

@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/core-extension-ux (7 files, +179 -124)
  • 📁 ui/
    • 📁 components/
      • 📁 multichain/
        • 📁 global-menu-drawer/
          • 📄 useGlobalMenuSections.tsx +69 -62
        • 📁 notification-detail-block-explorer-button/
          • 📄 notification-detail-block-explorer-button.test.tsx +13 -0
          • 📄 notification-detail-block-explorer-button.tsx +29 -22
        • 📁 notification-detail-copy-button/
          • 📄 notification-detail-copy-button.test.tsx +13 -0
          • 📄 notification-detail-copy-button.tsx +20 -19
        • 📁 notification-detail-network-fee/
          • 📄 notification-detail-network-fee.tsx +22 -21
    • 📁 pages/
      • 📁 settings/
        • 📁 notifications-tab/
          • 📄 notification-section-sub-page.test.tsx +13 -0

🔔 @MetaMask/notifications (17 files, +294 -221)
  • 📁 ui/
    • 📁 components/
      • 📁 multichain/
        • 📁 notification-detail-block-explorer-button/
          • 📄 notification-detail-block-explorer-button.test.tsx +13 -0
          • 📄 notification-detail-block-explorer-button.tsx +29 -22
        • 📁 notification-detail-copy-button/
          • 📄 notification-detail-copy-button.test.tsx +13 -0
          • 📄 notification-detail-copy-button.tsx +20 -19
        • 📁 notification-detail-network-fee/
          • 📄 notification-detail-network-fee.tsx +22 -21
    • 📁 hooks/
      • 📁 metamask-notifications/
        • 📄 useNotificationPreferences.ts +1 -1
    • 📁 pages/
      • 📁 notifications/
        • 📁 notification-components/
          • 📁 feature-announcement/
            • 📄 annonucement-footer-buttons.test.tsx +15 -16
            • 📄 annonucement-footer-buttons.tsx +20 -25
          • 📁 snap/
            • 📄 snap-footer-button.test.tsx +7 -0
            • 📄 snap-footer-button.tsx +20 -18
          • 📄 notifications-list-item.tsx +19 -17
          • 📄 notifications-list-read-all-button.tsx +8 -7
          • 📄 notifications-list.test.tsx +13 -0
      • 📁 notifications-settings/
        • 📄 notification-settings-section.tsx +19 -17
        • 📄 notifications-settings-allow-notifications.test.tsx +13 -0
        • 📄 notifications-settings-allow-notifications.tsx +42 -39
        • 📄 notifications-settings-per-account.tsx +20 -19

@metamask-ci

metamask-ci Bot commented Jun 25, 2026

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

Baseline (latest main): d50b2dc | Date: 6/25/2026 | Pipeline: 28177670233 | 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

  • confirmTx/tbt: -12%
  • confirmTx/inp: -12%
  • bridgeUserActions/bridge_load_page: -10%
  • bridgeUserActions/bridge_load_asset_picker: -22%
  • bridgeUserActions/longTaskCount: -29%
  • bridgeUserActions/longTaskTotalDuration: -22%
  • bridgeUserActions/tbt: -21%
  • loadNewAccount/load_new_account: +18%
  • loadNewAccount/total: +18%
  • loadNewAccount/inp: -11%
  • loadNewAccount/fcp: -53%
  • loadNewAccount/lcp: +1085%
  • confirmTx/confirm_tx: +14%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/total: +14%
  • confirmTx/inp: -12%
  • confirmTx/lcp: +1138%
  • bridgeUserActions/bridge_load_page: +156%
  • bridgeUserActions/bridge_load_asset_picker: +24%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +32%
  • bridgeUserActions/lcp: +1227%

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

  • 🟡 loadNewAccount/FCP: p75 1.9s
  • 🟡 confirmTx/FCP: p75 1.9s
  • 🟡 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/numNetworkReqs: -25%
  • startupStandardHome/domInteractive: -19%
  • startupStandardHome/fcp: -17%
  • startupPowerUserHome/backgroundConnect: +20%
  • startupPowerUserHome/setupStore: -53%
  • startupPowerUserHome/inp: -11%

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

  • 🟡 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]
🟡 assetClickToPriceChart
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: -27%
  • onboardingImportWallet/doneButtonToHomeScreen: -85%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -99%
  • onboardingImportWallet/longTaskCount: -55%
  • onboardingImportWallet/longTaskTotalDuration: -88%
  • onboardingImportWallet/longTaskMaxDuration: -90%
  • onboardingImportWallet/tbt: -97%
  • onboardingImportWallet/total: -87%
  • onboardingNewWallet/doneButtonToAssetList: -28%
  • onboardingNewWallet/longTaskCount: -50%
  • onboardingNewWallet/longTaskTotalDuration: -54%
  • onboardingNewWallet/longTaskMaxDuration: -25%
  • onboardingNewWallet/tbt: -52%
  • onboardingNewWallet/total: -24%
  • solanaAssetDetails/assetClickToPriceChart: -60%
  • solanaAssetDetails/total: -60%
  • solanaAssetDetails/lcp: -58%
  • importSrpHome/loginToHomeScreen: -17%
  • importSrpHome/openAccountMenuAfterLogin: +44%
  • importSrpHome/homeAfterImportWithNewWallet: -41%
  • importSrpHome/longTaskCount: -31%
  • importSrpHome/longTaskTotalDuration: -36%
  • importSrpHome/longTaskMaxDuration: -17%
  • importSrpHome/tbt: -43%
  • importSrpHome/total: -37%
  • importSrpHome/inp: -33%
  • importSrpHome/cls: -73%
  • sendTransactions/openSendPageFromHome: -24%
  • sendTransactions/selectTokenToSendFormLoaded: -29%
  • sendTransactions/longTaskCount: -100%
  • sendTransactions/longTaskTotalDuration: -100%
  • sendTransactions/longTaskMaxDuration: -100%
  • sendTransactions/tbt: -100%
  • sendTransactions/lcp: -24%
  • sendTransactions/cls: -93%

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

  • 🟡 assetDetails/FCP: p75 2.0s
  • 🟡 importSrpHome/INP: p75 208ms
  • 🟡 assetDetails/FCP: p75 1.9s
  • 🟡 solanaAssetDetails/FCP: p75 1.9s
  • 🟡 importSrpHome/FCP: p75 1.9s
  • 🟡 sendTransactions/FCP: p75 2.0s
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: -21%
  • dappPageLoad/domContentLoaded: -21%
  • dappPageLoad/firstPaint: -16%
  • dappPageLoad/firstContentfulPaint: -16%
Bundle size diffs
  • background: 111 Bytes (0%)
  • ui: 500 Bytes (0%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: 0 Bytes (0%)
  • zip: 215 Bytes (0%)

@gauthierpetetin
gauthierpetetin force-pushed the refactor/analytics-migrate-notifications branch from a585d13 to f818574 Compare June 26, 2026 03:55
@metamask-ci

metamask-ci Bot commented Jun 26, 2026

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

Baseline (latest main): 1e3d238 | Date: 6/25/2026 | Pipeline: 28216073597 | 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/inp: +19%
  • loadNewAccount/cls: -75%
  • confirmTx/inp: -22%
  • bridgeUserActions/longTaskCount: +67%
  • bridgeUserActions/longTaskTotalDuration: +18%
  • bridgeUserActions/longTaskMaxDuration: -24%
  • bridgeUserActions/tbt: -57%
  • bridgeUserActions/inp: -12%
  • loadNewAccount/load_new_account: +37%
  • loadNewAccount/total: +37%
  • loadNewAccount/inp: -21%
  • loadNewAccount/lcp: +1025%
  • confirmTx/confirm_tx: +13%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/total: +13%
  • confirmTx/inp: -14%
  • confirmTx/fcp: -44%
  • confirmTx/lcp: +1242%
  • bridgeUserActions/bridge_load_page: +193%
  • bridgeUserActions/bridge_load_asset_picker: +35%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +16%
  • bridgeUserActions/lcp: +1176%

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

  • 🟡 loadNewAccount/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: -23%
  • startupStandardHome/setupStore: -34%
  • startupStandardHome/fcp: -23%
  • startupPowerUserHome/setupStore: +31%

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

  • 🟡 startupPowerUserHome/LCP: p75 3.5s
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: -32%
  • onboardingImportWallet/doneButtonToHomeScreen: -77%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -90%
  • onboardingImportWallet/longTaskCount: -50%
  • onboardingImportWallet/longTaskTotalDuration: -87%
  • onboardingImportWallet/longTaskMaxDuration: -87%
  • onboardingImportWallet/tbt: -95%
  • onboardingImportWallet/total: -80%
  • onboardingNewWallet/doneButtonToAssetList: -34%
  • onboardingNewWallet/longTaskCount: -62%
  • onboardingNewWallet/longTaskTotalDuration: -66%
  • onboardingNewWallet/longTaskMaxDuration: -34%
  • onboardingNewWallet/tbt: -65%
  • onboardingNewWallet/total: -30%
  • solanaAssetDetails/assetClickToPriceChart: -71%
  • solanaAssetDetails/total: -71%
  • solanaAssetDetails/inp: -32%
  • solanaAssetDetails/cls: +12%
  • importSrpHome/homeAfterImportWithNewWallet: -29%
  • importSrpHome/longTaskCount: -25%
  • importSrpHome/longTaskTotalDuration: -31%
  • importSrpHome/tbt: -41%
  • importSrpHome/total: -27%
  • importSrpHome/inp: -28%
  • importSrpHome/cls: -53%
  • sendTransactions/openSendPageFromHome: -24%
  • sendTransactions/selectTokenToSendFormLoaded: +11%
  • sendTransactions/reviewTransactionToConfirmationPage: -18%
  • sendTransactions/longTaskCount: -100%
  • sendTransactions/longTaskTotalDuration: -100%
  • sendTransactions/longTaskMaxDuration: -100%
  • sendTransactions/tbt: -100%
  • sendTransactions/total: -19%
  • 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.8s
  • 🟡 importSrpHome/FCP: p75 1.8s
  • 🟡 sendTransactions/FCP: p75 1.9s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]
Bundle size diffs
  • background: 111 Bytes (0%)
  • ui: 500 Bytes (0%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: 0 Bytes (0%)
  • zip: 216 Bytes (0%)

@gauthierpetetin
gauthierpetetin force-pushed the refactor/analytics-migrate-notifications branch from f818574 to eac630b Compare June 26, 2026 05:14
@gauthierpetetin
gauthierpetetin force-pushed the refactor/analytics-migrate-notifications branch from eac630b to 31f7bb1 Compare June 26, 2026 05:29
@gauthierpetetin
gauthierpetetin force-pushed the refactor/analytics-migrate-notifications branch from 31f7bb1 to 221c931 Compare June 26, 2026 06:01
@gauthierpetetin
gauthierpetetin force-pushed the refactor/analytics-migrate-notifications branch from 221c931 to 5c3cd70 Compare June 26, 2026 06:12
@gauthierpetetin
gauthierpetetin force-pushed the refactor/analytics-migrate-notifications branch from 5c3cd70 to 1d231e4 Compare June 26, 2026 06:17
@metamask-ci

metamask-ci Bot commented Jun 26, 2026

Copy link
Copy Markdown
Contributor
Builds ready [1d231e4] [reused from 31f7bb1]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 0 pass · 🟡 0 warn · 🔴 0 fail)

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

Interaction Benchmarks · Samples: 5

⚠️ Missing data: chrome/webpack/interactionUserActions, firefox/webpack/interactionUserActions

✅ No regressions detected

Startup Benchmarks · Samples: 100

⚠️ Missing data: chrome/webpack/startupStandardHome, chrome/webpack/startupPowerUserHome, firefox/webpack/startupStandardHome, firefox/webpack/startupPowerUserHome

✅ No regressions detected

User Journey Benchmarks · Samples: 5 · mock API

⚠️ Missing data: chrome/webpack/userJourneyOnboardingImport, chrome/webpack/userJourneyOnboardingNew, chrome/webpack/userJourneyAssets, chrome/webpack/userJourneyAccountManagement, chrome/webpack/userJourneyTransactions, firefox/webpack/userJourneyOnboardingImport, firefox/webpack/userJourneyOnboardingNew, firefox/webpack/userJourneyAssets, firefox/webpack/userJourneyAccountManagement, firefox/webpack/userJourneyTransactions

✅ No regressions detected

Dapp Page Load Benchmarks · Samples: 100

⚠️ Missing data: chrome/webpack/pageLoadBenchmark

✅ No regressions detected

Bundle size diffs: data not available.

@gauthierpetetin
gauthierpetetin force-pushed the refactor/analytics-migrate-notifications branch from 1d231e4 to 697cf42 Compare June 26, 2026 07:19
@gauthierpetetin
gauthierpetetin force-pushed the refactor/analytics-migrate-notifications branch from 697cf42 to eb39a08 Compare June 26, 2026 07:59
@gauthierpetetin
gauthierpetetin force-pushed the refactor/analytics-migrate-notifications branch from eb39a08 to 8dc1e35 Compare June 26, 2026 08:32
The helpers file was not imported by any integration test in this PR.

Co-authored-by: Cursor <cursoragent@cursor.com>
type MockVar = any;

describe('SnapFooterButton', () => {
const store = configureStore(mockState);

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

store is required because useAnalytics() depends on Redux

gauthierpetetin and others added 2 commits July 1, 2026 08:30
…menu

Use page title for properties.location to match legacy
contextPropsIntoEventProperties PageTitle behavior.

Co-authored-by: Cursor <cursoragent@cursor.com>
Reconcile with main's notification preferences refactor: keep analytics
createEventBuilder migration, adopt simplified global menu notifications
flow, remove deleted turn-on-notifications components, and update
integration test assertions for trackAnalyticsEvent.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gauthierpetetin
gauthierpetetin marked this pull request as ready for review July 1, 2026 06:47
@gauthierpetetin
gauthierpetetin requested review from a team as code owners July 1, 2026 06:47
@metamask-ci

metamask-ci Bot commented Jul 1, 2026

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

Baseline (latest main): 1716549 | Date: 6/29/2026 | Pipeline: 28498439624 | 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: -22%
  • loadNewAccount/total: -22%
  • loadNewAccount/inp: +39%
  • bridgeUserActions/bridge_load_page: -40%
  • bridgeUserActions/bridge_load_asset_picker: -29%
  • bridgeUserActions/longTaskCount: -17%
  • bridgeUserActions/longTaskTotalDuration: -17%
  • bridgeUserActions/tbt: -18%
  • bridgeUserActions/inp: +38%
  • loadNewAccount/load_new_account: +617%
  • loadNewAccount/total: +617%
  • loadNewAccount/inp: -26%
  • loadNewAccount/lcp: +1097%
  • confirmTx/confirm_tx: +12%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/total: +12%
  • confirmTx/inp: +12%
  • confirmTx/fcp: -48%
  • confirmTx/lcp: +1101%
  • bridgeUserActions/bridge_load_page: +153%
  • bridgeUserActions/bridge_load_asset_picker: +33%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +18%
  • bridgeUserActions/inp: -14%
  • bridgeUserActions/fcp: -46%
  • bridgeUserActions/lcp: +1195%
Startup Benchmarks · Samples: 100
Benchmarkchrome-webpackfirefox-webpack
startupStandardHome
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
startupPowerUserHome
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/numNetworkReqs: +50%
  • startupPowerUserHome/domInteractive: +12%
  • startupStandardHome/domInteractive: -21%
  • startupStandardHome/fcp: -21%
  • startupPowerUserHome/domInteractive: -24%
  • startupPowerUserHome/inp: -12%
  • startupPowerUserHome/fcp: -23%

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

  • 🔴 startupPowerUserHome/INP: p75 560ms
  • 🟡 startupPowerUserHome/LCP: p75 3.5s
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/doneButtonToHomeScreen: -86%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -97%
  • onboardingImportWallet/longTaskCount: -80%
  • onboardingImportWallet/longTaskTotalDuration: -93%
  • onboardingImportWallet/longTaskMaxDuration: -90%
  • onboardingImportWallet/tbt: -98%
  • onboardingImportWallet/total: -85%
  • onboardingNewWallet/doneButtonToAssetList: -32%
  • onboardingNewWallet/longTaskCount: -50%
  • onboardingNewWallet/longTaskTotalDuration: -48%
  • onboardingNewWallet/tbt: -36%
  • onboardingNewWallet/total: -27%
  • solanaAssetDetails/assetClickToPriceChart: -56%
  • solanaAssetDetails/total: -56%
  • solanaAssetDetails/cls: +1620%
  • importSrpHome/loginToHomeScreen: -11%
  • importSrpHome/homeAfterImportWithNewWallet: -34%
  • importSrpHome/longTaskCount: -19%
  • importSrpHome/longTaskTotalDuration: -26%
  • importSrpHome/longTaskMaxDuration: -16%
  • importSrpHome/tbt: -32%
  • importSrpHome/total: -24%
  • importSrpHome/inp: -30%
  • importSrpHome/lcp: -52%
  • importSrpHome/cls: -47%
  • sendTransactions/openSendPageFromHome: -30%
  • sendTransactions/selectTokenToSendFormLoaded: -58%
  • sendTransactions/reviewTransactionToConfirmationPage: +26%
  • sendTransactions/longTaskCount: -20%
  • sendTransactions/longTaskTotalDuration: -30%
  • sendTransactions/longTaskMaxDuration: -15%
  • sendTransactions/tbt: -77%
  • sendTransactions/total: +27%
  • sendTransactions/inp: -15%
  • sendTransactions/lcp: -14%
  • 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.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 [🚨 Warning! Bundle size has increased!]
  • background: 37.85 KiB (0.34%)
  • ui: 15.01 KiB (0.09%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: 308 Bytes (0.02%)
  • zip: 18.7 KiB (0.07%)

The integration test expects trackAnalyticsEvent RPC after toggling marketing
preferences, which requires createEventBuilder instead of legacy trackEvent.

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

metamask-ci Bot commented Jul 1, 2026

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

Baseline (latest main): 1716549 | Date: 6/29/2026 | Pipeline: 28505327370 | 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: -13%
  • loadNewAccount/total: -13%
  • loadNewAccount/inp: +97%
  • confirmTx/longTaskTotalDuration: +16%
  • confirmTx/tbt: +26%
  • confirmTx/inp: +12%
  • bridgeUserActions/bridge_load_page: -21%
  • bridgeUserActions/bridge_load_asset_picker: -21%
  • bridgeUserActions/bridge_search_token: +11%
  • bridgeUserActions/longTaskCount: -17%
  • bridgeUserActions/longTaskTotalDuration: -12%
  • loadNewAccount/inp: -18%
  • loadNewAccount/fcp: -48%
  • loadNewAccount/lcp: +1025%
  • confirmTx/confirm_tx: +10%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/total: +10%
  • confirmTx/inp: +12%
  • confirmTx/fcp: -48%
  • confirmTx/lcp: +1093%
  • bridgeUserActions/bridge_load_page: +85%
  • bridgeUserActions/bridge_load_asset_picker: +36%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +11%
  • bridgeUserActions/inp: -22%
  • bridgeUserActions/lcp: +1166%

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

  • 🟡 loadNewAccount/FCP: p75 1.9s
  • 🟡 confirmTx/FCP: p75 1.9s
  • 🟡 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/setupStore: +16%
  • startupStandardHome/numNetworkReqs: +45%
  • startupStandardHome/domInteractive: -25%
  • startupStandardHome/fcp: -24%
  • startupPowerUserHome/domInteractive: -26%
  • startupPowerUserHome/backgroundConnect: -15%
  • startupPowerUserHome/inp: -20%
  • startupPowerUserHome/fcp: -26%

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

  • 🟡 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/srpButtonToSrpForm: +29%
  • onboardingImportWallet/confirmSrpToPwForm: +29%
  • onboardingImportWallet/pwFormToMetricsScreen: +22%
  • onboardingImportWallet/metricsToWalletReadyScreen: +36%
  • onboardingImportWallet/doneButtonToHomeScreen: -86%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -59%
  • onboardingImportWallet/longTaskCount: -60%
  • onboardingImportWallet/longTaskTotalDuration: -87%
  • onboardingImportWallet/longTaskMaxDuration: -89%
  • onboardingImportWallet/tbt: -96%
  • onboardingImportWallet/total: -84%
  • onboardingNewWallet/doneButtonToAssetList: -30%
  • onboardingNewWallet/longTaskCount: -50%
  • onboardingNewWallet/longTaskTotalDuration: -57%
  • onboardingNewWallet/longTaskMaxDuration: -24%
  • onboardingNewWallet/tbt: -59%
  • onboardingNewWallet/total: -29%
  • solanaAssetDetails/assetClickToPriceChart: -68%
  • solanaAssetDetails/total: -68%
  • solanaAssetDetails/cls: +1172%
  • importSrpHome/loginToHomeScreen: -13%
  • importSrpHome/homeAfterImportWithNewWallet: -18%
  • importSrpHome/longTaskCount: -27%
  • importSrpHome/longTaskTotalDuration: -37%
  • importSrpHome/longTaskMaxDuration: -20%
  • importSrpHome/tbt: -33%
  • importSrpHome/total: -18%
  • importSrpHome/lcp: -57%
  • importSrpHome/cls: -47%
  • sendTransactions/openSendPageFromHome: -26%
  • sendTransactions/selectTokenToSendFormLoaded: -42%
  • sendTransactions/longTaskCount: -20%
  • sendTransactions/longTaskTotalDuration: -25%
  • sendTransactions/tbt: -47%
  • sendTransactions/inp: -15%
  • sendTransactions/lcp: -16%
  • sendTransactions/cls: -40%

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

  • 🟡 assetDetails/FCP: p75 2.0s
  • 🟡 solanaAssetDetails/FCP: p75 1.8s
  • 🟡 importSrpHome/INP: p75 248ms
  • 🟡 solanaAssetDetails/FCP: p75 1.8s
  • 🟡 importSrpHome/FCP: p75 2.0s
  • 🟡 sendTransactions/FCP: p75 1.9s
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.09 KiB (0.35%)
  • ui: 19.05 KiB (0.11%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: 420 Bytes (0.02%)
  • zip: 19.67 KiB (0.07%)

…ests

NotificationSettingsSection now calls useAnalytics, which pulls
useSegmentContext and requires confirmTransaction state missing from
the minimal test store.

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
60.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 [de116a3]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 17 pass · 🟡 7 warn · 🔴 0 fail)

Baseline (latest main): 1716549 | Date: 6/29/2026 | Pipeline: 28508262720 | 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]
🔴 bridge_load_asset_picker

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/load_new_account: -20%
  • loadNewAccount/total: -20%
  • loadNewAccount/inp: +48%
  • confirmTx/inp: +12%
  • confirmTx/lcp: -11%
  • bridgeUserActions/bridge_load_page: -37%
  • bridgeUserActions/bridge_load_asset_picker: -22%
  • bridgeUserActions/longTaskCount: -17%
  • bridgeUserActions/longTaskTotalDuration: -26%
  • bridgeUserActions/longTaskMaxDuration: -17%
  • bridgeUserActions/tbt: -40%
  • bridgeUserActions/inp: +55%
  • loadNewAccount/load_new_account: +64%
  • loadNewAccount/total: +64%
  • loadNewAccount/inp: -18%
  • loadNewAccount/fcp: -52%
  • loadNewAccount/lcp: +1108%
  • confirmTx/confirm_tx: +11%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/total: +11%
  • confirmTx/lcp: +1081%
  • bridgeUserActions/bridge_load_page: +78%
  • bridgeUserActions/bridge_load_asset_picker: +1337%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +194%
  • bridgeUserActions/inp: -22%
  • bridgeUserActions/fcp: -48%
  • bridgeUserActions/lcp: +1183%

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

  • 🟡 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: -27%
  • startupStandardHome/fcp: -26%
  • startupPowerUserHome/backgroundConnect: -14%
  • startupPowerUserHome/firstReactRender: +11%

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

  • 🟡 startupPowerUserHome/INP: p75 208ms
  • 🟡 startupPowerUserHome/LCP: p75 3.7s
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/doneButtonToHomeScreen: -86%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -98%
  • onboardingImportWallet/longTaskCount: -80%
  • onboardingImportWallet/longTaskTotalDuration: -91%
  • onboardingImportWallet/longTaskMaxDuration: -87%
  • onboardingImportWallet/tbt: -96%
  • onboardingImportWallet/total: -85%
  • onboardingNewWallet/skipBackupToMetricsScreen: +10%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: -22%
  • onboardingNewWallet/doneButtonToAssetList: -11%
  • onboardingNewWallet/longTaskTotalDuration: -30%
  • onboardingNewWallet/longTaskMaxDuration: -27%
  • onboardingNewWallet/tbt: -64%
  • solanaAssetDetails/assetClickToPriceChart: -68%
  • solanaAssetDetails/total: -68%
  • solanaAssetDetails/inp: -38%
  • solanaAssetDetails/cls: +1604%
  • importSrpHome/loginToHomeScreen: -11%
  • importSrpHome/openAccountMenuAfterLogin: -16%
  • importSrpHome/homeAfterImportWithNewWallet: -23%
  • importSrpHome/longTaskCount: -27%
  • importSrpHome/longTaskTotalDuration: -31%
  • importSrpHome/longTaskMaxDuration: -10%
  • importSrpHome/tbt: -34%
  • importSrpHome/total: -21%
  • importSrpHome/inp: -21%
  • importSrpHome/lcp: -55%
  • importSrpHome/cls: -47%
  • sendTransactions/openSendPageFromHome: -31%
  • sendTransactions/selectTokenToSendFormLoaded: -53%
  • sendTransactions/reviewTransactionToConfirmationPage: +41%
  • sendTransactions/longTaskCount: -20%
  • sendTransactions/longTaskTotalDuration: -19%
  • sendTransactions/longTaskMaxDuration: -12%
  • sendTransactions/tbt: -40%
  • sendTransactions/total: +40%
  • sendTransactions/inp: -28%
  • sendTransactions/fcp: -11%
  • sendTransactions/cls: -40%

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

  • 🟡 importSrpHome/INP: p75 208ms
  • 🟡 assetDetails/FCP: p75 1.9s
  • 🟡 solanaAssetDetails/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 [🚨 Warning! Bundle size has increased!]
  • background: 38.13 KiB (0.35%)
  • ui: 19.01 KiB (0.11%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: 420 Bytes (0.02%)
  • zip: 19.7 KiB (0.07%)

@gauthierpetetin gauthierpetetin self-assigned this Jul 1, 2026

@baptiste-marchand baptiste-marchand 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.

LGTM for Engagement files

@gauthierpetetin
gauthierpetetin added this pull request to the merge queue Jul 2, 2026
Merged via the queue into main with commit 4f06b8a Jul 2, 2026
386 of 390 checks passed
@gauthierpetetin
gauthierpetetin deleted the refactor/analytics-migrate-notifications branch July 2, 2026 15:44
@github-actions github-actions Bot locked and limited conversation to collaborators Jul 2, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants