metamask-extension
metamask-extension copied to clipboard
add 'asset picker opened' and 'asset selected' tracking for bridge events
Description
Changelog
CHANGELOG entry:
Related issues
Fixes:
Manual testing steps
- Go to this page...
Screenshots/Recordings
Before
After
Pre-merge author checklist
- [ ] I've followed MetaMask Contributor Docs and MetaMask Extension Coding Standards.
- [ ] I've completed the PR template to the best of my ability
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using JSDoc format if applicable
- [ ] I’ve applied the right labels on the PR (see labeling guidelines). Not required for external contributors.
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.
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.
✨ Files requiring CODEOWNER review ✨
🔄 @MetaMask/swaps-engineers (2 files, +91 -23)
- 📁 ui/
- 📁 pages/
- 📁 bridge/
- 📁 prepare/
- 📄
bridge-input-group.tsx+29 -23 - 📄
prepare-bridge-page.tsx+62 -0
- 📄
- 📁 prepare/
- 📁 bridge/
- 📁 pages/
Builds ready [74c7b31]
- builds: chrome, firefox
- builds (beta): chrome, firefox
- builds (flask): chrome, firefox
- builds (test): chrome, firefox
- builds (test-flask): chrome, firefox
- bundle size: Bundle Size Stats
- user-actions-benchmark: User Actions Stats
- storybook: Storybook
- typescript migration: Dashboard
- all artifacts
UI Startup Metrics (1231 ± 106 ms)
| Platform | BuildType | Page | Metric | Mean (ms) | Min (ms) | Max (ms) | Std Dev (ms) | P 75 (ms) | P 95 (ms) |
|---|---|---|---|---|---|---|---|---|---|
| Chrome | Browserify | Standard Home | uiStartup | 1231 | 1013 | 1548 | 106 | 1303 | 1399 |
| load | 1009 | 843 | 1241 | 85 | 1052 | 1170 | |||
| domContentLoaded | 1004 | 837 | 1237 | 85 | 1048 | 1163 | |||
| domInteractive | 26 | 15 | 135 | 22 | 21 | 88 | |||
| firstPaint | 542 | 93 | 1178 | 395 | 1007 | 1148 | |||
| backgroundConnect | 210 | 190 | 256 | 10 | 213 | 230 | |||
| firstReactRender | 39 | 30 | 71 | 8 | 41 | 60 | |||
| getState | 38 | 17 | 150 | 22 | 40 | 89 | |||
| initialActions | 1 | 0 | 2 | 1 | 1 | 1 | |||
| loadScripts | 800 | 640 | 984 | 81 | 844 | 954 | |||
| setupStore | 10 | 7 | 24 | 3 | 11 | 18 | |||
| numNetworkReqs | 13 | 6 | 86 | 20 | 6 | 71 | |||
| Browserify | Power User Home | uiStartup | 1893 | 1587 | 2573 | 167 | 1965 | 2147 | |
| load | 1057 | 870 | 1547 | 132 | 1153 | 1271 | |||
| domContentLoaded | 1048 | 865 | 1536 | 131 | 1147 | 1263 | |||
| domInteractive | 31 | 16 | 206 | 30 | 24 | 96 | |||
| firstPaint | 584 | 93 | 1555 | 428 | 1019 | 1258 | |||
| backgroundConnect | 243 | 191 | 667 | 94 | 227 | 569 | |||
| firstReactRender | 46 | 38 | 64 | 4 | 48 | 56 | |||
| getState | 193 | 146 | 691 | 75 | 193 | 231 | |||
| initialActions | 1 | 0 | 3 | 1 | 1 | 2 | |||
| loadScripts | 838 | 676 | 1265 | 128 | 935 | 1053 | |||
| setupStore | 15 | 6 | 49 | 7 | 14 | 33 | |||
| numNetworkReqs | 72 | 58 | 148 | 20 | 70 | 130 | |||
| Webpack | Standard Home | uiStartup | 796 | 655 | 990 | 77 | 857 | 933 | |
| load | 639 | 558 | 804 | 74 | 689 | 787 | |||
| domContentLoaded | 633 | 553 | 795 | 73 | 683 | 780 | |||
| domInteractive | 25 | 15 | 81 | 17 | 22 | 76 | |||
| firstPaint | 321 | 84 | 802 | 225 | 580 | 736 | |||
| backgroundConnect | 13 | 6 | 58 | 8 | 15 | 28 | |||
| firstReactRender | 53 | 32 | 248 | 32 | 60 | 126 | |||
| getState | 27 | 13 | 81 | 12 | 35 | 46 | |||
| initialActions | 1 | 0 | 2 | 1 | 1 | 2 | |||
| loadScripts | 630 | 550 | 791 | 72 | 681 | 778 | |||
| setupStore | 12 | 6 | 38 | 6 | 14 | 27 | |||
| numNetworkReqs | 14 | 6 | 91 | 21 | 6 | 73 | |||
| Webpack | Power User Home | uiStartup | 1413 | 1076 | 2026 | 188 | 1555 | 1752 | |
| load | 728 | 592 | 1146 | 110 | 843 | 901 | |||
| domContentLoaded | 721 | 584 | 1141 | 110 | 837 | 890 | |||
| domInteractive | 31 | 17 | 165 | 26 | 26 | 99 | |||
| firstPaint | 328 | 82 | 923 | 244 | 610 | 852 | |||
| backgroundConnect | 86 | 7 | 644 | 165 | 66 | 552 | |||
| firstReactRender | 49 | 40 | 74 | 5 | 50 | 61 | |||
| getState | 184 | 143 | 667 | 57 | 190 | 252 | |||
| initialActions | 1 | 0 | 2 | 0 | 1 | 1 | |||
| loadScripts | 718 | 581 | 1134 | 109 | 832 | 887 | |||
| setupStore | 15 | 6 | 48 | 9 | 14 | 38 | |||
| numNetworkReqs | 73 | 58 | 228 | 26 | 67 | 140 | |||
| Firefox | Browserify | Standard Home | uiStartup | 1358 | 1116 | 2186 | 190 | 1456 | 1673 |
| load | 1090 | 891 | 1660 | 114 | 1147 | 1290 | |||
| domContentLoaded | 1089 | 890 | 1659 | 114 | 1147 | 1290 | |||
| domInteractive | 63 | 31 | 182 | 33 | 85 | 129 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 54 | 22 | 206 | 43 | 70 | 183 | |||
| firstReactRender | 38 | 30 | 76 | 8 | 39 | 57 | |||
| getState | 13 | 7 | 127 | 16 | 10 | 33 | |||
| initialActions | 1 | 0 | 2 | 1 | 2 | 2 | |||
| loadScripts | 1058 | 872 | 1634 | 102 | 1115 | 1213 | |||
| setupStore | 11 | 5 | 66 | 9 | 10 | 31 | |||
| numNetworkReqs | 15 | 6 | 81 | 21 | 8 | 77 | |||
| Browserify | Power User Home | uiStartup | 2636 | 1681 | 3920 | 548 | 3048 | 3409 | |
| load | 1623 | 1000 | 2549 | 484 | 2069 | 2366 | |||
| domContentLoaded | 1622 | 1000 | 2549 | 484 | 2069 | 2366 | |||
| domInteractive | 125 | 32 | 1086 | 199 | 93 | 536 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 238 | 28 | 1145 | 303 | 223 | 1098 | |||
| firstReactRender | 56 | 36 | 109 | 12 | 60 | 80 | |||
| getState | 138 | 72 | 293 | 47 | 161 | 235 | |||
| initialActions | 2 | 0 | 31 | 3 | 2 | 7 | |||
| loadScripts | 1467 | 977 | 2518 | 441 | 1887 | 2289 | |||
| setupStore | 47 | 5 | 1046 | 117 | 33 | 228 | |||
| numNetworkReqs | 76 | 54 | 135 | 23 | 68 | 126 | |||
| Webpack | Standard Home | uiStartup | 1562 | 1308 | 2186 | 173 | 1634 | 1935 | |
| load | 1293 | 1110 | 1678 | 107 | 1334 | 1524 | |||
| domContentLoaded | 1293 | 1110 | 1677 | 107 | 1334 | 1524 | |||
| domInteractive | 70 | 28 | 176 | 34 | 93 | 130 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 51 | 22 | 175 | 32 | 58 | 135 | |||
| firstReactRender | 42 | 33 | 91 | 10 | 43 | 56 | |||
| getState | 17 | 6 | 158 | 22 | 15 | 48 | |||
| initialActions | 1 | 0 | 3 | 1 | 2 | 2 | |||
| loadScripts | 1265 | 1092 | 1650 | 101 | 1310 | 1493 | |||
| setupStore | 16 | 7 | 142 | 19 | 15 | 39 | |||
| numNetworkReqs | 16 | 6 | 90 | 21 | 8 | 76 | |||
| Webpack | Power User Home | uiStartup | 2668 | 1776 | 4023 | 573 | 3130 | 3582 | |
| load | 1819 | 1200 | 2938 | 509 | 2307 | 2681 | |||
| domContentLoaded | 1818 | 1200 | 2938 | 509 | 2307 | 2680 | |||
| domInteractive | 182 | 31 | 1055 | 292 | 104 | 991 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 176 | 26 | 1003 | 225 | 205 | 968 | |||
| firstReactRender | 58 | 37 | 112 | 14 | 62 | 92 | |||
| getState | 148 | 72 | 974 | 98 | 173 | 251 | |||
| initialActions | 3 | 0 | 40 | 5 | 2 | 7 | |||
| loadScripts | 1746 | 1174 | 2912 | 474 | 2237 | 2511 | |||
| setupStore | 48 | 4 | 343 | 75 | 36 | 262 | |||
| numNetworkReqs | 75 | 55 | 130 | 22 | 74 | 126 |
📊 Page Load Benchmark Results
Current Commit: 74c7b31 | Date: 12/10/2025
📄 Localhost MetaMask Test Dapp
Samples: 100
Summary
- pageLoadTime-> current mean value: 1.03s (±42ms) 🟡 | historical mean value: 1.04s ⬇️ (historical data)
- domContentLoaded-> current mean value: 719ms (±38ms) 🟢 | historical mean value: 727ms ⬇️ (historical data)
- firstContentfulPaint-> current mean value: 76ms (±13ms) 🟢 | historical mean value: 83ms ⬇️ (historical data)
📈 Detailed Results
| Metric | Mean | Std Dev | Min | Max | P95 | P99 |
|---|---|---|---|---|---|---|
| pageLoadTime | 1.03s | 42ms | 1.01s | 1.32s | 1.06s | 1.32s |
| domContentLoaded | 719ms | 38ms | 701ms | 984ms | 746ms | 984ms |
| firstPaint | 76ms | 13ms | 56ms | 184ms | 88ms | 184ms |
| firstContentfulPaint | 76ms | 13ms | 56ms | 184ms | 88ms | 184ms |
| largestContentfulPaint | 0ms | 0ms | 0ms | 0ms | 0ms | 0ms |
Bundle size diffs [🚨 Warning! Bundle size has increased!]
- background: 58 Bytes (0%)
- ui: 772 Bytes (0.01%)
- common: 20 Bytes (0%)