Skip to content

refactor(analytics): migrate RPC method tracking middleware#43886

Merged
gauthierpetetin merged 1 commit into
mainfrom
refactor/analytics-migrate-rpc
Jul 1, 2026
Merged

refactor(analytics): migrate RPC method tracking middleware#43886
gauthierpetetin merged 1 commit into
mainfrom
refactor/analytics-migrate-rpc

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: Independent — RPC middleware only, can merge anytime.

Files in this PR: 8

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 plumbing swap with broad test updates; behavior should be equivalent aside from event payload structure. No RPC or security logic changes.

Overview
RPC method tracking middleware now emits non–signature-fragment analytics through createEventBuilder + trackEvent from app/scripts/controllers/analytics instead of metaMetricsController.trackEvent, for both the initial “requested” path and post-callback approve/reject flows. Signature flows still use MetaMetricsController event fragments unchanged.

Tests wire configureAnalytics, spy AnalyticsController:trackEvent, and assert via a getTrackedEventCall helper that maps the new event shape; several expectations were relaxed from toStrictEqual to toMatchObject where the builder payload differs from the old flat object.

Reviewed by Cursor Bugbot for commit e3d5572. 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-platform (1 files, +21 -16)
  • 📁 app/
    • 📁 scripts/
      • 📁 lib/
        • 📄 createRPCMethodTrackingMiddleware.js +21 -16

@metamask-ci

metamask-ci Bot commented Jun 25, 2026

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

Baseline (latest main): d50b2dc | Date: 6/25/2026 | Pipeline: 28177663397 | 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: -11%
  • confirmTx/inp: -12%
  • bridgeUserActions/bridge_load_page: +22%
  • bridgeUserActions/bridge_load_asset_picker: +10%
  • bridgeUserActions/longTaskCount: +43%
  • bridgeUserActions/longTaskTotalDuration: +19%
  • bridgeUserActions/tbt: -13%
  • loadNewAccount/load_new_account: +47%
  • loadNewAccount/total: +47%
  • loadNewAccount/inp: -11%
  • loadNewAccount/lcp: +1085%
  • confirmTx/confirm_tx: +12%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/total: +12%
  • confirmTx/inp: -12%
  • confirmTx/lcp: +1065%
  • bridgeUserActions/bridge_load_page: +153%
  • bridgeUserActions/bridge_load_asset_picker: +86%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +18%
  • bridgeUserActions/fcp: -48%
  • bridgeUserActions/lcp: +1106%

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

  • 🟡 loadNewAccount/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/backgroundConnect: -17%
  • startupPowerUserHome/inp: +24%
  • startupPowerUserHome/fcp: +10%

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

  • 🟡 startupPowerUserHome/INP: p75 256ms
  • 🟡 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/doneButtonToHomeScreen: -84%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -99%
  • onboardingImportWallet/longTaskCount: -55%
  • onboardingImportWallet/longTaskTotalDuration: -89%
  • onboardingImportWallet/longTaskMaxDuration: -89%
  • onboardingImportWallet/tbt: -96%
  • onboardingImportWallet/total: -86%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: -11%
  • onboardingNewWallet/doneButtonToAssetList: -31%
  • onboardingNewWallet/longTaskCount: -50%
  • onboardingNewWallet/longTaskTotalDuration: -47%
  • onboardingNewWallet/longTaskMaxDuration: -27%
  • onboardingNewWallet/tbt: -54%
  • onboardingNewWallet/total: -26%
  • solanaAssetDetails/assetClickToPriceChart: -71%
  • solanaAssetDetails/total: -71%
  • solanaAssetDetails/fcp: -16%
  • solanaAssetDetails/lcp: -55%
  • importSrpHome/loginToHomeScreen: -12%
  • importSrpHome/openAccountMenuAfterLogin: +24%
  • importSrpHome/homeAfterImportWithNewWallet: -41%
  • importSrpHome/longTaskCount: -38%
  • importSrpHome/longTaskTotalDuration: -32%
  • importSrpHome/tbt: -34%
  • importSrpHome/total: -39%
  • importSrpHome/inp: -36%
  • importSrpHome/cls: -73%
  • sendTransactions/openSendPageFromHome: -20%
  • sendTransactions/reviewTransactionToConfirmationPage: +22%
  • sendTransactions/longTaskCount: -25%
  • sendTransactions/longTaskTotalDuration: -45%
  • sendTransactions/longTaskMaxDuration: -31%
  • sendTransactions/tbt: -93%
  • sendTransactions/total: +22%
  • sendTransactions/inp: -27%
  • sendTransactions/lcp: -20%
  • sendTransactions/cls: -93%

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

  • 🟡 assetDetails/FCP: p75 1.8s
  • 🟡 assetDetails/FCP: p75 1.8s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]
Bundle size diffs
  • background: 309 Bytes (0%)
  • ui: 40 Bytes (0%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: 0 Bytes (0%)
  • zip: 137 Bytes (0%)

@metamask-ci

metamask-ci Bot commented Jun 26, 2026

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

Baseline (latest main): 1e3d238 | Date: 6/25/2026 | Pipeline: 28216071614 | 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/cls: -75%
  • confirmTx/inp: -14%
  • bridgeUserActions/bridge_load_page: +106%
  • bridgeUserActions/longTaskCount: +67%
  • bridgeUserActions/longTaskTotalDuration: +35%
  • loadNewAccount/inp: -29%
  • loadNewAccount/lcp: +966%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/inp: -22%
  • confirmTx/fcp: -51%
  • confirmTx/lcp: +1196%
  • bridgeUserActions/bridge_load_page: +176%
  • bridgeUserActions/bridge_load_asset_picker: +64%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +26%
  • bridgeUserActions/inp: -12%
  • bridgeUserActions/fcp: -62%
  • bridgeUserActions/lcp: +1194%

🌐 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/uiStartup: -22%
  • startupStandardHome/load: -24%
  • startupStandardHome/domContentLoaded: -24%
  • startupStandardHome/domInteractive: -35%
  • startupStandardHome/backgroundConnect: -21%
  • startupStandardHome/firstReactRender: -26%
  • startupStandardHome/initialActions: -50%
  • startupStandardHome/loadScripts: -24%
  • startupStandardHome/setupStore: -49%
  • startupStandardHome/fcp: -28%
  • startupStandardHome/lcp: -23%
  • startupPowerUserHome/setupStore: +31%

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

  • 🟡 startupPowerUserHome/INP: p75 208ms
  • 🟡 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]
🟡 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: -35%
  • onboardingImportWallet/doneButtonToHomeScreen: -76%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -100%
  • onboardingImportWallet/longTaskCount: -75%
  • onboardingImportWallet/longTaskTotalDuration: -90%
  • onboardingImportWallet/longTaskMaxDuration: -86%
  • onboardingImportWallet/tbt: -95%
  • onboardingImportWallet/total: -83%
  • onboardingNewWallet/srpButtonToPwForm: -18%
  • onboardingNewWallet/createPwToRecoveryScreen: -20%
  • onboardingNewWallet/skipBackupToMetricsScreen: -20%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: -11%
  • onboardingNewWallet/doneButtonToAssetList: -61%
  • onboardingNewWallet/longTaskCount: -62%
  • onboardingNewWallet/longTaskTotalDuration: -70%
  • onboardingNewWallet/longTaskMaxDuration: -50%
  • onboardingNewWallet/tbt: -86%
  • onboardingNewWallet/total: -55%
  • solanaAssetDetails/assetClickToPriceChart: -80%
  • solanaAssetDetails/total: -80%
  • solanaAssetDetails/inp: -26%
  • solanaAssetDetails/fcp: -37%
  • solanaAssetDetails/lcp: -24%
  • solanaAssetDetails/cls: -94%
  • importSrpHome/openAccountMenuAfterLogin: +29%
  • importSrpHome/homeAfterImportWithNewWallet: -30%
  • importSrpHome/longTaskCount: -33%
  • importSrpHome/longTaskTotalDuration: -28%
  • importSrpHome/tbt: -29%
  • importSrpHome/total: -24%
  • importSrpHome/inp: -28%
  • importSrpHome/cls: -53%
  • sendTransactions/openSendPageFromHome: -27%
  • sendTransactions/selectTokenToSendFormLoaded: +25%
  • sendTransactions/longTaskCount: -50%
  • sendTransactions/longTaskTotalDuration: -60%
  • sendTransactions/longTaskMaxDuration: -36%
  • sendTransactions/tbt: -100%
  • sendTransactions/inp: -17%
  • sendTransactions/cls: -92%

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

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

@metamask-ci

metamask-ci Bot commented Jun 26, 2026

Copy link
Copy Markdown
Contributor
Builds ready [2a9098d] [reused from 627035e]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 18 pass · 🟡 6 warn · 🔴 0 fail)

Baseline (latest main): 1e3d238 | Date: 6/25/2026 | Pipeline: 28220922376 | 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/cls: -75%
  • confirmTx/inp: -14%
  • bridgeUserActions/bridge_load_page: +106%
  • bridgeUserActions/longTaskCount: +67%
  • bridgeUserActions/longTaskTotalDuration: +35%
  • loadNewAccount/inp: -29%
  • loadNewAccount/lcp: +966%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/inp: -22%
  • confirmTx/fcp: -51%
  • confirmTx/lcp: +1196%
  • bridgeUserActions/bridge_load_page: +176%
  • bridgeUserActions/bridge_load_asset_picker: +64%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +26%
  • bridgeUserActions/inp: -12%
  • bridgeUserActions/fcp: -62%
  • bridgeUserActions/lcp: +1194%

🌐 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/uiStartup: -22%
  • startupStandardHome/load: -24%
  • startupStandardHome/domContentLoaded: -24%
  • startupStandardHome/domInteractive: -35%
  • startupStandardHome/backgroundConnect: -21%
  • startupStandardHome/firstReactRender: -26%
  • startupStandardHome/initialActions: -50%
  • startupStandardHome/loadScripts: -24%
  • startupStandardHome/setupStore: -49%
  • startupStandardHome/fcp: -28%
  • startupStandardHome/lcp: -23%
  • startupPowerUserHome/setupStore: +31%

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

  • 🟡 startupPowerUserHome/INP: p75 208ms
  • 🟡 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]
🟡 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: -35%
  • onboardingImportWallet/doneButtonToHomeScreen: -76%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -100%
  • onboardingImportWallet/longTaskCount: -75%
  • onboardingImportWallet/longTaskTotalDuration: -90%
  • onboardingImportWallet/longTaskMaxDuration: -86%
  • onboardingImportWallet/tbt: -95%
  • onboardingImportWallet/total: -83%
  • onboardingNewWallet/srpButtonToPwForm: -18%
  • onboardingNewWallet/createPwToRecoveryScreen: -20%
  • onboardingNewWallet/skipBackupToMetricsScreen: -20%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: -11%
  • onboardingNewWallet/doneButtonToAssetList: -61%
  • onboardingNewWallet/longTaskCount: -62%
  • onboardingNewWallet/longTaskTotalDuration: -70%
  • onboardingNewWallet/longTaskMaxDuration: -50%
  • onboardingNewWallet/tbt: -86%
  • onboardingNewWallet/total: -55%
  • solanaAssetDetails/assetClickToPriceChart: -80%
  • solanaAssetDetails/total: -80%
  • solanaAssetDetails/inp: -26%
  • solanaAssetDetails/fcp: -37%
  • solanaAssetDetails/lcp: -24%
  • solanaAssetDetails/cls: -94%
  • importSrpHome/openAccountMenuAfterLogin: +29%
  • importSrpHome/homeAfterImportWithNewWallet: -30%
  • importSrpHome/longTaskCount: -33%
  • importSrpHome/longTaskTotalDuration: -28%
  • importSrpHome/tbt: -29%
  • importSrpHome/total: -24%
  • importSrpHome/inp: -28%
  • importSrpHome/cls: -53%
  • sendTransactions/openSendPageFromHome: -27%
  • sendTransactions/selectTokenToSendFormLoaded: +25%
  • sendTransactions/longTaskCount: -50%
  • sendTransactions/longTaskTotalDuration: -60%
  • sendTransactions/longTaskMaxDuration: -36%
  • sendTransactions/tbt: -100%
  • sendTransactions/inp: -17%
  • sendTransactions/cls: -92%

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

  • 🟡 sendTransactions/FCP: p75 1.8s
  • 🟡 assetDetails/FCP: p75 2.0s
  • 🟡 solanaAssetDetails/FCP: p75 1.9s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]
Bundle sizes
  • background: 10.75 MiB
  • ui: 16.87 MiB
  • common: 0 Bytes
  • other: 997.96 KiB
  • contentScripts: 1.79 MiB
  • zip: 26.12 MiB
No bundle-size baseline commit was available for this build, so diff values are omitted.

@metamask-ci

metamask-ci Bot commented Jun 28, 2026

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

Baseline (latest main): 04f852d | Date: 6/26/2026 | Pipeline: 28331669994 | 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: -22%
  • confirmTx/tbt: -12%
  • confirmTx/inp: -26%
  • bridgeUserActions/bridge_load_page: -39%
  • bridgeUserActions/longTaskCount: -17%
  • bridgeUserActions/longTaskTotalDuration: -25%
  • bridgeUserActions/longTaskMaxDuration: -17%
  • bridgeUserActions/tbt: -39%
  • loadNewAccount/load_new_account: +30%
  • loadNewAccount/total: +30%
  • loadNewAccount/inp: -22%
  • loadNewAccount/lcp: +1093%
  • confirmTx/confirm_tx: +10%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/total: +10%
  • confirmTx/inp: -26%
  • confirmTx/fcp: -51%
  • confirmTx/lcp: +1115%
  • bridgeUserActions/bridge_load_page: +67%
  • bridgeUserActions/bridge_load_asset_picker: +137%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +36%
  • bridgeUserActions/lcp: +1116%

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

  • 🟡 loadNewAccount/FCP: p75 1.8s
  • 🟡 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/lcp: -40%
  • startupStandardHome/domInteractive: -22%
  • startupStandardHome/fcp: -20%
  • startupPowerUserHome/domInteractive: -19%
  • startupPowerUserHome/firstReactRender: -11%
  • startupPowerUserHome/setupStore: -46%
  • startupPowerUserHome/inp: +12%
  • startupPowerUserHome/fcp: -22%

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

  • 🟡 startupPowerUserHome/INP: p75 224ms
  • 🟡 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/metricsToWalletReadyScreen: -18%
  • onboardingImportWallet/doneButtonToHomeScreen: -83%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -99%
  • onboardingImportWallet/longTaskCount: -74%
  • onboardingImportWallet/longTaskTotalDuration: -92%
  • onboardingImportWallet/longTaskMaxDuration: -88%
  • onboardingImportWallet/tbt: -98%
  • onboardingImportWallet/total: -85%
  • onboardingNewWallet/skipBackupToMetricsScreen: +24%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: +11%
  • onboardingNewWallet/doneButtonToAssetList: -26%
  • onboardingNewWallet/longTaskCount: -55%
  • onboardingNewWallet/longTaskTotalDuration: -44%
  • onboardingNewWallet/longTaskMaxDuration: -20%
  • onboardingNewWallet/tbt: -49%
  • onboardingNewWallet/total: -22%
  • solanaAssetDetails/assetClickToPriceChart: -70%
  • solanaAssetDetails/longTaskCount: -100%
  • solanaAssetDetails/longTaskTotalDuration: -100%
  • solanaAssetDetails/longTaskMaxDuration: -100%
  • solanaAssetDetails/tbt: -100%
  • solanaAssetDetails/total: -70%
  • solanaAssetDetails/cls: +192%
  • importSrpHome/loginToHomeScreen: -20%
  • importSrpHome/homeAfterImportWithNewWallet: -48%
  • importSrpHome/longTaskCount: -38%
  • importSrpHome/longTaskTotalDuration: -42%
  • importSrpHome/longTaskMaxDuration: -12%
  • importSrpHome/tbt: -43%
  • importSrpHome/total: -42%
  • importSrpHome/inp: -39%
  • importSrpHome/cls: -52%
  • sendTransactions/openSendPageFromHome: -31%
  • sendTransactions/longTaskCount: -44%
  • sendTransactions/longTaskTotalDuration: -46%
  • sendTransactions/longTaskMaxDuration: -13%
  • sendTransactions/tbt: -67%
  • sendTransactions/inp: -13%
  • sendTransactions/cls: -84%

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

  • 🟡 assetDetails/FCP: p75 1.9s
  • 🟡 solanaAssetDetails/FCP: p75 1.9s
  • 🟡 importSrpHome/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: 174 Bytes (0%)
  • ui: 94 Bytes (0%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: 0 Bytes (0%)
  • zip: 64 Bytes (0%)

@metamask-ci

metamask-ci Bot commented Jun 29, 2026

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

Baseline (latest main): f365910 | Date: 6/29/2026 | Pipeline: 28373004415 | 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: +55%
  • loadNewAccount/total: +55%
  • loadNewAccount/inp: -12%
  • bridgeUserActions/bridge_load_asset_picker: +15%
  • bridgeUserActions/longTaskCount: -17%
  • bridgeUserActions/tbt: +13%
  • loadNewAccount/load_new_account: +793%
  • loadNewAccount/total: +793%
  • loadNewAccount/inp: -12%
  • loadNewAccount/fcp: -58%
  • loadNewAccount/lcp: +1078%
  • confirmTx/confirm_tx: +12%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/total: +12%
  • confirmTx/inp: +53%
  • confirmTx/fcp: -50%
  • confirmTx/lcp: +1134%
  • bridgeUserActions/bridge_load_page: +172%
  • bridgeUserActions/bridge_load_asset_picker: +54%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +26%
  • bridgeUserActions/lcp: +1132%

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

  • 🟡 loadNewAccount/FCP: p75 2.0s
  • 🟡 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: -37%
  • startupStandardHome/initialActions: +11%
  • startupStandardHome/fcp: -34%
  • startupPowerUserHome/setupStore: +23%
  • startupPowerUserHome/inp: -14%

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

  • 🟡 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: -85%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -98%
  • onboardingImportWallet/longTaskCount: -50%
  • onboardingImportWallet/longTaskTotalDuration: -84%
  • onboardingImportWallet/longTaskMaxDuration: -85%
  • onboardingImportWallet/tbt: -94%
  • onboardingImportWallet/total: -84%
  • onboardingNewWallet/srpButtonToPwForm: +11%
  • onboardingNewWallet/createPwToRecoveryScreen: +22%
  • onboardingNewWallet/skipBackupToMetricsScreen: +22%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: +39%
  • onboardingNewWallet/doneButtonToAssetList: -33%
  • onboardingNewWallet/longTaskCount: -55%
  • onboardingNewWallet/longTaskTotalDuration: -46%
  • onboardingNewWallet/longTaskMaxDuration: -26%
  • onboardingNewWallet/tbt: -62%
  • onboardingNewWallet/total: -27%
  • solanaAssetDetails/assetClickToPriceChart: -75%
  • solanaAssetDetails/longTaskCount: -100%
  • solanaAssetDetails/longTaskTotalDuration: -100%
  • solanaAssetDetails/longTaskMaxDuration: -100%
  • solanaAssetDetails/total: -75%
  • solanaAssetDetails/cls: +1620%
  • importSrpHome/loginToHomeScreen: -19%
  • importSrpHome/openAccountMenuAfterLogin: -20%
  • importSrpHome/homeAfterImportWithNewWallet: +11%
  • importSrpHome/longTaskTotalDuration: -25%
  • importSrpHome/tbt: -46%
  • importSrpHome/inp: -13%
  • importSrpHome/cls: -54%
  • sendTransactions/openSendPageFromHome: -33%
  • sendTransactions/selectTokenToSendFormLoaded: +59%
  • sendTransactions/reviewTransactionToConfirmationPage: +60%
  • sendTransactions/longTaskCount: -29%
  • sendTransactions/longTaskTotalDuration: -33%
  • sendTransactions/longTaskMaxDuration: -11%
  • sendTransactions/tbt: -100%
  • sendTransactions/total: +58%
  • sendTransactions/inp: -33%
  • sendTransactions/cls: -34%

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

  • 🟡 assetDetails/FCP: p75 1.8s
  • 🟡 importSrpHome/INP: p75 216ms
  • 🟡 importSrpHome/FCP: p75 1.8s
  • 🟡 sendTransactions/FCP: p75 1.9s
  • 🟡 assetDetails/FCP: p75 1.9s
  • 🟡 solanaAssetDetails/FCP: p75 1.9s
  • 🟡 importSrpHome/FCP: p75 1.9s
  • 🟡 sendTransactions/FCP: p75 1.9s
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: +13%
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: -20.3 KiB (-0.18%)
  • ui: 45.21 KiB (0.26%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: -258 Bytes (-0.01%)
  • zip: 8.41 KiB (0.03%)

Replace metaMetricsController.trackEvent with createEventBuilder + trackEvent
at RPC middleware call sites. Limit scope to middleware and its tests only.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gauthierpetetin
gauthierpetetin force-pushed the refactor/analytics-migrate-rpc branch from 8eed5b3 to e3d5572 Compare June 29, 2026 13:45
@gauthierpetetin
gauthierpetetin marked this pull request as ready for review June 29, 2026 13:46
@gauthierpetetin
gauthierpetetin requested a review from a team as a code owner June 29, 2026 13:46
@gauthierpetetin
gauthierpetetin requested a review from Copilot June 29, 2026 13:46

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 migrates RPC method tracking middleware analytics emissions from legacy MetaMetricsController.trackEvent call sites to the new background analytics helpers (createEventBuilder + trackEvent) to align with the ongoing analytics migration effort.

Changes:

  • Replaced direct metaMetricsController.trackEvent usage in createRPCMethodTrackingMiddleware with createEventBuilder(...).build(...) + trackEvent(...).
  • Updated the middleware unit tests to spy on AnalyticsController:trackEvent and added a helper to normalize the new tracked-event call shape.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
app/scripts/lib/createRPCMethodTrackingMiddleware.js Switches non-signature-fragment RPC tracking to the AnalyticsController-based createEventBuilder/trackEvent path.
app/scripts/lib/createRPCMethodTrackingMiddleware.test.js Reworks assertions to validate the new AnalyticsController tracking call shape and initializes analytics test plumbing.

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

Comment thread app/scripts/lib/createRPCMethodTrackingMiddleware.test.js
@sonarqubecloud

Copy link
Copy Markdown

@metamask-ci

metamask-ci Bot commented Jun 29, 2026

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

Baseline (latest main): f365910 | Date: 6/29/2026 | Pipeline: 28376674130 | 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: -13%
  • loadNewAccount/total: -13%
  • loadNewAccount/inp: -12%
  • confirmTx/lcp: +11%
  • bridgeUserActions/bridge_load_page: +35%
  • bridgeUserActions/longTaskCount: -17%
  • bridgeUserActions/tbt: +10%
  • bridgeUserActions/lcp: +15%
  • loadNewAccount/load_new_account: +538%
  • loadNewAccount/total: +538%
  • loadNewAccount/inp: +14%
  • loadNewAccount/lcp: +1053%
  • confirmTx/confirm_tx: +11%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/total: +11%
  • confirmTx/lcp: +1116%
  • bridgeUserActions/bridge_load_page: +96%
  • bridgeUserActions/bridge_load_asset_picker: +71%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +21%
  • bridgeUserActions/inp: -12%
  • bridgeUserActions/fcp: -49%
  • bridgeUserActions/lcp: +1191%

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

  • 🟡 confirmTx/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: -30%
  • startupStandardHome/initialActions: +11%
  • startupStandardHome/fcp: -30%
  • startupPowerUserHome/setupStore: +23%

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

  • 🟡 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/pwFormToMetricsScreen: +24%
  • onboardingImportWallet/doneButtonToHomeScreen: -85%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -98%
  • onboardingImportWallet/longTaskCount: -75%
  • onboardingImportWallet/longTaskTotalDuration: -88%
  • onboardingImportWallet/longTaskMaxDuration: -88%
  • onboardingImportWallet/tbt: -97%
  • onboardingImportWallet/total: -85%
  • onboardingNewWallet/skipBackupToMetricsScreen: +15%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: -13%
  • onboardingNewWallet/doneButtonToAssetList: -34%
  • onboardingNewWallet/longTaskCount: -55%
  • onboardingNewWallet/longTaskTotalDuration: -43%
  • onboardingNewWallet/longTaskMaxDuration: -11%
  • onboardingNewWallet/tbt: -41%
  • onboardingNewWallet/total: -29%
  • solanaAssetDetails/assetClickToPriceChart: -77%
  • solanaAssetDetails/longTaskCount: -100%
  • solanaAssetDetails/longTaskTotalDuration: -100%
  • solanaAssetDetails/longTaskMaxDuration: -100%
  • solanaAssetDetails/total: -77%
  • solanaAssetDetails/cls: +1620%
  • importSrpHome/loginToHomeScreen: -20%
  • importSrpHome/homeAfterImportWithNewWallet: -30%
  • importSrpHome/longTaskCount: -32%
  • importSrpHome/longTaskTotalDuration: -38%
  • importSrpHome/longTaskMaxDuration: -23%
  • importSrpHome/tbt: -38%
  • importSrpHome/total: -27%
  • importSrpHome/inp: -29%
  • importSrpHome/cls: -54%
  • sendTransactions/openSendPageFromHome: -34%
  • sendTransactions/selectTokenToSendFormLoaded: -35%
  • sendTransactions/reviewTransactionToConfirmationPage: +48%
  • sendTransactions/longTaskCount: -29%
  • sendTransactions/longTaskTotalDuration: -27%
  • sendTransactions/tbt: -35%
  • sendTransactions/total: +47%
  • sendTransactions/inp: -22%
  • sendTransactions/cls: -34%

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

  • 🟡 assetDetails/FCP: p75 1.9s
  • 🟡 solanaAssetDetails/FCP: p75 1.9s
  • 🟡 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: +10%
Bundle size diffs
  • background: 148 Bytes (0%)
  • ui: 40 Bytes (0%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: 0 Bytes (0%)
  • zip: 57 Bytes (0%)

@gauthierpetetin
gauthierpetetin added this pull request to the merge queue Jul 1, 2026
@github-project-automation github-project-automation Bot moved this from Needs dev review to Review finalised - Ready to be merged in PR review queue Jul 1, 2026
@gauthierpetetin gauthierpetetin self-assigned this Jul 1, 2026
Merged via the queue into main with commit e6189d6 Jul 1, 2026
213 checks passed
@gauthierpetetin
gauthierpetetin deleted the refactor/analytics-migrate-rpc branch July 1, 2026 14:26
@github-actions github-actions Bot locked and limited conversation to collaborators Jul 1, 2026
@metamaskbot metamaskbot added the release-13.39.0 Issue or pull request that will be included in release 13.39.0 label Jul 1, 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-M team-extension-platform Extension Platform team

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

5 participants