test: add spec to validate onboarding-fixture.json against dist, and provide script for updating it if failure with a PR comment
Description
- Add a spec which will run against the
distbuild to validate if the current onboarding fixture is up to date- if that test fails, the fixture json file needs to be updated to pass
- if that passes, nothing is needed
- Add a spec which will run against the
dist, which updates the changed entries from the onboarding fixture file (excluding the ignored keys or timestamps) - Add a script for allowing an easy way to update the fixture json file with a PR comment (like we do with lavamoat update policies). This will commit the changes in the onboarding-fixturejson file. (It could also be done manually by running that spec on a local dist build)
Previous work:
- https://github.com/MetaMask/metamask-extension/pull/36411
Changelog
CHANGELOG entry:
Related issues
Fixes: https://consensyssoftware.atlassian.net/browse/MMQA-709
Manual testing steps
Testing the wallet-fixture-validation and wallet-fixture-export
- Build the production wallet
yarn dist - Run the test
yarn test:e2e:single test/e2e/dist/wallet-fixture-validation.spec.ts --browser chrome --leave-running=truea) Change some keys from the onboarding-fixture.json file b) Run the test again --> see test fails and you can see the different keys in the logs - Run the test
yarn test:e2e:single test/e2e/dist/wallet-fixture-export.spec.ts --browser chrome --leave-running=true--> see how the json file is updated (ignoreing the ignored keys in the list as well as timestamps)
Testing the Update Fixture ci job
This has been done on a fork (you can also fork it, if you wish, or check the results below)
https://github.com/seaona/metamask-extension/pull/1#issuecomment-3597020697
https://github.com/seaona/metamask-extension/actions/runs/19855893026
The last step failed in the fork because I don't have the envars in the fork, but the whole flow outside this step (export the state) works, and the spec also works, as this is run in this ci branch and exports the state correctly (see ci dist run).
Screenshots/Recordings
Before
After
Pre-merge author checklist
- [x] I've followed MetaMask Contributor Docs and MetaMask Extension Coding Standards.
- [x] I've completed the PR template to the best of my ability
- [x] I’ve included tests if applicable
- [x] I’ve documented my code using JSDoc format if applicable
- [x] 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.
[!NOTE] Adds E2E specs and a CI workflow to validate and auto-update the onboarding fixture from the dist build, with supporting utilities and CODEOWNERS updates.
- CI/Automation:
- Add
/.github/workflows/update-onboarding-fixture.ymlto updatetest/e2e/fixtures/onboarding-fixture.jsonvia@metamaskbot update-e2e-fixturecomment, using latest dist artifact and committing changes.- E2E (dist):
- Add
test/e2e/dist/wallet-fixture-validation.spec.tsto compare persisted state againstonboarding-fixture.jsonschema and fail on diffs.- Add
test/e2e/dist/wallet-fixture-export.spec.tsto export and merge state changes into the fixture (ignoring specified keys).- Utilities:
- Add
test/e2e/fixtures/fixture-validation.tswith helpers (computeSchemaDiff,mergeFixtureChanges, etc.).- Export
shouldIgnoreKeyfromtest/e2e/tests/settings/state-logs-helpers.tsfor reuse.- Fixtures:
- Update
test/e2e/fixtures/onboarding-fixture.jsonwith current schema/state.- Ownership:
- Update
.github/CODEOWNERSto include new E2E fixture/spec paths.Written by Cursor Bugbot for commit d1cefe6bc216fc0a17d88a5a66575075ad471cde. This will update automatically on new commits. Configure here.
📊 Page Load Benchmark Results
Current Commit: 00afed1 | Date: 10/27/2025
📄 Localhost MetaMask Test Dapp
Samples: 100
Summary
- pageLoadTime-> current mean value: 1.03s (±40ms) 🟡 | historical mean value: 1.06s ⬇️ (historical data)
- domContentLoaded-> current mean value: 719ms (±37ms) 🟢 | historical mean value: 741ms ⬇️ (historical data)
- firstContentfulPaint-> current mean value: 76ms (±11ms) 🟢 | historical mean value: 77ms ⬇️ (historical data)
📈 Detailed Results
| Metric | Mean | Std Dev | Min | Max | P95 | P99 |
|---|---|---|---|---|---|---|
| pageLoadTime | 1.03s | 40ms | 1.01s | 1.31s | 1.08s | 1.31s |
| domContentLoaded | 719ms | 37ms | 696ms | 982ms | 760ms | 982ms |
| firstPaint | 76ms | 11ms | 56ms | 164ms | 84ms | 164ms |
| firstContentfulPaint | 76ms | 11ms | 56ms | 164ms | 84ms | 164ms |
| largestContentfulPaint | 0ms | 0ms | 0ms | 0ms | 0ms | 0ms |
Results generated automatically by MetaMask CI
Builds ready [00afed1]
- builds: chrome, firefox
- builds (beta): chrome, firefox
- builds (flask): chrome, firefox
- builds (test): chrome, firefox
- builds (test-flask): chrome, firefox
- build viz: Build System
- bundle size: Bundle Size Stats
- user-actions-benchmark: User Actions Stats
- storybook: Storybook
- typescript migration: Dashboard
- all artifacts
UI Startup Metrics (1265 ± 78 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 | 1265 | 1119 | 1451 | 78 | 1321 | 1398 |
| load | 1082 | 926 | 1277 | 76 | 1128 | 1209 | |||
| domContentLoaded | 1075 | 914 | 1268 | 77 | 1123 | 1203 | |||
| domInteractive | 20 | 14 | 54 | 9 | 18 | 43 | |||
| firstPaint | 626 | 94 | 1239 | 437 | 1096 | 1170 | |||
| backgroundConnect | 234 | 219 | 335 | 13 | 236 | 254 | |||
| firstReactRender | 29 | 17 | 90 | 10 | 34 | 46 | |||
| getState | 20 | 9 | 72 | 9 | 24 | 37 | |||
| initialActions | 6 | 0 | 62 | 8 | 6 | 24 | |||
| loadScripts | 848 | 686 | 1041 | 77 | 902 | 982 | |||
| setupStore | 10 | 6 | 21 | 3 | 10 | 19 | |||
| Browserify | Power User Home | uiStartup | 2291 | 1854 | 3787 | 619 | 3064 | 3787 | |
| load | 1209 | 972 | 1995 | 344 | 1651 | 1995 | |||
| domContentLoaded | 1201 | 967 | 1988 | 341 | 1640 | 1988 | |||
| domInteractive | 35 | 16 | 132 | 30 | 55 | 132 | |||
| firstPaint | 595 | 170 | 1154 | 379 | 1001 | 1154 | |||
| backgroundConnect | 272 | 227 | 603 | 90 | 282 | 603 | |||
| firstReactRender | 27 | 24 | 33 | 3 | 27 | 33 | |||
| getState | 183 | 158 | 225 | 16 | 195 | 225 | |||
| initialActions | 9 | 2 | 49 | 14 | 5 | 49 | |||
| loadScripts | 953 | 736 | 1648 | 309 | 1369 | 1648 | |||
| setupStore | 11 | 9 | 16 | 2 | 13 | 16 | |||
| Webpack | Standard Home | uiStartup | 888 | 755 | 1208 | 76 | 913 | 1034 | |
| load | 658 | 608 | 990 | 70 | 664 | 850 | |||
| domContentLoaded | 651 | 601 | 981 | 70 | 657 | 842 | |||
| domInteractive | 17 | 12 | 64 | 9 | 16 | 38 | |||
| firstPaint | 191 | 60 | 917 | 178 | 184 | 650 | |||
| backgroundConnect | 25 | 12 | 55 | 8 | 30 | 43 | |||
| firstReactRender | 29 | 18 | 65 | 9 | 34 | 39 | |||
| getState | 13 | 5 | 44 | 5 | 15 | 18 | |||
| initialActions | 3 | 1 | 17 | 3 | 5 | 8 | |||
| loadScripts | 647 | 599 | 971 | 67 | 654 | 830 | |||
| setupStore | 11 | 6 | 23 | 3 | 13 | 17 | |||
| Webpack | Power User Home | uiStartup | 1804 | 1467 | 2791 | 421 | 2261 | 2791 | |
| load | 775 | 628 | 1394 | 214 | 992 | 1394 | |||
| domContentLoaded | 729 | 609 | 1269 | 174 | 846 | 1269 | |||
| domInteractive | 23 | 13 | 86 | 19 | 33 | 86 | |||
| firstPaint | 466 | 82 | 1273 | 352 | 712 | 1273 | |||
| backgroundConnect | 124 | 29 | 442 | 141 | 202 | 442 | |||
| firstReactRender | 27 | 23 | 39 | 4 | 26 | 39 | |||
| getState | 162 | 123 | 204 | 18 | 170 | 204 | |||
| initialActions | 8 | 1 | 49 | 12 | 8 | 49 | |||
| loadScripts | 725 | 607 | 1259 | 171 | 835 | 1259 | |||
| setupStore | 21 | 6 | 67 | 15 | 28 | 67 | |||
| Firefox | Browserify | Standard Home | uiStartup | 1510 | 1313 | 1883 | 109 | 1571 | 1702 |
| load | 1288 | 1108 | 1640 | 88 | 1348 | 1441 | |||
| domContentLoaded | 1287 | 1108 | 1640 | 88 | 1348 | 1440 | |||
| domInteractive | 119 | 35 | 326 | 48 | 124 | 213 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 44 | 25 | 115 | 16 | 51 | 75 | |||
| firstReactRender | 25 | 21 | 56 | 4 | 26 | 30 | |||
| getState | 8 | 4 | 102 | 10 | 9 | 14 | |||
| initialActions | 5 | 1 | 92 | 11 | 4 | 12 | |||
| loadScripts | 1260 | 1084 | 1617 | 86 | 1323 | 1409 | |||
| setupStore | 13 | 6 | 107 | 11 | 13 | 23 | |||
| Browserify | Power User Home | uiStartup | 2807 | 2390 | 3969 | 396 | 2974 | 3969 | |
| load | 1398 | 1239 | 1624 | 121 | 1466 | 1624 | |||
| domContentLoaded | 1398 | 1238 | 1624 | 121 | 1466 | 1624 | |||
| domInteractive | 157 | 42 | 313 | 76 | 242 | 313 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 219 | 56 | 667 | 176 | 424 | 667 | |||
| firstReactRender | 41 | 29 | 58 | 9 | 49 | 58 | |||
| getState | 152 | 87 | 223 | 43 | 196 | 223 | |||
| initialActions | 9 | 1 | 60 | 14 | 9 | 60 | |||
| loadScripts | 1353 | 1215 | 1571 | 115 | 1413 | 1571 | |||
| setupStore | 31 | 13 | 61 | 15 | 40 | 61 | |||
| Webpack | Standard Home | uiStartup | 1592 | 1376 | 2156 | 144 | 1630 | 1925 | |
| load | 1365 | 1194 | 1785 | 110 | 1411 | 1597 | |||
| domContentLoaded | 1365 | 1194 | 1785 | 110 | 1410 | 1597 | |||
| domInteractive | 108 | 30 | 419 | 68 | 109 | 219 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 45 | 21 | 116 | 19 | 49 | 82 | |||
| firstReactRender | 29 | 22 | 187 | 17 | 28 | 44 | |||
| getState | 8 | 4 | 61 | 7 | 10 | 19 | |||
| initialActions | 6 | 1 | 76 | 14 | 3 | 40 | |||
| loadScripts | 1337 | 1173 | 1756 | 109 | 1385 | 1564 | |||
| setupStore | 15 | 6 | 160 | 18 | 13 | 51 | |||
| Webpack | Power User Home | uiStartup | 3029 | 2610 | 3683 | 361 | 3356 | 3683 | |
| load | 1723 | 1485 | 2153 | 171 | 1844 | 2153 | |||
| domContentLoaded | 1723 | 1485 | 2152 | 171 | 1843 | 2152 | |||
| domInteractive | 140 | 50 | 230 | 49 | 194 | 230 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 221 | 46 | 559 | 124 | 308 | 559 | |||
| firstReactRender | 44 | 30 | 104 | 17 | 50 | 104 | |||
| getState | 156 | 94 | 221 | 44 | 207 | 221 | |||
| initialActions | 8 | 1 | 20 | 5 | 12 | 20 | |||
| loadScripts | 1639 | 1407 | 2043 | 166 | 1766 | 2043 | |||
| setupStore | 40 | 10 | 156 | 35 | 49 | 156 |
📊 Page Load Benchmark Results
Current Commit: da4c4a9 | Date: 10/27/2025
📄 Localhost MetaMask Test Dapp
Samples: 100
Summary
- pageLoadTime-> current mean value: 1.04s (±37ms) 🟡 | historical mean value: 1.06s ⬇️ (historical data)
- domContentLoaded-> current mean value: 721ms (±34ms) 🟢 | historical mean value: 740ms ⬇️ (historical data)
- firstContentfulPaint-> current mean value: 77ms (±11ms) 🟢 | historical mean value: 77ms ⬆️ (historical data)
📈 Detailed Results
| Metric | Mean | Std Dev | Min | Max | P95 | P99 |
|---|---|---|---|---|---|---|
| pageLoadTime | 1.04s | 37ms | 1.01s | 1.30s | 1.07s | 1.30s |
| domContentLoaded | 721ms | 34ms | 694ms | 971ms | 751ms | 971ms |
| firstPaint | 77ms | 11ms | 60ms | 168ms | 88ms | 168ms |
| firstContentfulPaint | 77ms | 11ms | 60ms | 168ms | 88ms | 168ms |
| largestContentfulPaint | 0ms | 0ms | 0ms | 0ms | 0ms | 0ms |
Results generated automatically by MetaMask CI
Builds ready [da4c4a9]
- builds: chrome, firefox
- builds (beta): chrome, firefox
- builds (flask): chrome, firefox
- builds (test): chrome, firefox
- builds (test-flask): chrome, firefox
- build viz: Build System
- bundle size: Bundle Size Stats
- user-actions-benchmark: User Actions Stats
- storybook: Storybook
- typescript migration: Dashboard
- all artifacts
UI Startup Metrics (1276 ± 84 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 | 1276 | 1148 | 1532 | 84 | 1324 | 1447 |
| load | 1090 | 948 | 1320 | 78 | 1132 | 1234 | |||
| domContentLoaded | 1083 | 924 | 1313 | 78 | 1124 | 1226 | |||
| domInteractive | 21 | 14 | 81 | 12 | 20 | 52 | |||
| firstPaint | 661 | 95 | 1323 | 447 | 1114 | 1233 | |||
| backgroundConnect | 237 | 224 | 315 | 11 | 240 | 251 | |||
| firstReactRender | 30 | 19 | 153 | 15 | 34 | 49 | |||
| getState | 20 | 9 | 61 | 8 | 25 | 34 | |||
| initialActions | 7 | 1 | 45 | 7 | 7 | 23 | |||
| loadScripts | 853 | 703 | 1082 | 78 | 895 | 993 | |||
| setupStore | 10 | 7 | 22 | 3 | 12 | 18 | |||
| Browserify | Power User Home | uiStartup | 2260 | 1803 | 3358 | 572 | 3134 | 3358 | |
| load | 1171 | 939 | 1866 | 324 | 1630 | 1866 | |||
| domContentLoaded | 1162 | 932 | 1858 | 322 | 1622 | 1858 | |||
| domInteractive | 27 | 16 | 54 | 15 | 52 | 54 | |||
| firstPaint | 828 | 170 | 1862 | 500 | 999 | 1862 | |||
| backgroundConnect | 262 | 224 | 511 | 67 | 270 | 511 | |||
| firstReactRender | 25 | 23 | 29 | 2 | 27 | 29 | |||
| getState | 200 | 159 | 295 | 31 | 198 | 295 | |||
| initialActions | 11 | 3 | 49 | 13 | 15 | 49 | |||
| loadScripts | 919 | 709 | 1494 | 292 | 1355 | 1494 | |||
| setupStore | 12 | 7 | 34 | 7 | 12 | 34 | |||
| Webpack | Standard Home | uiStartup | 854 | 730 | 1391 | 91 | 864 | 1085 | |
| load | 644 | 590 | 1148 | 85 | 644 | 876 | |||
| domContentLoaded | 637 | 584 | 1138 | 84 | 638 | 867 | |||
| domInteractive | 15 | 11 | 72 | 9 | 14 | 35 | |||
| firstPaint | 195 | 60 | 944 | 188 | 195 | 615 | |||
| backgroundConnect | 23 | 11 | 50 | 7 | 27 | 37 | |||
| firstReactRender | 27 | 17 | 60 | 8 | 32 | 34 | |||
| getState | 12 | 6 | 30 | 4 | 14 | 18 | |||
| initialActions | 3 | 1 | 13 | 2 | 4 | 7 | |||
| loadScripts | 633 | 582 | 1126 | 82 | 635 | 856 | |||
| setupStore | 10 | 5 | 18 | 3 | 12 | 14 | |||
| Webpack | Power User Home | uiStartup | 1817 | 1557 | 2474 | 324 | 2218 | 2474 | |
| load | 756 | 656 | 1232 | 169 | 809 | 1232 | |||
| domContentLoaded | 714 | 633 | 1124 | 133 | 779 | 1124 | |||
| domInteractive | 20 | 13 | 40 | 10 | 32 | 40 | |||
| firstPaint | 298 | 96 | 817 | 219 | 427 | 817 | |||
| backgroundConnect | 97 | 35 | 447 | 114 | 90 | 447 | |||
| firstReactRender | 27 | 23 | 37 | 4 | 29 | 37 | |||
| getState | 195 | 154 | 381 | 50 | 197 | 381 | |||
| initialActions | 11 | 1 | 62 | 17 | 21 | 62 | |||
| loadScripts | 709 | 631 | 1111 | 129 | 768 | 1111 | |||
| setupStore | 20 | 7 | 74 | 18 | 26 | 74 | |||
| Firefox | Browserify | Standard Home | uiStartup | 1501 | 1321 | 2023 | 105 | 1564 | 1671 |
| load | 1281 | 1110 | 1744 | 94 | 1338 | 1423 | |||
| domContentLoaded | 1280 | 1110 | 1744 | 94 | 1337 | 1422 | |||
| domInteractive | 117 | 35 | 322 | 50 | 127 | 203 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 43 | 25 | 148 | 18 | 48 | 76 | |||
| firstReactRender | 27 | 21 | 55 | 7 | 27 | 45 | |||
| getState | 7 | 4 | 17 | 2 | 8 | 12 | |||
| initialActions | 4 | 2 | 70 | 7 | 3 | 8 | |||
| loadScripts | 1254 | 1090 | 1714 | 93 | 1295 | 1393 | |||
| setupStore | 11 | 6 | 30 | 3 | 12 | 17 | |||
| Browserify | Power User Home | uiStartup | 2686 | 2206 | 3553 | 372 | 2885 | 3553 | |
| load | 1418 | 1240 | 1726 | 142 | 1498 | 1726 | |||
| domContentLoaded | 1417 | 1240 | 1726 | 142 | 1497 | 1726 | |||
| domInteractive | 146 | 68 | 318 | 68 | 209 | 318 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 228 | 40 | 708 | 178 | 344 | 708 | |||
| firstReactRender | 40 | 29 | 74 | 11 | 46 | 74 | |||
| getState | 124 | 78 | 217 | 40 | 147 | 217 | |||
| initialActions | 12 | 2 | 58 | 14 | 14 | 58 | |||
| loadScripts | 1339 | 1194 | 1632 | 126 | 1427 | 1632 | |||
| setupStore | 45 | 13 | 206 | 46 | 59 | 206 | |||
| Webpack | Standard Home | uiStartup | 1663 | 1467 | 2161 | 136 | 1704 | 1950 | |
| load | 1411 | 1270 | 1740 | 98 | 1447 | 1599 | |||
| domContentLoaded | 1411 | 1270 | 1739 | 98 | 1447 | 1599 | |||
| domInteractive | 117 | 35 | 535 | 71 | 115 | 251 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 48 | 25 | 152 | 21 | 54 | 82 | |||
| firstReactRender | 30 | 24 | 139 | 13 | 30 | 44 | |||
| getState | 10 | 4 | 92 | 12 | 8 | 26 | |||
| initialActions | 6 | 1 | 126 | 14 | 4 | 19 | |||
| loadScripts | 1380 | 1239 | 1712 | 97 | 1421 | 1569 | |||
| setupStore | 15 | 6 | 172 | 18 | 13 | 36 | |||
| Webpack | Power User Home | uiStartup | 2844 | 2375 | 4105 | 425 | 3025 | 4105 | |
| load | 1630 | 1339 | 2154 | 220 | 1791 | 2154 | |||
| domContentLoaded | 1629 | 1339 | 2154 | 220 | 1790 | 2154 | |||
| domInteractive | 137 | 38 | 346 | 77 | 174 | 346 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 192 | 52 | 715 | 199 | 164 | 715 | |||
| firstReactRender | 44 | 30 | 108 | 19 | 48 | 108 | |||
| getState | 154 | 78 | 241 | 50 | 195 | 241 | |||
| initialActions | 7 | 1 | 24 | 8 | 8 | 24 | |||
| loadScripts | 1566 | 1309 | 1971 | 190 | 1746 | 1971 | |||
| setupStore | 24 | 5 | 106 | 27 | 36 | 106 |
🧪 e2e Wallet State Fixture File
Download the onboarding fixture from the Actions artifacts:
- Artifacts page: https://github.com/MetaMask/metamask-extension/actions/runs/18843160372#artifacts
- Artifact name: export-onboarding-fixture
- Path inside zip: test-artifacts/onboarding-fixture/onboarding-fixture.json
:x: test-e2e-chrome-api-specs failed. View the html report here.
📊 Page Load Benchmark Results
Current Commit: 9374d54 | Date: 10/27/2025
📄 Localhost MetaMask Test Dapp
Samples: 100
Summary
- pageLoadTime-> current mean value: 1.04s (±47ms) 🟡 | historical mean value: 1.05s ⬇️ (historical data)
- domContentLoaded-> current mean value: 709ms (±64ms) 🟢 | historical mean value: 738ms ⬇️ (historical data)
- firstContentfulPaint-> current mean value: 89ms (±125ms) 🟢 | historical mean value: 78ms ⬆️ (historical data)
📈 Detailed Results
| Metric | Mean | Std Dev | Min | Max | P95 | P99 |
|---|---|---|---|---|---|---|
| pageLoadTime | 1.04s | 47ms | 1.01s | 1.37s | 1.07s | 1.37s |
| domContentLoaded | 709ms | 64ms | 681ms | 1.27s | 725ms | 1.27s |
| firstPaint | 89ms | 125ms | 64ms | 1.33s | 84ms | 1.33s |
| firstContentfulPaint | 89ms | 125ms | 64ms | 1.33s | 84ms | 1.33s |
| largestContentfulPaint | 0ms | 0ms | 0ms | 0ms | 0ms | 0ms |
Results generated automatically by MetaMask CI
Builds ready [9374d54]
- builds: chrome, firefox
- builds (beta): chrome, firefox
- builds (flask): chrome, firefox
- builds (test): chrome, firefox
- builds (test-flask): chrome, firefox
- build viz: Build System
- bundle size: Bundle Size Stats
- user-actions-benchmark: User Actions Stats
- storybook: Storybook
- typescript migration: Dashboard
- all artifacts
UI Startup Metrics (1246 ± 72 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 | 1246 | 1092 | 1527 | 72 | 1291 | 1374 |
| load | 1067 | 910 | 1303 | 68 | 1108 | 1168 | |||
| domContentLoaded | 1061 | 903 | 1298 | 68 | 1102 | 1161 | |||
| domInteractive | 20 | 13 | 94 | 12 | 18 | 50 | |||
| firstPaint | 625 | 87 | 1309 | 430 | 1074 | 1167 | |||
| backgroundConnect | 233 | 220 | 308 | 10 | 235 | 242 | |||
| firstReactRender | 27 | 18 | 52 | 7 | 31 | 40 | |||
| getState | 20 | 7 | 86 | 10 | 24 | 38 | |||
| initialActions | 6 | 0 | 45 | 7 | 6 | 15 | |||
| loadScripts | 835 | 676 | 1070 | 68 | 877 | 944 | |||
| setupStore | 10 | 6 | 22 | 3 | 10 | 16 | |||
| Browserify | Power User Home | uiStartup | 2189 | 1824 | 3264 | 473 | 2414 | 3264 | |
| load | 1182 | 948 | 1812 | 327 | 1673 | 1812 | |||
| domContentLoaded | 1173 | 942 | 1802 | 322 | 1663 | 1802 | |||
| domInteractive | 30 | 16 | 72 | 18 | 56 | 72 | |||
| firstPaint | 805 | 197 | 1811 | 566 | 999 | 1811 | |||
| backgroundConnect | 267 | 228 | 433 | 53 | 292 | 433 | |||
| firstReactRender | 27 | 23 | 34 | 3 | 29 | 34 | |||
| getState | 190 | 117 | 279 | 39 | 199 | 279 | |||
| initialActions | 6 | 2 | 18 | 5 | 7 | 18 | |||
| loadScripts | 929 | 711 | 1521 | 301 | 1385 | 1521 | |||
| setupStore | 13 | 9 | 27 | 5 | 12 | 27 | |||
| Webpack | Standard Home | uiStartup | 846 | 722 | 1139 | 82 | 854 | 1082 | |
| load | 636 | 585 | 959 | 81 | 642 | 878 | |||
| domContentLoaded | 628 | 577 | 941 | 79 | 635 | 871 | |||
| domInteractive | 15 | 11 | 47 | 8 | 13 | 37 | |||
| firstPaint | 208 | 56 | 969 | 212 | 195 | 751 | |||
| backgroundConnect | 22 | 11 | 49 | 7 | 25 | 37 | |||
| firstReactRender | 27 | 17 | 60 | 8 | 31 | 34 | |||
| getState | 12 | 5 | 28 | 4 | 14 | 17 | |||
| initialActions | 3 | 0 | 14 | 2 | 5 | 8 | |||
| loadScripts | 625 | 574 | 930 | 77 | 633 | 861 | |||
| setupStore | 10 | 5 | 15 | 3 | 12 | 14 | |||
| Webpack | Power User Home | uiStartup | 1751 | 1296 | 2477 | 404 | 2336 | 2477 | |
| load | 768 | 629 | 1326 | 223 | 762 | 1326 | |||
| domContentLoaded | 727 | 618 | 1206 | 177 | 731 | 1206 | |||
| domInteractive | 20 | 13 | 43 | 9 | 29 | 43 | |||
| firstPaint | 415 | 95 | 1118 | 317 | 652 | 1118 | |||
| backgroundConnect | 122 | 11 | 497 | 150 | 163 | 497 | |||
| firstReactRender | 25 | 22 | 37 | 3 | 26 | 37 | |||
| getState | 158 | 121 | 225 | 22 | 161 | 225 | |||
| initialActions | 14 | 1 | 166 | 40 | 6 | 166 | |||
| loadScripts | 723 | 616 | 1195 | 173 | 718 | 1195 | |||
| setupStore | 26 | 6 | 223 | 51 | 26 | 223 | |||
| Firefox | Browserify | Standard Home | uiStartup | 1464 | 1301 | 2020 | 104 | 1491 | 1714 |
| load | 1250 | 1136 | 1786 | 77 | 1287 | 1357 | |||
| domContentLoaded | 1250 | 1136 | 1786 | 77 | 1286 | 1357 | |||
| domInteractive | 111 | 36 | 216 | 34 | 128 | 175 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 39 | 24 | 106 | 13 | 48 | 61 | |||
| firstReactRender | 25 | 20 | 49 | 6 | 25 | 44 | |||
| getState | 8 | 4 | 103 | 10 | 8 | 13 | |||
| initialActions | 3 | 1 | 22 | 2 | 3 | 7 | |||
| loadScripts | 1226 | 1119 | 1755 | 75 | 1260 | 1325 | |||
| setupStore | 12 | 6 | 34 | 5 | 12 | 29 | |||
| Browserify | Power User Home | uiStartup | 2778 | 2223 | 3869 | 432 | 3057 | 3869 | |
| load | 1409 | 1191 | 1665 | 135 | 1507 | 1665 | |||
| domContentLoaded | 1409 | 1191 | 1664 | 135 | 1506 | 1664 | |||
| domInteractive | 152 | 44 | 495 | 105 | 196 | 495 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 231 | 34 | 637 | 181 | 386 | 637 | |||
| firstReactRender | 44 | 30 | 96 | 15 | 49 | 96 | |||
| getState | 138 | 76 | 215 | 36 | 157 | 215 | |||
| initialActions | 9 | 1 | 41 | 12 | 8 | 41 | |||
| loadScripts | 1354 | 1161 | 1589 | 122 | 1427 | 1589 | |||
| setupStore | 27 | 6 | 82 | 20 | 39 | 82 | |||
| Webpack | Standard Home | uiStartup | 1607 | 1419 | 2069 | 135 | 1693 | 1880 | |
| load | 1371 | 1217 | 1746 | 107 | 1437 | 1547 | |||
| domContentLoaded | 1370 | 1216 | 1746 | 107 | 1437 | 1546 | |||
| domInteractive | 110 | 30 | 402 | 70 | 112 | 349 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 47 | 25 | 125 | 20 | 52 | 85 | |||
| firstReactRender | 30 | 22 | 75 | 11 | 28 | 66 | |||
| getState | 10 | 4 | 158 | 19 | 9 | 14 | |||
| initialActions | 7 | 1 | 175 | 20 | 3 | 45 | |||
| loadScripts | 1341 | 1191 | 1719 | 105 | 1406 | 1520 | |||
| setupStore | 13 | 7 | 72 | 8 | 14 | 27 | |||
| Webpack | Power User Home | uiStartup | 3005 | 2521 | 3754 | 299 | 3126 | 3754 | |
| load | 1758 | 1525 | 2171 | 191 | 1892 | 2171 | |||
| domContentLoaded | 1757 | 1524 | 2171 | 192 | 1892 | 2171 | |||
| domInteractive | 182 | 90 | 410 | 93 | 208 | 410 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 222 | 49 | 699 | 161 | 359 | 699 | |||
| firstReactRender | 42 | 30 | 74 | 11 | 50 | 74 | |||
| getState | 162 | 77 | 447 | 85 | 171 | 447 | |||
| initialActions | 14 | 2 | 93 | 22 | 14 | 93 | |||
| loadScripts | 1678 | 1463 | 2044 | 170 | 1846 | 2044 | |||
| setupStore | 32 | 10 | 73 | 19 | 41 | 73 |
🧪 e2e Wallet State Fixture File
Download the onboarding fixture: https://github.com/MetaMask/metamask-extension/actions/runs/18845436694/artifacts/4383068478
📊 Page Load Benchmark Results
Current Commit: 191d347 | Date: 10/27/2025
📄 Localhost MetaMask Test Dapp
Samples: 100
Summary
- pageLoadTime-> current mean value: 1.03s (±40ms) 🟡 | historical mean value: 1.05s ⬇️ (historical data)
- domContentLoaded-> current mean value: 720ms (±37ms) 🟢 | historical mean value: 737ms ⬇️ (historical data)
- firstContentfulPaint-> current mean value: 77ms (±11ms) 🟢 | historical mean value: 78ms ⬇️ (historical data)
📈 Detailed Results
| Metric | Mean | Std Dev | Min | Max | P95 | P99 |
|---|---|---|---|---|---|---|
| pageLoadTime | 1.03s | 40ms | 1.01s | 1.31s | 1.06s | 1.31s |
| domContentLoaded | 720ms | 37ms | 697ms | 980ms | 745ms | 980ms |
| firstPaint | 77ms | 11ms | 60ms | 168ms | 88ms | 168ms |
| firstContentfulPaint | 77ms | 11ms | 60ms | 168ms | 88ms | 168ms |
| largestContentfulPaint | 0ms | 0ms | 0ms | 0ms | 0ms | 0ms |
Results generated automatically by MetaMask CI
Builds ready [191d347]
- builds: chrome, firefox
- builds (beta): chrome, firefox
- builds (flask): chrome, firefox
- builds (test): chrome, firefox
- builds (test-flask): chrome, firefox
- build viz: Build System
- bundle size: Bundle Size Stats
- user-actions-benchmark: User Actions Stats
- storybook: Storybook
- typescript migration: Dashboard
- all artifacts
UI Startup Metrics (1265 ± 86 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 | 1265 | 1103 | 1493 | 86 | 1314 | 1466 |
| load | 1084 | 933 | 1318 | 84 | 1123 | 1265 | |||
| domContentLoaded | 1077 | 924 | 1311 | 85 | 1116 | 1259 | |||
| domInteractive | 20 | 14 | 61 | 9 | 20 | 42 | |||
| firstPaint | 630 | 72 | 1317 | 439 | 1089 | 1220 | |||
| backgroundConnect | 233 | 220 | 347 | 13 | 236 | 244 | |||
| firstReactRender | 28 | 16 | 57 | 7 | 31 | 41 | |||
| getState | 20 | 9 | 63 | 8 | 23 | 35 | |||
| initialActions | 5 | 1 | 25 | 4 | 6 | 12 | |||
| loadScripts | 851 | 699 | 1080 | 83 | 890 | 1027 | |||
| setupStore | 10 | 6 | 30 | 4 | 10 | 15 | |||
| Browserify | Power User Home | uiStartup | 2257 | 1813 | 3374 | 531 | 3022 | 3374 | |
| load | 1174 | 947 | 1746 | 290 | 1603 | 1746 | |||
| domContentLoaded | 1164 | 939 | 1735 | 290 | 1594 | 1735 | |||
| domInteractive | 29 | 17 | 77 | 19 | 51 | 77 | |||
| firstPaint | 894 | 202 | 1744 | 496 | 1083 | 1744 | |||
| backgroundConnect | 269 | 226 | 595 | 86 | 266 | 595 | |||
| firstReactRender | 26 | 23 | 31 | 2 | 28 | 31 | |||
| getState | 199 | 163 | 324 | 37 | 203 | 324 | |||
| initialActions | 9 | 2 | 46 | 11 | 7 | 46 | |||
| loadScripts | 922 | 712 | 1417 | 271 | 1337 | 1417 | |||
| setupStore | 12 | 9 | 33 | 6 | 12 | 33 | |||
| Webpack | Standard Home | uiStartup | 876 | 739 | 1288 | 90 | 889 | 1112 | |
| load | 655 | 597 | 1057 | 80 | 658 | 882 | |||
| domContentLoaded | 647 | 591 | 1049 | 80 | 652 | 855 | |||
| domInteractive | 16 | 11 | 44 | 7 | 14 | 33 | |||
| firstPaint | 204 | 59 | 909 | 192 | 201 | 625 | |||
| backgroundConnect | 26 | 11 | 75 | 9 | 30 | 43 | |||
| firstReactRender | 27 | 17 | 59 | 7 | 33 | 35 | |||
| getState | 12 | 6 | 52 | 5 | 14 | 18 | |||
| initialActions | 3 | 1 | 15 | 3 | 4 | 8 | |||
| loadScripts | 643 | 589 | 1036 | 77 | 650 | 845 | |||
| setupStore | 12 | 5 | 165 | 16 | 12 | 21 | |||
| Webpack | Power User Home | uiStartup | 1679 | 1243 | 2447 | 356 | 2177 | 2447 | |
| load | 675 | 576 | 965 | 127 | 807 | 965 | |||
| domContentLoaded | 640 | 561 | 863 | 104 | 734 | 863 | |||
| domInteractive | 23 | 12 | 83 | 18 | 33 | 83 | |||
| firstPaint | 371 | 91 | 894 | 311 | 808 | 894 | |||
| backgroundConnect | 114 | 31 | 317 | 93 | 216 | 317 | |||
| firstReactRender | 24 | 21 | 41 | 4 | 24 | 41 | |||
| getState | 149 | 126 | 177 | 11 | 159 | 177 | |||
| initialActions | 11 | 1 | 36 | 13 | 25 | 36 | |||
| loadScripts | 636 | 559 | 855 | 102 | 726 | 855 | |||
| setupStore | 20 | 5 | 77 | 22 | 21 | 77 | |||
| Firefox | Browserify | Standard Home | uiStartup | 1488 | 1287 | 1875 | 105 | 1545 | 1677 |
| load | 1267 | 1110 | 1599 | 82 | 1315 | 1419 | |||
| domContentLoaded | 1267 | 1109 | 1599 | 82 | 1315 | 1419 | |||
| domInteractive | 114 | 37 | 334 | 43 | 127 | 197 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 40 | 20 | 108 | 15 | 47 | 70 | |||
| firstReactRender | 26 | 21 | 54 | 6 | 26 | 45 | |||
| getState | 8 | 4 | 53 | 6 | 8 | 13 | |||
| initialActions | 3 | 1 | 55 | 5 | 3 | 5 | |||
| loadScripts | 1242 | 1092 | 1572 | 80 | 1287 | 1393 | |||
| setupStore | 11 | 6 | 30 | 3 | 13 | 16 | |||
| Browserify | Power User Home | uiStartup | 2903 | 2375 | 3619 | 384 | 3287 | 3619 | |
| load | 1482 | 1300 | 1936 | 152 | 1562 | 1936 | |||
| domContentLoaded | 1482 | 1300 | 1936 | 152 | 1562 | 1936 | |||
| domInteractive | 192 | 43 | 654 | 148 | 287 | 654 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 244 | 41 | 794 | 232 | 431 | 794 | |||
| firstReactRender | 44 | 31 | 74 | 13 | 53 | 74 | |||
| getState | 162 | 71 | 296 | 55 | 197 | 296 | |||
| initialActions | 9 | 1 | 26 | 9 | 16 | 26 | |||
| loadScripts | 1426 | 1249 | 1900 | 159 | 1518 | 1900 | |||
| setupStore | 25 | 6 | 76 | 20 | 42 | 76 | |||
| Webpack | Standard Home | uiStartup | 1612 | 1457 | 1928 | 104 | 1640 | 1831 | |
| load | 1379 | 1229 | 1627 | 77 | 1426 | 1515 | |||
| domContentLoaded | 1379 | 1228 | 1626 | 77 | 1426 | 1515 | |||
| domInteractive | 106 | 32 | 410 | 51 | 111 | 219 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 45 | 24 | 133 | 20 | 51 | 82 | |||
| firstReactRender | 30 | 22 | 75 | 11 | 29 | 65 | |||
| getState | 11 | 4 | 173 | 22 | 9 | 17 | |||
| initialActions | 6 | 1 | 163 | 18 | 4 | 16 | |||
| loadScripts | 1349 | 1212 | 1599 | 76 | 1392 | 1484 | |||
| setupStore | 14 | 6 | 117 | 13 | 13 | 33 | |||
| Webpack | Power User Home | uiStartup | 3017 | 2530 | 3933 | 427 | 3352 | 3933 | |
| load | 1694 | 1389 | 2473 | 274 | 1823 | 2473 | |||
| domContentLoaded | 1694 | 1389 | 2473 | 274 | 1823 | 2473 | |||
| domInteractive | 131 | 57 | 231 | 52 | 200 | 231 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 254 | 43 | 955 | 245 | 408 | 955 | |||
| firstReactRender | 47 | 32 | 104 | 17 | 56 | 104 | |||
| getState | 136 | 59 | 231 | 53 | 188 | 231 | |||
| initialActions | 20 | 2 | 192 | 45 | 12 | 192 | |||
| loadScripts | 1613 | 1357 | 2127 | 209 | 1771 | 2127 | |||
| setupStore | 34 | 9 | 117 | 24 | 39 | 117 |
🧪 e2e Wallet State Fixture File
Download the onboarding fixture: https://github.com/MetaMask/metamask-extension/actions/runs/18847630605/artifacts/4383926190
🧪 e2e Wallet State Fixture File
Download the onboarding fixture: https://github.com/MetaMask/metamask-extension/actions/runs/18848252362/artifacts/4384177858
📊 Page Load Benchmark Results
Current Commit: ec04ca3 | Date: 10/27/2025
📄 Localhost MetaMask Test Dapp
Samples: 100
Summary
- pageLoadTime-> current mean value: 1.03s (±39ms) 🟡 | historical mean value: 1.05s ⬇️ (historical data)
- domContentLoaded-> current mean value: 720ms (±36ms) 🟢 | historical mean value: 738ms ⬇️ (historical data)
- firstContentfulPaint-> current mean value: 77ms (±11ms) 🟢 | historical mean value: 79ms ⬇️ (historical data)
📈 Detailed Results
| Metric | Mean | Std Dev | Min | Max | P95 | P99 |
|---|---|---|---|---|---|---|
| pageLoadTime | 1.03s | 39ms | 1.01s | 1.30s | 1.08s | 1.30s |
| domContentLoaded | 720ms | 36ms | 703ms | 974ms | 754ms | 974ms |
| firstPaint | 77ms | 11ms | 60ms | 168ms | 84ms | 168ms |
| firstContentfulPaint | 77ms | 11ms | 60ms | 168ms | 84ms | 168ms |
| largestContentfulPaint | 0ms | 0ms | 0ms | 0ms | 0ms | 0ms |
Results generated automatically by MetaMask CI
Builds ready [ec04ca3]
- builds: chrome, firefox
- builds (beta): chrome, firefox
- builds (flask): chrome, firefox
- builds (test): chrome, firefox
- builds (test-flask): chrome, firefox
- build viz: Build System
- bundle size: Bundle Size Stats
- user-actions-benchmark: User Actions Stats
- storybook: Storybook
- typescript migration: Dashboard
- all artifacts
UI Startup Metrics (1225 ± 93 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 | 1225 | 1060 | 1428 | 93 | 1285 | 1386 |
| load | 1045 | 883 | 1259 | 92 | 1099 | 1197 | |||
| domContentLoaded | 1039 | 880 | 1250 | 91 | 1093 | 1187 | |||
| domInteractive | 20 | 13 | 58 | 9 | 20 | 46 | |||
| firstPaint | 627 | 77 | 1266 | 431 | 1067 | 1187 | |||
| backgroundConnect | 196 | 180 | 247 | 10 | 199 | 211 | |||
| firstReactRender | 29 | 19 | 53 | 7 | 33 | 43 | |||
| getState | 19 | 7 | 76 | 9 | 21 | 32 | |||
| initialActions | 5 | 1 | 23 | 5 | 5 | 17 | |||
| loadScripts | 850 | 697 | 1064 | 89 | 912 | 1003 | |||
| setupStore | 11 | 6 | 26 | 3 | 11 | 20 | |||
| Browserify | Power User Home | uiStartup | 2119 | 1806 | 3045 | 389 | 2404 | 3045 | |
| load | 1145 | 930 | 1778 | 302 | 1591 | 1778 | |||
| domContentLoaded | 1137 | 921 | 1762 | 299 | 1574 | 1762 | |||
| domInteractive | 30 | 15 | 84 | 23 | 60 | 84 | |||
| firstPaint | 603 | 101 | 1594 | 438 | 998 | 1594 | |||
| backgroundConnect | 259 | 219 | 406 | 51 | 284 | 406 | |||
| firstReactRender | 26 | 23 | 36 | 3 | 26 | 36 | |||
| getState | 175 | 140 | 199 | 16 | 192 | 199 | |||
| initialActions | 13 | 3 | 70 | 21 | 9 | 70 | |||
| loadScripts | 895 | 702 | 1424 | 268 | 1288 | 1424 | |||
| setupStore | 11 | 7 | 25 | 4 | 10 | 25 | |||
| Webpack | Standard Home | uiStartup | 876 | 740 | 1560 | 116 | 887 | 1142 | |
| load | 666 | 591 | 1373 | 119 | 654 | 970 | |||
| domContentLoaded | 658 | 584 | 1352 | 117 | 647 | 940 | |||
| domInteractive | 15 | 12 | 54 | 8 | 14 | 37 | |||
| firstPaint | 251 | 59 | 1377 | 279 | 208 | 900 | |||
| backgroundConnect | 23 | 12 | 58 | 8 | 24 | 37 | |||
| firstReactRender | 26 | 17 | 54 | 8 | 32 | 40 | |||
| getState | 12 | 5 | 24 | 4 | 14 | 17 | |||
| initialActions | 4 | 1 | 15 | 3 | 5 | 10 | |||
| loadScripts | 654 | 582 | 1341 | 115 | 645 | 930 | |||
| setupStore | 10 | 5 | 21 | 3 | 12 | 16 | |||
| Webpack | Power User Home | uiStartup | 1806 | 1511 | 2643 | 391 | 2387 | 2643 | |
| load | 771 | 641 | 1225 | 187 | 982 | 1225 | |||
| domContentLoaded | 736 | 618 | 1106 | 161 | 946 | 1106 | |||
| domInteractive | 22 | 13 | 43 | 11 | 35 | 43 | |||
| firstPaint | 449 | 85 | 1024 | 336 | 673 | 1024 | |||
| backgroundConnect | 129 | 39 | 468 | 143 | 279 | 468 | |||
| firstReactRender | 24 | 22 | 29 | 2 | 25 | 29 | |||
| getState | 163 | 134 | 201 | 14 | 166 | 201 | |||
| initialActions | 14 | 0 | 111 | 29 | 12 | 111 | |||
| loadScripts | 731 | 616 | 1090 | 157 | 933 | 1090 | |||
| setupStore | 26 | 5 | 145 | 37 | 23 | 145 | |||
| Firefox | Browserify | Standard Home | uiStartup | 1568 | 1362 | 2024 | 103 | 1626 | 1745 |
| load | 1331 | 1173 | 1566 | 77 | 1386 | 1457 | |||
| domContentLoaded | 1330 | 1173 | 1565 | 77 | 1385 | 1457 | |||
| domInteractive | 118 | 37 | 291 | 44 | 130 | 216 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 45 | 25 | 164 | 19 | 51 | 79 | |||
| firstReactRender | 27 | 22 | 56 | 6 | 27 | 38 | |||
| getState | 7 | 4 | 35 | 4 | 7 | 15 | |||
| initialActions | 5 | 1 | 199 | 20 | 4 | 6 | |||
| loadScripts | 1302 | 1154 | 1536 | 76 | 1354 | 1430 | |||
| setupStore | 15 | 7 | 110 | 13 | 15 | 25 | |||
| Browserify | Power User Home | uiStartup | 2893 | 2391 | 4303 | 558 | 3097 | 4303 | |
| load | 1473 | 1258 | 1737 | 139 | 1607 | 1737 | |||
| domContentLoaded | 1473 | 1258 | 1737 | 139 | 1607 | 1737 | |||
| domInteractive | 155 | 44 | 297 | 70 | 207 | 297 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 217 | 34 | 809 | 224 | 358 | 809 | |||
| firstReactRender | 38 | 29 | 65 | 9 | 43 | 65 | |||
| getState | 159 | 78 | 334 | 56 | 165 | 334 | |||
| initialActions | 12 | 1 | 75 | 22 | 7 | 75 | |||
| loadScripts | 1418 | 1236 | 1626 | 131 | 1578 | 1626 | |||
| setupStore | 37 | 7 | 225 | 56 | 36 | 225 | |||
| Webpack | Standard Home | uiStartup | 1670 | 1397 | 2212 | 149 | 1731 | 2002 | |
| load | 1426 | 1175 | 1747 | 108 | 1487 | 1667 | |||
| domContentLoaded | 1425 | 1175 | 1747 | 108 | 1487 | 1666 | |||
| domInteractive | 111 | 32 | 437 | 61 | 119 | 229 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 50 | 24 | 145 | 22 | 57 | 94 | |||
| firstReactRender | 30 | 23 | 79 | 9 | 30 | 38 | |||
| getState | 9 | 4 | 48 | 6 | 9 | 19 | |||
| initialActions | 7 | 1 | 244 | 25 | 4 | 23 | |||
| loadScripts | 1396 | 1159 | 1716 | 106 | 1445 | 1630 | |||
| setupStore | 15 | 6 | 102 | 13 | 14 | 33 | |||
| Webpack | Power User Home | uiStartup | 2856 | 2488 | 3501 | 320 | 3018 | 3501 | |
| load | 1654 | 1415 | 2131 | 226 | 1736 | 2131 | |||
| domContentLoaded | 1653 | 1414 | 2130 | 226 | 1736 | 2130 | |||
| domInteractive | 143 | 63 | 296 | 63 | 199 | 296 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 168 | 51 | 560 | 177 | 308 | 560 | |||
| firstReactRender | 47 | 29 | 77 | 13 | 56 | 77 | |||
| getState | 166 | 71 | 264 | 52 | 214 | 264 | |||
| initialActions | 7 | 1 | 25 | 6 | 11 | 25 | |||
| loadScripts | 1591 | 1371 | 1986 | 186 | 1709 | 1986 | |||
| setupStore | 30 | 7 | 94 | 23 | 40 | 94 |
🧪 e2e Wallet State Fixture File
Download the onboarding fixture: https://github.com/MetaMask/metamask-extension/actions/runs/18908781979/artifacts/4405849341
📊 Page Load Benchmark Results
Current Commit: d6fa180 | Date: 10/29/2025
📄 Localhost MetaMask Test Dapp
Samples: 100
Summary
- pageLoadTime-> current mean value: 1.05s (±41ms) 🟡 | historical mean value: 1.06s ⬇️ (historical data)
- domContentLoaded-> current mean value: 728ms (±37ms) 🟢 | historical mean value: 744ms ⬇️ (historical data)
- firstContentfulPaint-> current mean value: 77ms (±13ms) 🟢 | historical mean value: 83ms ⬇️ (historical data)
📈 Detailed Results
| Metric | Mean | Std Dev | Min | Max | P95 | P99 |
|---|---|---|---|---|---|---|
| pageLoadTime | 1.05s | 41ms | 997ms | 1.30s | 1.10s | 1.30s |
| domContentLoaded | 728ms | 37ms | 689ms | 966ms | 770ms | 966ms |
| firstPaint | 77ms | 13ms | 60ms | 184ms | 88ms | 184ms |
| firstContentfulPaint | 77ms | 13ms | 60ms | 184ms | 88ms | 184ms |
| largestContentfulPaint | 0ms | 0ms | 0ms | 0ms | 0ms | 0ms |
Results generated automatically by MetaMask CI
Builds ready [d6fa180]
- 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 (1261 ± 84 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 | 1261 | 1114 | 1519 | 84 | 1306 | 1418 |
| load | 1085 | 952 | 1320 | 79 | 1135 | 1245 | |||
| domContentLoaded | 1079 | 948 | 1312 | 78 | 1130 | 1235 | |||
| domInteractive | 20 | 14 | 73 | 9 | 20 | 43 | |||
| firstPaint | 706 | 87 | 1306 | 434 | 1111 | 1217 | |||
| backgroundConnect | 232 | 219 | 254 | 7 | 235 | 245 | |||
| firstReactRender | 26 | 19 | 51 | 6 | 28 | 41 | |||
| getState | 19 | 7 | 91 | 10 | 21 | 37 | |||
| initialActions | 4 | 0 | 28 | 5 | 5 | 12 | |||
| loadScripts | 853 | 730 | 1090 | 77 | 898 | 1001 | |||
| setupStore | 9 | 5 | 22 | 2 | 10 | 15 | |||
| Browserify | Power User Home | uiStartup | 2006 | 1642 | 2798 | 406 | 2453 | 2798 | |
| load | 1050 | 877 | 1511 | 239 | 1386 | 1511 | |||
| domContentLoaded | 1041 | 870 | 1501 | 236 | 1379 | 1501 | |||
| domInteractive | 26 | 14 | 58 | 15 | 46 | 58 | |||
| firstPaint | 690 | 181 | 1506 | 434 | 945 | 1506 | |||
| backgroundConnect | 257 | 179 | 655 | 133 | 277 | 655 | |||
| firstReactRender | 24 | 22 | 29 | 2 | 25 | 29 | |||
| getState | 174 | 152 | 237 | 26 | 182 | 237 | |||
| initialActions | 8 | 2 | 48 | 11 | 7 | 48 | |||
| loadScripts | 834 | 687 | 1240 | 196 | 1097 | 1240 | |||
| setupStore | 10 | 7 | 28 | 5 | 9 | 28 | |||
| Webpack | Standard Home | uiStartup | 885 | 749 | 1162 | 76 | 903 | 1041 | |
| load | 660 | 603 | 959 | 70 | 665 | 833 | |||
| domContentLoaded | 652 | 597 | 947 | 69 | 658 | 816 | |||
| domInteractive | 17 | 12 | 75 | 11 | 14 | 42 | |||
| firstPaint | 208 | 61 | 934 | 209 | 173 | 752 | |||
| backgroundConnect | 25 | 12 | 44 | 7 | 31 | 38 | |||
| firstReactRender | 28 | 17 | 57 | 8 | 34 | 37 | |||
| getState | 12 | 6 | 25 | 4 | 14 | 18 | |||
| initialActions | 3 | 1 | 15 | 2 | 5 | 8 | |||
| loadScripts | 649 | 594 | 936 | 67 | 655 | 806 | |||
| setupStore | 11 | 6 | 17 | 3 | 13 | 16 | |||
| Webpack | Power User Home | uiStartup | 1671 | 1236 | 2400 | 351 | 2130 | 2400 | |
| load | 709 | 604 | 963 | 129 | 883 | 963 | |||
| domContentLoaded | 667 | 593 | 902 | 100 | 719 | 902 | |||
| domInteractive | 18 | 12 | 37 | 8 | 22 | 37 | |||
| firstPaint | 409 | 69 | 939 | 313 | 724 | 939 | |||
| backgroundConnect | 140 | 19 | 476 | 163 | 362 | 476 | |||
| firstReactRender | 25 | 21 | 49 | 6 | 24 | 49 | |||
| getState | 159 | 147 | 213 | 16 | 162 | 213 | |||
| initialActions | 8 | 1 | 98 | 23 | 2 | 98 | |||
| loadScripts | 663 | 591 | 889 | 96 | 708 | 889 | |||
| setupStore | 18 | 6 | 49 | 14 | 30 | 49 | |||
| Firefox | Browserify | Standard Home | uiStartup | 1462 | 1270 | 1896 | 106 | 1514 | 1684 |
| load | 1248 | 1101 | 1475 | 87 | 1297 | 1408 | |||
| domContentLoaded | 1248 | 1100 | 1475 | 87 | 1296 | 1407 | |||
| domInteractive | 115 | 36 | 251 | 40 | 129 | 210 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 38 | 21 | 108 | 14 | 46 | 63 | |||
| firstReactRender | 25 | 21 | 51 | 5 | 25 | 38 | |||
| getState | 7 | 4 | 72 | 7 | 7 | 13 | |||
| initialActions | 4 | 1 | 179 | 18 | 3 | 6 | |||
| loadScripts | 1224 | 1082 | 1457 | 84 | 1268 | 1376 | |||
| setupStore | 13 | 6 | 206 | 20 | 12 | 16 | |||
| Browserify | Power User Home | uiStartup | 2829 | 2324 | 3881 | 415 | 3078 | 3881 | |
| load | 1469 | 1251 | 1908 | 174 | 1572 | 1908 | |||
| domContentLoaded | 1469 | 1251 | 1908 | 174 | 1571 | 1908 | |||
| domInteractive | 188 | 102 | 520 | 113 | 257 | 520 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 215 | 36 | 507 | 168 | 380 | 507 | |||
| firstReactRender | 47 | 30 | 94 | 17 | 49 | 94 | |||
| getState | 141 | 114 | 200 | 23 | 158 | 200 | |||
| initialActions | 13 | 2 | 58 | 16 | 15 | 58 | |||
| loadScripts | 1406 | 1226 | 1754 | 157 | 1518 | 1754 | |||
| setupStore | 42 | 9 | 94 | 27 | 62 | 94 | |||
| Webpack | Standard Home | uiStartup | 1560 | 1360 | 2193 | 143 | 1631 | 1846 | |
| load | 1337 | 1188 | 1627 | 108 | 1382 | 1566 | |||
| domContentLoaded | 1337 | 1188 | 1627 | 108 | 1382 | 1565 | |||
| domInteractive | 106 | 30 | 384 | 63 | 108 | 239 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 45 | 21 | 169 | 25 | 55 | 96 | |||
| firstReactRender | 28 | 21 | 74 | 11 | 28 | 63 | |||
| getState | 8 | 4 | 54 | 7 | 10 | 13 | |||
| initialActions | 6 | 1 | 163 | 19 | 3 | 30 | |||
| loadScripts | 1308 | 1171 | 1585 | 97 | 1355 | 1516 | |||
| setupStore | 17 | 6 | 246 | 26 | 13 | 51 | |||
| Webpack | Power User Home | uiStartup | 2878 | 2454 | 3825 | 419 | 3258 | 3825 | |
| load | 1666 | 1391 | 2092 | 186 | 1827 | 2092 | |||
| domContentLoaded | 1665 | 1391 | 2092 | 186 | 1827 | 2092 | |||
| domInteractive | 186 | 102 | 366 | 78 | 230 | 366 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 189 | 40 | 616 | 180 | 201 | 616 | |||
| firstReactRender | 40 | 30 | 97 | 16 | 45 | 97 | |||
| getState | 160 | 66 | 397 | 72 | 194 | 397 | |||
| initialActions | 14 | 1 | 104 | 25 | 12 | 104 | |||
| loadScripts | 1617 | 1342 | 2048 | 190 | 1762 | 2048 | |||
| setupStore | 26 | 7 | 70 | 17 | 34 | 70 |
Bundle size diffs [🚨 Warning! Bundle size has increased!]
- background: 58 Bytes (0%)
- ui: 0 Bytes (0%)
- common: 10 Bytes (0%)
🧪 e2e Wallet State Fixture File
Download the onboarding fixture: https://github.com/MetaMask/metamask-extension/actions/runs/18909539862/artifacts/4406151772
📊 Page Load Benchmark Results
Current Commit: ad07a73 | Date: 10/29/2025
📄 Localhost MetaMask Test Dapp
Samples: 100
Summary
- pageLoadTime-> current mean value: 1.04s (±53ms) 🟡 | historical mean value: 1.07s ⬇️ (historical data)
- domContentLoaded-> current mean value: 727ms (±50ms) 🟢 | historical mean value: 745ms ⬇️ (historical data)
- firstContentfulPaint-> current mean value: 77ms (±11ms) 🟢 | historical mean value: 83ms ⬇️ (historical data)
📈 Detailed Results
| Metric | Mean | Std Dev | Min | Max | P95 | P99 |
|---|---|---|---|---|---|---|
| pageLoadTime | 1.04s | 53ms | 1.01s | 1.34s | 1.08s | 1.34s |
| domContentLoaded | 727ms | 50ms | 700ms | 1.02s | 743ms | 1.02s |
| firstPaint | 77ms | 11ms | 56ms | 176ms | 84ms | 176ms |
| firstContentfulPaint | 77ms | 11ms | 56ms | 176ms | 84ms | 176ms |
| largestContentfulPaint | 0ms | 0ms | 0ms | 0ms | 0ms | 0ms |
Results generated automatically by MetaMask CI
Builds ready [ad07a73]
- 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 (1209 ± 98 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 | 1209 | 1033 | 1414 | 98 | 1276 | 1398 |
| load | 1033 | 884 | 1249 | 95 | 1105 | 1203 | |||
| domContentLoaded | 1026 | 881 | 1240 | 94 | 1091 | 1194 | |||
| domInteractive | 20 | 13 | 124 | 15 | 17 | 43 | |||
| firstPaint | 641 | 71 | 1249 | 432 | 1077 | 1199 | |||
| backgroundConnect | 191 | 174 | 215 | 7 | 196 | 204 | |||
| firstReactRender | 30 | 18 | 54 | 7 | 36 | 42 | |||
| getState | 18 | 7 | 57 | 7 | 21 | 32 | |||
| initialActions | 5 | 1 | 29 | 4 | 7 | 12 | |||
| loadScripts | 842 | 699 | 1052 | 93 | 912 | 1012 | |||
| setupStore | 10 | 6 | 32 | 4 | 10 | 17 | |||
| Browserify | Power User Home | uiStartup | 2172 | 1774 | 3397 | 544 | 2952 | 3397 | |
| load | 1115 | 922 | 1778 | 289 | 1495 | 1778 | |||
| domContentLoaded | 1103 | 915 | 1734 | 279 | 1473 | 1734 | |||
| domInteractive | 30 | 14 | 84 | 22 | 44 | 84 | |||
| firstPaint | 847 | 95 | 1774 | 555 | 1515 | 1774 | |||
| backgroundConnect | 287 | 197 | 592 | 143 | 325 | 592 | |||
| firstReactRender | 25 | 22 | 32 | 2 | 26 | 32 | |||
| getState | 169 | 116 | 205 | 22 | 180 | 205 | |||
| initialActions | 25 | 3 | 200 | 48 | 18 | 200 | |||
| loadScripts | 873 | 713 | 1345 | 230 | 1197 | 1345 | |||
| setupStore | 11 | 9 | 28 | 5 | 11 | 28 | |||
| Webpack | Standard Home | uiStartup | 874 | 743 | 1141 | 80 | 895 | 1061 | |
| load | 659 | 606 | 985 | 79 | 657 | 877 | |||
| domContentLoaded | 651 | 599 | 956 | 76 | 650 | 870 | |||
| domInteractive | 16 | 12 | 67 | 10 | 15 | 39 | |||
| firstPaint | 212 | 60 | 937 | 218 | 191 | 842 | |||
| backgroundConnect | 25 | 12 | 52 | 9 | 29 | 43 | |||
| firstReactRender | 28 | 17 | 94 | 10 | 33 | 36 | |||
| getState | 11 | 5 | 21 | 3 | 14 | 17 | |||
| initialActions | 3 | 1 | 12 | 2 | 4 | 7 | |||
| loadScripts | 647 | 597 | 946 | 73 | 648 | 858 | |||
| setupStore | 10 | 5 | 17 | 3 | 12 | 14 | |||
| Webpack | Power User Home | uiStartup | 1708 | 1263 | 2597 | 398 | 2223 | 2597 | |
| load | 755 | 624 | 1138 | 174 | 931 | 1138 | |||
| domContentLoaded | 715 | 610 | 1015 | 140 | 897 | 1015 | |||
| domInteractive | 22 | 13 | 63 | 15 | 33 | 63 | |||
| firstPaint | 448 | 97 | 1024 | 322 | 658 | 1024 | |||
| backgroundConnect | 130 | 23 | 454 | 155 | 352 | 454 | |||
| firstReactRender | 27 | 23 | 42 | 5 | 27 | 42 | |||
| getState | 153 | 122 | 178 | 11 | 157 | 178 | |||
| initialActions | 15 | 0 | 135 | 34 | 7 | 135 | |||
| loadScripts | 710 | 608 | 1002 | 136 | 887 | 1002 | |||
| setupStore | 17 | 6 | 65 | 18 | 25 | 65 | |||
| Firefox | Browserify | Standard Home | uiStartup | 1455 | 1274 | 1883 | 102 | 1521 | 1620 |
| load | 1243 | 1097 | 1474 | 79 | 1304 | 1374 | |||
| domContentLoaded | 1243 | 1097 | 1473 | 79 | 1304 | 1374 | |||
| domInteractive | 110 | 35 | 272 | 45 | 124 | 211 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 42 | 24 | 177 | 20 | 47 | 67 | |||
| firstReactRender | 25 | 20 | 53 | 5 | 26 | 40 | |||
| getState | 7 | 4 | 15 | 2 | 8 | 11 | |||
| initialActions | 3 | 1 | 55 | 6 | 3 | 9 | |||
| loadScripts | 1217 | 1080 | 1406 | 74 | 1265 | 1333 | |||
| setupStore | 13 | 7 | 90 | 11 | 12 | 19 | |||
| Browserify | Power User Home | uiStartup | 2977 | 2372 | 4307 | 559 | 3362 | 4307 | |
| load | 1565 | 1333 | 1954 | 189 | 1775 | 1954 | |||
| domContentLoaded | 1564 | 1333 | 1954 | 189 | 1775 | 1954 | |||
| domInteractive | 227 | 110 | 624 | 131 | 319 | 624 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 249 | 42 | 726 | 220 | 419 | 726 | |||
| firstReactRender | 43 | 32 | 57 | 9 | 51 | 57 | |||
| getState | 145 | 92 | 198 | 29 | 171 | 198 | |||
| initialActions | 13 | 2 | 85 | 21 | 15 | 85 | |||
| loadScripts | 1504 | 1294 | 1929 | 189 | 1735 | 1929 | |||
| setupStore | 29 | 10 | 72 | 20 | 40 | 72 | |||
| Webpack | Standard Home | uiStartup | 1643 | 1478 | 2092 | 118 | 1691 | 1914 | |
| load | 1402 | 1248 | 1720 | 84 | 1446 | 1561 | |||
| domContentLoaded | 1402 | 1248 | 1719 | 84 | 1446 | 1561 | |||
| domInteractive | 109 | 37 | 380 | 54 | 115 | 237 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 47 | 20 | 143 | 22 | 55 | 93 | |||
| firstReactRender | 29 | 23 | 75 | 7 | 29 | 43 | |||
| getState | 12 | 4 | 141 | 21 | 8 | 48 | |||
| initialActions | 8 | 1 | 209 | 27 | 3 | 21 | |||
| loadScripts | 1373 | 1209 | 1691 | 81 | 1405 | 1527 | |||
| setupStore | 15 | 7 | 154 | 17 | 13 | 37 | |||
| Webpack | Power User Home | uiStartup | 2964 | 2513 | 3512 | 356 | 3384 | 3512 | |
| load | 1676 | 1442 | 2036 | 180 | 1824 | 2036 | |||
| domContentLoaded | 1675 | 1442 | 2035 | 180 | 1823 | 2035 | |||
| domInteractive | 158 | 75 | 293 | 68 | 222 | 293 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 183 | 34 | 468 | 125 | 285 | 468 | |||
| firstReactRender | 45 | 33 | 63 | 9 | 53 | 63 | |||
| getState | 169 | 116 | 295 | 48 | 210 | 295 | |||
| initialActions | 31 | 1 | 281 | 67 | 15 | 281 | |||
| loadScripts | 1620 | 1398 | 1921 | 165 | 1783 | 1921 | |||
| setupStore | 31 | 11 | 94 | 24 | 39 | 94 |
Bundle size diffs [🚨 Warning! Bundle size has increased!]
- background: 2.88 KiB (0.06%)
- ui: 266 Bytes (0%)
- common: 3.14 KiB (0.04%)
🧪 e2e Wallet State Fixture File
Download the onboarding fixture: https://github.com/MetaMask/metamask-extension/actions/runs/18970176550/artifacts/4428523541
📊 Page Load Benchmark Results
Current Commit: 16c332e | Date: 10/31/2025
📄 Localhost MetaMask Test Dapp
Samples: 100
Summary
- pageLoadTime-> current mean value: 1.04s (±39ms) 🟡 | historical mean value: 1.04s ⬇️ (historical data)
- domContentLoaded-> current mean value: 722ms (±36ms) 🟢 | historical mean value: 721ms ⬆️ (historical data)
- firstContentfulPaint-> current mean value: 76ms (±11ms) 🟢 | historical mean value: 76ms ⬇️ (historical data)
📈 Detailed Results
| Metric | Mean | Std Dev | Min | Max | P95 | P99 |
|---|---|---|---|---|---|---|
| pageLoadTime | 1.04s | 39ms | 1.00s | 1.31s | 1.06s | 1.31s |
| domContentLoaded | 722ms | 36ms | 697ms | 978ms | 751ms | 978ms |
| firstPaint | 76ms | 11ms | 60ms | 160ms | 84ms | 160ms |
| firstContentfulPaint | 76ms | 11ms | 60ms | 160ms | 84ms | 160ms |
| largestContentfulPaint | 0ms | 0ms | 0ms | 0ms | 0ms | 0ms |
Results generated automatically by MetaMask CI
Builds ready [16c332e]
- 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 (1272 ± 89 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 | 1272 | 1110 | 1662 | 89 | 1326 | 1437 |
| load | 1087 | 962 | 1424 | 84 | 1141 | 1264 | |||
| domContentLoaded | 1081 | 957 | 1416 | 83 | 1135 | 1255 | |||
| domInteractive | 21 | 14 | 63 | 10 | 19 | 46 | |||
| firstPaint | 597 | 75 | 1427 | 439 | 1076 | 1176 | |||
| backgroundConnect | 233 | 217 | 264 | 8 | 237 | 248 | |||
| firstReactRender | 27 | 17 | 57 | 7 | 30 | 39 | |||
| getState | 20 | 8 | 43 | 8 | 25 | 40 | |||
| initialActions | 7 | 0 | 57 | 8 | 7 | 26 | |||
| loadScripts | 855 | 722 | 1195 | 83 | 910 | 1023 | |||
| setupStore | 11 | 6 | 21 | 3 | 11 | 18 | |||
| numNetworkReqs | 9 | 6 | 32 | 7 | 6 | 30 | |||
| Browserify | Power User Home | uiStartup | 2208 | 1885 | 3345 | 474 | 2707 | 3345 | |
| load | 1170 | 960 | 1730 | 290 | 1622 | 1730 | |||
| domContentLoaded | 1161 | 956 | 1714 | 287 | 1617 | 1714 | |||
| domInteractive | 28 | 18 | 69 | 16 | 42 | 69 | |||
| firstPaint | 675 | 176 | 1693 | 454 | 1017 | 1693 | |||
| backgroundConnect | 259 | 230 | 355 | 41 | 260 | 355 | |||
| firstReactRender | 26 | 24 | 36 | 3 | 27 | 36 | |||
| getState | 188 | 167 | 250 | 23 | 207 | 250 | |||
| initialActions | 5 | 2 | 13 | 3 | 7 | 13 | |||
| loadScripts | 915 | 725 | 1400 | 258 | 1330 | 1400 | |||
| setupStore | 12 | 9 | 28 | 4 | 11 | 28 | |||
| numNetworkReqs | 333 | 187 | 657 | 163 | 551 | 657 | |||
| Webpack | Standard Home | uiStartup | 868 | 745 | 1131 | 76 | 883 | 1091 | |
| load | 645 | 595 | 960 | 69 | 647 | 839 | |||
| domContentLoaded | 638 | 586 | 940 | 68 | 641 | 831 | |||
| domInteractive | 16 | 12 | 53 | 8 | 15 | 37 | |||
| firstPaint | 208 | 58 | 914 | 205 | 195 | 623 | |||
| backgroundConnect | 24 | 12 | 53 | 8 | 27 | 41 | |||
| firstReactRender | 31 | 17 | 258 | 26 | 33 | 45 | |||
| getState | 12 | 6 | 30 | 4 | 15 | 18 | |||
| initialActions | 3 | 0 | 9 | 2 | 4 | 6 | |||
| loadScripts | 634 | 584 | 929 | 66 | 638 | 821 | |||
| setupStore | 10 | 6 | 21 | 3 | 12 | 14 | |||
| numNetworkReqs | 9 | 6 | 34 | 8 | 8 | 32 | |||
| Webpack | Power User Home | uiStartup | 1727 | 1466 | 2358 | 321 | 2117 | 2358 | |
| load | 753 | 637 | 1202 | 181 | 923 | 1202 | |||
| domContentLoaded | 717 | 621 | 1031 | 146 | 889 | 1031 | |||
| domInteractive | 20 | 13 | 40 | 9 | 29 | 40 | |||
| firstPaint | 414 | 79 | 1034 | 362 | 893 | 1034 | |||
| backgroundConnect | 126 | 29 | 475 | 149 | 165 | 475 | |||
| firstReactRender | 25 | 23 | 28 | 2 | 27 | 28 | |||
| getState | 148 | 91 | 172 | 19 | 159 | 172 | |||
| initialActions | 17 | 1 | 172 | 41 | 22 | 172 | |||
| loadScripts | 712 | 618 | 1019 | 142 | 878 | 1019 | |||
| setupStore | 15 | 6 | 36 | 11 | 27 | 36 | |||
| numNetworkReqs | 322 | 181 | 571 | 140 | 534 | 571 | |||
| Firefox | Browserify | Standard Home | uiStartup | 1453 | 1241 | 1819 | 93 | 1521 | 1598 |
| load | 1244 | 1073 | 1449 | 73 | 1307 | 1377 | |||
| domContentLoaded | 1244 | 1072 | 1448 | 73 | 1307 | 1376 | |||
| domInteractive | 115 | 36 | 341 | 45 | 123 | 206 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 41 | 25 | 134 | 17 | 45 | 69 | |||
| firstReactRender | 26 | 21 | 61 | 7 | 25 | 45 | |||
| getState | 7 | 4 | 44 | 4 | 7 | 12 | |||
| initialActions | 3 | 1 | 13 | 2 | 3 | 6 | |||
| loadScripts | 1219 | 1053 | 1424 | 72 | 1275 | 1351 | |||
| setupStore | 11 | 7 | 58 | 6 | 11 | 24 | |||
| numNetworkReqs | 9 | 6 | 31 | 6 | 7 | 26 | |||
| Browserify | Power User Home | uiStartup | 2642 | 2153 | 4090 | 487 | 2795 | 4090 | |
| load | 1377 | 1154 | 1686 | 135 | 1489 | 1686 | |||
| domContentLoaded | 1377 | 1154 | 1686 | 135 | 1488 | 1686 | |||
| domInteractive | 168 | 95 | 427 | 93 | 233 | 427 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 181 | 33 | 524 | 179 | 408 | 524 | |||
| firstReactRender | 35 | 28 | 49 | 7 | 39 | 49 | |||
| getState | 132 | 73 | 201 | 32 | 146 | 201 | |||
| initialActions | 5 | 1 | 18 | 4 | 9 | 18 | |||
| loadScripts | 1325 | 1132 | 1593 | 121 | 1405 | 1593 | |||
| setupStore | 31 | 10 | 120 | 32 | 40 | 120 | |||
| numNetworkReqs | 241 | 146 | 450 | 91 | 302 | 450 | |||
| Webpack | Standard Home | uiStartup | 1571 | 1330 | 2262 | 167 | 1591 | 1991 | |
| load | 1345 | 1167 | 1825 | 119 | 1403 | 1611 | |||
| domContentLoaded | 1345 | 1166 | 1825 | 119 | 1402 | 1611 | |||
| domInteractive | 107 | 31 | 517 | 74 | 110 | 280 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 45 | 21 | 127 | 21 | 48 | 108 | |||
| firstReactRender | 32 | 22 | 88 | 15 | 29 | 71 | |||
| getState | 9 | 4 | 139 | 14 | 11 | 15 | |||
| initialActions | 7 | 1 | 192 | 22 | 3 | 39 | |||
| loadScripts | 1317 | 1151 | 1786 | 113 | 1375 | 1588 | |||
| setupStore | 14 | 7 | 113 | 15 | 11 | 48 | |||
| numNetworkReqs | 10 | 6 | 36 | 8 | 7 | 33 | |||
| Webpack | Power User Home | uiStartup | 2808 | 2267 | 3834 | 489 | 3121 | 3834 | |
| load | 1618 | 1263 | 2094 | 285 | 1930 | 2094 | |||
| domContentLoaded | 1617 | 1262 | 2094 | 285 | 1930 | 2094 | |||
| domInteractive | 153 | 40 | 452 | 96 | 200 | 452 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 200 | 27 | 828 | 230 | 259 | 828 | |||
| firstReactRender | 47 | 32 | 101 | 17 | 54 | 101 | |||
| getState | 138 | 84 | 243 | 44 | 187 | 243 | |||
| initialActions | 8 | 1 | 27 | 7 | 12 | 27 | |||
| loadScripts | 1556 | 1244 | 1964 | 243 | 1835 | 1964 | |||
| setupStore | 27 | 6 | 71 | 20 | 45 | 71 | |||
| numNetworkReqs | 281 | 119 | 568 | 149 | 335 | 568 |
Bundle size diffs [🚨 Warning! Bundle size has increased!]
- background: 68 Bytes (0%)
- ui: 0 Bytes (0%)
- common: 10 Bytes (0%)
🧪 e2e Wallet State Fixture File
Download the onboarding fixture: https://github.com/MetaMask/metamask-extension/actions/runs/19027236424/artifacts/4446232294
Builds ready [2324b7f]
- 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 (1242 ± 89 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 | 1242 | 1099 | 1608 | 89 | 1296 | 1389 |
| load | 1065 | 941 | 1362 | 80 | 1125 | 1195 | |||
| domContentLoaded | 1058 | 938 | 1353 | 80 | 1118 | 1189 | |||
| domInteractive | 20 | 13 | 67 | 12 | 18 | 57 | |||
| firstPaint | 631 | 75 | 1235 | 425 | 1080 | 1190 | |||
| backgroundConnect | 229 | 214 | 378 | 16 | 232 | 238 | |||
| firstReactRender | 29 | 16 | 81 | 9 | 34 | 45 | |||
| getState | 21 | 9 | 91 | 10 | 23 | 35 | |||
| initialActions | 7 | 0 | 60 | 8 | 6 | 22 | |||
| loadScripts | 836 | 721 | 1125 | 80 | 895 | 964 | |||
| setupStore | 10 | 5 | 23 | 3 | 11 | 16 | |||
| numNetworkReqs | 13 | 6 | 76 | 20 | 6 | 72 | |||
| Browserify | Power User Home | uiStartup | 2087 | 1756 | 3567 | 452 | 2169 | 3567 | |
| load | 1110 | 915 | 1875 | 258 | 1356 | 1875 | |||
| domContentLoaded | 1099 | 909 | 1834 | 252 | 1345 | 1834 | |||
| domInteractive | 32 | 16 | 99 | 25 | 55 | 99 | |||
| firstPaint | 762 | 91 | 1879 | 522 | 1060 | 1879 | |||
| backgroundConnect | 246 | 220 | 342 | 29 | 254 | 342 | |||
| firstReactRender | 28 | 24 | 42 | 5 | 30 | 42 | |||
| getState | 194 | 157 | 274 | 32 | 224 | 274 | |||
| initialActions | 5 | 1 | 12 | 3 | 6 | 12 | |||
| loadScripts | 867 | 695 | 1529 | 233 | 1112 | 1529 | |||
| setupStore | 14 | 9 | 38 | 8 | 12 | 38 | |||
| numNetworkReqs | 179 | 102 | 375 | 99 | 309 | 375 | |||
| Webpack | Standard Home | uiStartup | 906 | 769 | 1305 | 107 | 910 | 1210 | |
| load | 667 | 609 | 1083 | 95 | 667 | 969 | |||
| domContentLoaded | 659 | 601 | 1043 | 91 | 660 | 950 | |||
| domInteractive | 16 | 12 | 49 | 8 | 15 | 41 | |||
| firstPaint | 229 | 58 | 1086 | 243 | 193 | 893 | |||
| backgroundConnect | 27 | 12 | 77 | 13 | 30 | 68 | |||
| firstReactRender | 34 | 18 | 230 | 25 | 37 | 58 | |||
| getState | 13 | 7 | 34 | 4 | 15 | 19 | |||
| initialActions | 4 | 1 | 36 | 4 | 5 | 10 | |||
| loadScripts | 655 | 599 | 1032 | 88 | 658 | 939 | |||
| setupStore | 12 | 6 | 25 | 4 | 13 | 20 | |||
| numNetworkReqs | 13 | 6 | 75 | 19 | 8 | 70 | |||
| Webpack | Power User Home | uiStartup | 1434 | 1235 | 2214 | 307 | 1743 | 2214 | |
| load | 722 | 630 | 1053 | 149 | 808 | 1053 | |||
| domContentLoaded | 701 | 618 | 1016 | 137 | 769 | 1016 | |||
| domInteractive | 26 | 13 | 109 | 25 | 40 | 109 | |||
| firstPaint | 429 | 75 | 1019 | 304 | 638 | 1019 | |||
| backgroundConnect | 74 | 19 | 281 | 89 | 78 | 281 | |||
| firstReactRender | 28 | 25 | 40 | 3 | 28 | 40 | |||
| getState | 155 | 119 | 176 | 14 | 163 | 176 | |||
| initialActions | 2 | 1 | 11 | 2 | 2 | 11 | |||
| loadScripts | 696 | 616 | 999 | 133 | 757 | 999 | |||
| setupStore | 12 | 6 | 25 | 7 | 21 | 25 | |||
| numNetworkReqs | 157 | 95 | 289 | 71 | 228 | 289 | |||
| Firefox | Browserify | Standard Home | uiStartup | 1453 | 1233 | 1739 | 109 | 1525 | 1640 |
| load | 1236 | 1069 | 1447 | 90 | 1321 | 1409 | |||
| domContentLoaded | 1236 | 1069 | 1447 | 89 | 1320 | 1409 | |||
| domInteractive | 113 | 34 | 290 | 46 | 126 | 214 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 43 | 25 | 143 | 20 | 47 | 96 | |||
| firstReactRender | 25 | 21 | 61 | 6 | 25 | 38 | |||
| getState | 8 | 4 | 34 | 4 | 9 | 15 | |||
| initialActions | 4 | 1 | 42 | 5 | 4 | 13 | |||
| loadScripts | 1209 | 1054 | 1413 | 85 | 1285 | 1362 | |||
| setupStore | 13 | 7 | 54 | 8 | 12 | 32 | |||
| numNetworkReqs | 12 | 6 | 66 | 16 | 7 | 62 | |||
| Browserify | Power User Home | uiStartup | 2561 | 2184 | 3400 | 330 | 2657 | 3400 | |
| load | 1429 | 1185 | 1795 | 180 | 1651 | 1795 | |||
| domContentLoaded | 1429 | 1185 | 1795 | 180 | 1651 | 1795 | |||
| domInteractive | 227 | 100 | 650 | 182 | 393 | 650 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 140 | 43 | 616 | 152 | 164 | 616 | |||
| firstReactRender | 38 | 31 | 52 | 7 | 45 | 52 | |||
| getState | 136 | 102 | 199 | 24 | 149 | 199 | |||
| initialActions | 6 | 1 | 20 | 6 | 11 | 20 | |||
| loadScripts | 1385 | 1152 | 1760 | 175 | 1560 | 1760 | |||
| setupStore | 26 | 6 | 122 | 27 | 39 | 122 | |||
| numNetworkReqs | 159 | 70 | 350 | 92 | 238 | 350 | |||
| Webpack | Standard Home | uiStartup | 1619 | 1440 | 2081 | 129 | 1666 | 1908 | |
| load | 1389 | 1208 | 1716 | 109 | 1444 | 1624 | |||
| domContentLoaded | 1389 | 1208 | 1716 | 109 | 1443 | 1624 | |||
| domInteractive | 98 | 32 | 218 | 29 | 114 | 151 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 49 | 25 | 160 | 25 | 52 | 114 | |||
| firstReactRender | 32 | 23 | 80 | 13 | 32 | 75 | |||
| getState | 9 | 4 | 50 | 8 | 9 | 19 | |||
| initialActions | 4 | 1 | 26 | 4 | 3 | 14 | |||
| loadScripts | 1359 | 1190 | 1678 | 100 | 1420 | 1547 | |||
| setupStore | 15 | 6 | 100 | 13 | 13 | 36 | |||
| numNetworkReqs | 13 | 6 | 69 | 17 | 8 | 65 | |||
| Webpack | Power User Home | uiStartup | 2466 | 2105 | 3022 | 276 | 2647 | 3022 | |
| load | 1499 | 1205 | 1753 | 177 | 1703 | 1753 | |||
| domContentLoaded | 1499 | 1204 | 1753 | 177 | 1702 | 1753 | |||
| domInteractive | 117 | 40 | 219 | 61 | 210 | 219 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 83 | 28 | 329 | 74 | 112 | 329 | |||
| firstReactRender | 39 | 29 | 53 | 8 | 47 | 53 | |||
| getState | 130 | 77 | 194 | 42 | 181 | 194 | |||
| initialActions | 14 | 1 | 74 | 20 | 15 | 74 | |||
| loadScripts | 1466 | 1187 | 1720 | 169 | 1637 | 1720 | |||
| setupStore | 47 | 11 | 211 | 50 | 70 | 211 | |||
| numNetworkReqs | 161 | 66 | 316 | 81 | 230 | 316 |
📊 Page Load Benchmark Results
Current Commit: 2324b7f | Date: 11/3/2025
📄 Localhost MetaMask Test Dapp
Samples: 100
Summary
- pageLoadTime-> current mean value: 1.04s (±40ms) 🟡 | historical mean value: 1.04s ⬆️ (historical data)
- domContentLoaded-> current mean value: 724ms (±36ms) 🟢 | historical mean value: 725ms ⬇️ (historical data)
- firstContentfulPaint-> current mean value: 78ms (±11ms) 🟢 | historical mean value: 77ms ⬆️ (historical data)
📈 Detailed Results
| Metric | Mean | Std Dev | Min | Max | P95 | P99 |
|---|---|---|---|---|---|---|
| pageLoadTime | 1.04s | 40ms | 1.02s | 1.33s | 1.08s | 1.33s |
| domContentLoaded | 724ms | 36ms | 701ms | 997ms | 758ms | 997ms |
| firstPaint | 78ms | 11ms | 60ms | 172ms | 88ms | 172ms |
| firstContentfulPaint | 78ms | 11ms | 60ms | 172ms | 88ms | 172ms |
| largestContentfulPaint | 0ms | 0ms | 0ms | 0ms | 0ms | 0ms |
Bundle size diffs [🚀 Bundle size reduced!]
- background: -16.93 KiB (-0.36%)
- ui: 4.73 KiB (0.07%)
- common: 2.3 KiB (0.03%)
🧪 e2e Wallet State Fixture File
Download the onboarding fixture: https://github.com/MetaMask/metamask-extension/actions/runs/19028110946/artifacts/4446536019
Builds ready [71fb221]
- 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 (1267 ± 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 | 1267 | 1109 | 1686 | 106 | 1331 | 1468 |
| load | 1084 | 938 | 1471 | 98 | 1138 | 1285 | |||
| domContentLoaded | 1076 | 921 | 1462 | 99 | 1130 | 1271 | |||
| domInteractive | 21 | 13 | 70 | 12 | 18 | 56 | |||
| firstPaint | 612 | 92 | 1494 | 434 | 1060 | 1243 | |||
| backgroundConnect | 232 | 217 | 345 | 14 | 234 | 243 | |||
| firstReactRender | 30 | 18 | 78 | 9 | 36 | 48 | |||
| getState | 22 | 9 | 46 | 7 | 26 | 36 | |||
| initialActions | 6 | 1 | 51 | 7 | 7 | 18 | |||
| loadScripts | 852 | 696 | 1231 | 98 | 906 | 1048 | |||
| setupStore | 11 | 6 | 32 | 4 | 12 | 19 | |||
| numNetworkReqs | 13 | 6 | 74 | 19 | 6 | 71 | |||
| Browserify | Power User Home | uiStartup | 2083 | 1807 | 3469 | 447 | 2318 | 3469 | |
| load | 1086 | 941 | 1563 | 213 | 1350 | 1563 | |||
| domContentLoaded | 1075 | 933 | 1546 | 210 | 1346 | 1546 | |||
| domInteractive | 29 | 14 | 80 | 21 | 47 | 80 | |||
| firstPaint | 730 | 139 | 1573 | 496 | 982 | 1573 | |||
| backgroundConnect | 244 | 220 | 302 | 20 | 255 | 302 | |||
| firstReactRender | 27 | 24 | 41 | 4 | 27 | 41 | |||
| getState | 183 | 157 | 238 | 22 | 197 | 238 | |||
| initialActions | 4 | 1 | 13 | 3 | 5 | 13 | |||
| loadScripts | 846 | 709 | 1264 | 198 | 1110 | 1264 | |||
| setupStore | 11 | 9 | 24 | 3 | 11 | 24 | |||
| numNetworkReqs | 157 | 101 | 312 | 78 | 230 | 312 | |||
| Webpack | Standard Home | uiStartup | 887 | 746 | 1297 | 102 | 891 | 1162 | |
| load | 659 | 600 | 1051 | 89 | 664 | 924 | |||
| domContentLoaded | 651 | 593 | 1034 | 86 | 656 | 905 | |||
| domInteractive | 16 | 12 | 60 | 8 | 15 | 39 | |||
| firstPaint | 215 | 61 | 1038 | 225 | 186 | 817 | |||
| backgroundConnect | 27 | 12 | 94 | 15 | 29 | 71 | |||
| firstReactRender | 29 | 18 | 63 | 8 | 34 | 38 | |||
| getState | 13 | 7 | 42 | 5 | 15 | 20 | |||
| initialActions | 3 | 1 | 20 | 3 | 4 | 10 | |||
| loadScripts | 647 | 591 | 1022 | 83 | 654 | 895 | |||
| setupStore | 11 | 5 | 32 | 4 | 13 | 19 | |||
| numNetworkReqs | 13 | 6 | 75 | 19 | 8 | 71 | |||
| Webpack | Power User Home | uiStartup | 1287 | 1110 | 1781 | 234 | 1417 | 1781 | |
| load | 643 | 566 | 917 | 111 | 704 | 917 | |||
| domContentLoaded | 621 | 550 | 875 | 101 | 672 | 875 | |||
| domInteractive | 19 | 12 | 46 | 11 | 20 | 46 | |||
| firstPaint | 488 | 96 | 891 | 262 | 680 | 891 | |||
| backgroundConnect | 71 | 20 | 254 | 80 | 47 | 254 | |||
| firstReactRender | 25 | 23 | 30 | 2 | 26 | 30 | |||
| getState | 135 | 97 | 153 | 16 | 145 | 153 | |||
| initialActions | 5 | 1 | 22 | 5 | 5 | 22 | |||
| loadScripts | 617 | 548 | 867 | 99 | 663 | 867 | |||
| setupStore | 13 | 6 | 29 | 8 | 22 | 29 | |||
| numNetworkReqs | 195 | 105 | 326 | 65 | 245 | 326 | |||
| Firefox | Browserify | Standard Home | uiStartup | 1465 | 1269 | 1997 | 127 | 1505 | 1746 |
| load | 1233 | 1092 | 1479 | 80 | 1288 | 1405 | |||
| domContentLoaded | 1233 | 1092 | 1479 | 80 | 1288 | 1405 | |||
| domInteractive | 112 | 36 | 341 | 54 | 121 | 227 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 46 | 25 | 183 | 27 | 51 | 114 | |||
| firstReactRender | 26 | 21 | 48 | 5 | 27 | 39 | |||
| getState | 10 | 4 | 225 | 22 | 8 | 15 | |||
| initialActions | 5 | 1 | 55 | 7 | 4 | 14 | |||
| loadScripts | 1206 | 1075 | 1454 | 79 | 1263 | 1380 | |||
| setupStore | 13 | 7 | 52 | 8 | 12 | 31 | |||
| numNetworkReqs | 13 | 6 | 65 | 17 | 7 | 63 | |||
| Browserify | Power User Home | uiStartup | 2588 | 2175 | 3598 | 401 | 2604 | 3598 | |
| load | 1424 | 1205 | 1711 | 163 | 1652 | 1711 | |||
| domContentLoaded | 1424 | 1204 | 1711 | 163 | 1651 | 1711 | |||
| domInteractive | 228 | 79 | 697 | 189 | 441 | 697 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 125 | 34 | 479 | 123 | 159 | 479 | |||
| firstReactRender | 43 | 32 | 92 | 14 | 48 | 92 | |||
| getState | 134 | 83 | 197 | 29 | 145 | 197 | |||
| initialActions | 24 | 1 | 191 | 46 | 22 | 191 | |||
| loadScripts | 1385 | 1178 | 1680 | 157 | 1588 | 1680 | |||
| setupStore | 38 | 6 | 201 | 53 | 37 | 201 | |||
| numNetworkReqs | 151 | 66 | 339 | 90 | 216 | 339 | |||
| Webpack | Standard Home | uiStartup | 1522 | 1350 | 2098 | 140 | 1536 | 1837 | |
| load | 1301 | 1165 | 1555 | 95 | 1327 | 1520 | |||
| domContentLoaded | 1301 | 1165 | 1554 | 95 | 1327 | 1520 | |||
| domInteractive | 96 | 32 | 274 | 34 | 105 | 150 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 44 | 22 | 135 | 23 | 47 | 109 | |||
| firstReactRender | 29 | 20 | 68 | 12 | 29 | 64 | |||
| getState | 8 | 4 | 75 | 9 | 8 | 20 | |||
| initialActions | 5 | 1 | 62 | 9 | 3 | 24 | |||
| loadScripts | 1273 | 1147 | 1520 | 88 | 1305 | 1468 | |||
| setupStore | 16 | 6 | 180 | 20 | 12 | 48 | |||
| numNetworkReqs | 13 | 6 | 69 | 18 | 7 | 66 | |||
| Webpack | Power User Home | uiStartup | 2634 | 2379 | 2959 | 207 | 2840 | 2959 | |
| load | 1599 | 1373 | 2047 | 185 | 1748 | 2047 | |||
| domContentLoaded | 1599 | 1372 | 2047 | 186 | 1748 | 2047 | |||
| domInteractive | 195 | 38 | 486 | 148 | 357 | 486 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 103 | 34 | 295 | 76 | 120 | 295 | |||
| firstReactRender | 51 | 33 | 98 | 19 | 56 | 98 | |||
| getState | 142 | 69 | 250 | 47 | 196 | 250 | |||
| initialActions | 11 | 2 | 38 | 11 | 16 | 38 | |||
| loadScripts | 1560 | 1343 | 1988 | 179 | 1722 | 1988 | |||
| setupStore | 35 | 7 | 89 | 25 | 47 | 89 | |||
| numNetworkReqs | 161 | 66 | 364 | 86 | 214 | 364 |
📊 Page Load Benchmark Results
Current Commit: 71fb221 | Date: 11/3/2025
📄 Localhost MetaMask Test Dapp
Samples: 100
Summary
- pageLoadTime-> current mean value: 1.02s (±36ms) 🟡 | historical mean value: 1.04s ⬇️ (historical data)
- domContentLoaded-> current mean value: 714ms (±35ms) 🟢 | historical mean value: 725ms ⬇️ (historical data)
- firstContentfulPaint-> current mean value: 74ms (±11ms) 🟢 | historical mean value: 77ms ⬇️ (historical data)
📈 Detailed Results
| Metric | Mean | Std Dev | Min | Max | P95 | P99 |
|---|---|---|---|---|---|---|
| pageLoadTime | 1.02s | 36ms | 1.01s | 1.30s | 1.04s | 1.30s |
| domContentLoaded | 714ms | 35ms | 695ms | 980ms | 724ms | 980ms |
| firstPaint | 74ms | 11ms | 56ms | 164ms | 84ms | 164ms |
| firstContentfulPaint | 74ms | 11ms | 56ms | 164ms | 84ms | 164ms |
| largestContentfulPaint | 0ms | 0ms | 0ms | 0ms | 0ms | 0ms |
Bundle size diffs [🚀 Bundle size reduced!]
- background: -16.93 KiB (-0.36%)
- ui: 4.73 KiB (0.07%)
- common: 2.3 KiB (0.03%)
Builds ready [c1af735]
- 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 (1269 ± 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 | 1269 | 1048 | 1511 | 106 | 1323 | 1488 |
| load | 1070 | 887 | 1274 | 90 | 1116 | 1238 | |||
| domContentLoaded | 1064 | 883 | 1267 | 90 | 1109 | 1230 | |||
| domInteractive | 28 | 16 | 108 | 24 | 22 | 101 | |||
| firstPaint | 528 | 87 | 1239 | 407 | 1047 | 1145 | |||
| backgroundConnect | 218 | 200 | 243 | 9 | 222 | 237 | |||
| firstReactRender | 30 | 20 | 64 | 9 | 36 | 47 | |||
| getState | 33 | 15 | 70 | 12 | 38 | 62 | |||
| initialActions | 1 | 0 | 5 | 1 | 1 | 3 | |||
| loadScripts | 853 | 678 | 1055 | 89 | 893 | 1019 | |||
| setupStore | 11 | 6 | 31 | 4 | 12 | 19 | |||
| numNetworkReqs | 12 | 5 | 75 | 20 | 5 | 71 | |||
| Browserify | Power User Home | uiStartup | 1911 | 1579 | 2833 | 268 | 2001 | 2574 | |
| load | 980 | 861 | 1516 | 134 | 967 | 1356 | |||
| domContentLoaded | 966 | 856 | 1485 | 131 | 950 | 1338 | |||
| domInteractive | 33 | 17 | 152 | 32 | 26 | 127 | |||
| firstPaint | 559 | 94 | 1504 | 402 | 933 | 1336 | |||
| backgroundConnect | 219 | 198 | 267 | 12 | 226 | 243 | |||
| firstReactRender | 85 | 43 | 135 | 18 | 92 | 117 | |||
| getState | 166 | 125 | 292 | 33 | 186 | 226 | |||
| initialActions | 1 | 0 | 5 | 1 | 1 | 2 | |||
| loadScripts | 763 | 662 | 1278 | 131 | 747 | 1136 | |||
| setupStore | 21 | 10 | 83 | 13 | 24 | 48 | |||
| numNetworkReqs | 102 | 66 | 295 | 58 | 97 | 275 | |||
| Webpack | Standard Home | uiStartup | 831 | 701 | 1565 | 112 | 853 | 1035 | |
| load | 647 | 561 | 1335 | 105 | 686 | 821 | |||
| domContentLoaded | 642 | 558 | 1329 | 105 | 681 | 814 | |||
| domInteractive | 27 | 14 | 129 | 25 | 21 | 96 | |||
| firstPaint | 222 | 85 | 835 | 164 | 203 | 640 | |||
| backgroundConnect | 9 | 5 | 42 | 6 | 9 | 18 | |||
| firstReactRender | 27 | 19 | 71 | 7 | 30 | 38 | |||
| getState | 27 | 13 | 68 | 12 | 34 | 47 | |||
| initialActions | 1 | 0 | 3 | 1 | 1 | 2 | |||
| loadScripts | 639 | 556 | 1320 | 104 | 679 | 805 | |||
| setupStore | 10 | 6 | 28 | 4 | 12 | 17 | |||
| numNetworkReqs | 12 | 5 | 77 | 21 | 5 | 76 | |||
| Webpack | Power User Home | uiStartup | 1651 | 1231 | 2530 | 239 | 1826 | 2006 | |
| load | 672 | 587 | 1283 | 110 | 672 | 946 | |||
| domContentLoaded | 662 | 582 | 1272 | 110 | 658 | 938 | |||
| domInteractive | 39 | 17 | 259 | 40 | 33 | 135 | |||
| firstPaint | 277 | 108 | 1279 | 216 | 235 | 884 | |||
| backgroundConnect | 15 | 7 | 40 | 6 | 18 | 26 | |||
| firstReactRender | 85 | 45 | 108 | 15 | 97 | 104 | |||
| getState | 148 | 125 | 204 | 13 | 156 | 172 | |||
| initialActions | 1 | 0 | 2 | 1 | 1 | 2 | |||
| loadScripts | 659 | 580 | 1261 | 108 | 656 | 929 | |||
| setupStore | 23 | 10 | 70 | 15 | 36 | 51 | |||
| numNetworkReqs | 157 | 65 | 401 | 72 | 201 | 332 | |||
| Firefox | Browserify | Standard Home | uiStartup | 1253 | 1087 | 1871 | 131 | 1299 | 1496 |
| load | 1040 | 908 | 1222 | 77 | 1098 | 1195 | |||
| domContentLoaded | 1038 | 908 | 1217 | 77 | 1098 | 1195 | |||
| domInteractive | 57 | 31 | 187 | 34 | 82 | 132 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 40 | 23 | 337 | 37 | 39 | 92 | |||
| firstReactRender | 22 | 18 | 44 | 5 | 22 | 35 | |||
| getState | 10 | 6 | 80 | 8 | 10 | 22 | |||
| initialActions | 1 | 0 | 3 | 0 | 1 | 2 | |||
| loadScripts | 1018 | 892 | 1191 | 73 | 1073 | 1161 | |||
| setupStore | 12 | 6 | 191 | 19 | 10 | 25 | |||
| numNetworkReqs | 11 | 5 | 68 | 16 | 6 | 62 | |||
| Browserify | Power User Home | uiStartup | 2452 | 1894 | 3210 | 278 | 2621 | 2927 | |
| load | 1108 | 947 | 1600 | 146 | 1123 | 1441 | |||
| domContentLoaded | 1107 | 947 | 1599 | 146 | 1123 | 1441 | |||
| domInteractive | 117 | 31 | 577 | 102 | 116 | 394 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 103 | 27 | 485 | 76 | 112 | 279 | |||
| firstReactRender | 85 | 41 | 172 | 23 | 97 | 129 | |||
| getState | 248 | 61 | 871 | 211 | 317 | 779 | |||
| initialActions | 3 | 1 | 8 | 2 | 3 | 7 | |||
| loadScripts | 1069 | 931 | 1508 | 137 | 1075 | 1423 | |||
| setupStore | 154 | 7 | 774 | 194 | 139 | 660 | |||
| numNetworkReqs | 99 | 61 | 319 | 65 | 77 | 308 | |||
| Webpack | Standard Home | uiStartup | 1441 | 1230 | 1789 | 117 | 1492 | 1724 | |
| load | 1221 | 1055 | 1616 | 103 | 1281 | 1443 | |||
| domContentLoaded | 1221 | 1055 | 1616 | 103 | 1280 | 1442 | |||
| domInteractive | 55 | 26 | 165 | 29 | 77 | 106 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 39 | 21 | 114 | 18 | 41 | 91 | |||
| firstReactRender | 26 | 19 | 67 | 6 | 28 | 35 | |||
| getState | 11 | 6 | 77 | 9 | 11 | 21 | |||
| initialActions | 1 | 0 | 3 | 1 | 1 | 2 | |||
| loadScripts | 1197 | 1036 | 1598 | 98 | 1256 | 1370 | |||
| setupStore | 12 | 6 | 73 | 12 | 9 | 37 | |||
| numNetworkReqs | 11 | 5 | 68 | 16 | 6 | 62 | |||
| Webpack | Power User Home | uiStartup | 2642 | 2089 | 3529 | 272 | 2803 | 3251 | |
| load | 1296 | 1083 | 1858 | 157 | 1327 | 1636 | |||
| domContentLoaded | 1296 | 1083 | 1858 | 157 | 1327 | 1636 | |||
| domInteractive | 100 | 29 | 459 | 90 | 103 | 344 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 93 | 28 | 255 | 47 | 110 | 196 | |||
| firstReactRender | 83 | 30 | 185 | 24 | 91 | 130 | |||
| getState | 237 | 31 | 924 | 216 | 251 | 738 | |||
| initialActions | 3 | 1 | 8 | 2 | 3 | 7 | |||
| loadScripts | 1267 | 1067 | 1838 | 150 | 1303 | 1607 | |||
| setupStore | 107 | 5 | 712 | 138 | 115 | 472 | |||
| numNetworkReqs | 99 | 62 | 299 | 54 | 117 | 245 |
📊 Page Load Benchmark Results
Current Commit: c1af735 | Date: 11/25/2025
📄 Localhost MetaMask Test Dapp
Samples: 100
Summary
- pageLoadTime-> current mean value: 1.06s (±43ms) 🟡 | historical mean value: 1.04s ⬆️ (historical data)
- domContentLoaded-> current mean value: 740ms (±40ms) 🟢 | historical mean value: 721ms ⬆️ (historical data)
- firstContentfulPaint-> current mean value: 79ms (±15ms) 🟢 | historical mean value: 81ms ⬇️ (historical data)
📈 Detailed Results
| Metric | Mean | Std Dev | Min | Max | P95 | P99 |
|---|---|---|---|---|---|---|
| pageLoadTime | 1.06s | 43ms | 1.03s | 1.39s | 1.10s | 1.39s |
| domContentLoaded | 740ms | 40ms | 710ms | 1.05s | 768ms | 1.05s |
| firstPaint | 79ms | 15ms | 64ms | 220ms | 92ms | 220ms |
| firstContentfulPaint | 79ms | 15ms | 64ms | 220ms | 92ms | 220ms |
| largestContentfulPaint | 0ms | 0ms | 0ms | 0ms | 0ms | 0ms |
Bundle size diffs [🚨 Warning! Bundle size has increased!]
- background: 4.71 KiB (0.1%)
- ui: 67.14 KiB (0.96%)
- common: 3.9 KiB (0.04%)
Builds ready [a5ac316]
- 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 (1248 ± 103 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 | 1248 | 1044 | 1552 | 103 | 1291 | 1451 |
| load | 1049 | 866 | 1266 | 83 | 1094 | 1216 | |||
| domContentLoaded | 1043 | 861 | 1261 | 82 | 1083 | 1191 | |||
| domInteractive | 27 | 16 | 112 | 24 | 21 | 100 | |||
| firstPaint | 446 | 83 | 1219 | 368 | 915 | 1124 | |||
| backgroundConnect | 218 | 197 | 277 | 13 | 225 | 237 | |||
| firstReactRender | 28 | 19 | 187 | 17 | 29 | 48 | |||
| getState | 32 | 18 | 79 | 12 | 34 | 65 | |||
| initialActions | 1 | 0 | 4 | 1 | 1 | 2 | |||
| loadScripts | 831 | 657 | 1041 | 79 | 866 | 970 | |||
| setupStore | 11 | 7 | 30 | 4 | 12 | 23 | |||
| numNetworkReqs | 12 | 5 | 76 | 20 | 5 | 71 | |||
| Browserify | Power User Home | uiStartup | 2070 | 1558 | 3057 | 267 | 2236 | 2579 | |
| load | 982 | 888 | 1703 | 142 | 965 | 1336 | |||
| domContentLoaded | 966 | 876 | 1688 | 142 | 947 | 1326 | |||
| domInteractive | 32 | 17 | 214 | 30 | 29 | 106 | |||
| firstPaint | 597 | 118 | 1715 | 389 | 936 | 1287 | |||
| backgroundConnect | 222 | 203 | 262 | 13 | 230 | 248 | |||
| firstReactRender | 87 | 45 | 248 | 24 | 94 | 129 | |||
| getState | 168 | 130 | 242 | 25 | 186 | 213 | |||
| initialActions | 1 | 0 | 7 | 1 | 1 | 3 | |||
| loadScripts | 764 | 673 | 1463 | 140 | 745 | 1127 | |||
| setupStore | 20 | 8 | 84 | 12 | 24 | 45 | |||
| numNetworkReqs | 153 | 70 | 393 | 70 | 187 | 334 | |||
| Webpack | Standard Home | uiStartup | 825 | 700 | 1046 | 80 | 861 | 997 | |
| load | 640 | 566 | 820 | 71 | 682 | 809 | |||
| domContentLoaded | 636 | 561 | 804 | 70 | 678 | 802 | |||
| domInteractive | 25 | 15 | 97 | 20 | 21 | 87 | |||
| firstPaint | 251 | 87 | 829 | 189 | 223 | 723 | |||
| backgroundConnect | 10 | 6 | 28 | 5 | 11 | 19 | |||
| firstReactRender | 27 | 20 | 104 | 10 | 30 | 36 | |||
| getState | 25 | 13 | 74 | 11 | 32 | 49 | |||
| initialActions | 1 | 0 | 3 | 1 | 1 | 2 | |||
| loadScripts | 633 | 559 | 795 | 69 | 676 | 792 | |||
| setupStore | 10 | 6 | 25 | 3 | 12 | 16 | |||
| numNetworkReqs | 12 | 5 | 78 | 20 | 5 | 73 | |||
| Webpack | Power User Home | uiStartup | 1727 | 1264 | 2412 | 210 | 1853 | 2075 | |
| load | 679 | 601 | 1006 | 99 | 679 | 989 | |||
| domContentLoaded | 669 | 594 | 1001 | 99 | 666 | 982 | |||
| domInteractive | 37 | 18 | 161 | 32 | 34 | 134 | |||
| firstPaint | 287 | 87 | 989 | 201 | 313 | 676 | |||
| backgroundConnect | 16 | 6 | 42 | 7 | 17 | 34 | |||
| firstReactRender | 87 | 46 | 171 | 17 | 96 | 108 | |||
| getState | 151 | 127 | 212 | 17 | 161 | 184 | |||
| initialActions | 1 | 0 | 3 | 1 | 1 | 2 | |||
| loadScripts | 666 | 592 | 992 | 97 | 663 | 971 | |||
| setupStore | 20 | 8 | 62 | 13 | 23 | 52 | |||
| numNetworkReqs | 153 | 71 | 400 | 77 | 196 | 377 | |||
| Firefox | Browserify | Standard Home | uiStartup | 1230 | 1064 | 1791 | 140 | 1276 | 1548 |
| load | 1021 | 913 | 1263 | 78 | 1075 | 1170 | |||
| domContentLoaded | 1020 | 913 | 1262 | 79 | 1072 | 1169 | |||
| domInteractive | 58 | 30 | 238 | 39 | 82 | 146 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 37 | 21 | 225 | 32 | 36 | 106 | |||
| firstReactRender | 22 | 18 | 48 | 5 | 21 | 35 | |||
| getState | 11 | 6 | 75 | 11 | 9 | 43 | |||
| initialActions | 1 | 0 | 2 | 0 | 1 | 2 | |||
| loadScripts | 1000 | 899 | 1172 | 72 | 1049 | 1131 | |||
| setupStore | 11 | 6 | 75 | 10 | 9 | 31 | |||
| numNetworkReqs | 11 | 5 | 65 | 16 | 6 | 61 | |||
| Browserify | Power User Home | uiStartup | 2643 | 2090 | 3220 | 279 | 2830 | 3134 | |
| load | 1182 | 1022 | 1844 | 149 | 1179 | 1560 | |||
| domContentLoaded | 1181 | 1021 | 1844 | 149 | 1179 | 1560 | |||
| domInteractive | 130 | 36 | 515 | 102 | 125 | 428 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 111 | 32 | 363 | 56 | 134 | 225 | |||
| firstReactRender | 93 | 45 | 182 | 25 | 102 | 137 | |||
| getState | 265 | 39 | 883 | 223 | 304 | 778 | |||
| initialActions | 3 | 1 | 8 | 2 | 3 | 7 | |||
| loadScripts | 1149 | 974 | 1736 | 145 | 1150 | 1525 | |||
| setupStore | 171 | 13 | 847 | 204 | 177 | 669 | |||
| numNetworkReqs | 101 | 61 | 324 | 64 | 78 | 242 | |||
| Webpack | Standard Home | uiStartup | 1421 | 1264 | 1883 | 114 | 1452 | 1692 | |
| load | 1207 | 1063 | 1433 | 84 | 1259 | 1386 | |||
| domContentLoaded | 1206 | 1063 | 1432 | 84 | 1259 | 1386 | |||
| domInteractive | 58 | 27 | 204 | 39 | 82 | 135 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 41 | 22 | 135 | 21 | 42 | 94 | |||
| firstReactRender | 26 | 19 | 40 | 5 | 27 | 37 | |||
| getState | 11 | 6 | 132 | 16 | 10 | 19 | |||
| initialActions | 1 | 0 | 3 | 1 | 1 | 2 | |||
| loadScripts | 1182 | 1050 | 1406 | 82 | 1227 | 1366 | |||
| setupStore | 12 | 6 | 136 | 14 | 10 | 28 | |||
| numNetworkReqs | 11 | 5 | 66 | 15 | 6 | 56 | |||
| Webpack | Power User Home | uiStartup | 2690 | 2078 | 3281 | 277 | 2861 | 3255 | |
| load | 1350 | 1135 | 1913 | 168 | 1364 | 1771 | |||
| domContentLoaded | 1349 | 1134 | 1913 | 168 | 1364 | 1771 | |||
| domInteractive | 105 | 28 | 484 | 91 | 101 | 355 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 95 | 31 | 222 | 44 | 127 | 178 | |||
| firstReactRender | 85 | 40 | 200 | 21 | 95 | 114 | |||
| getState | 295 | 68 | 841 | 231 | 491 | 804 | |||
| initialActions | 3 | 0 | 35 | 5 | 3 | 7 | |||
| loadScripts | 1319 | 1118 | 1860 | 167 | 1339 | 1747 | |||
| setupStore | 94 | 6 | 801 | 130 | 87 | 342 | |||
| numNetworkReqs | 99 | 57 | 300 | 57 | 78 | 234 |
📊 Page Load Benchmark Results
Current Commit: a5ac316 | Date: 11/25/2025
📄 Localhost MetaMask Test Dapp
Samples: 100
Summary
- pageLoadTime-> current mean value: 1.03s (±37ms) 🟡 | historical mean value: 1.04s ⬇️ (historical data)
- domContentLoaded-> current mean value: 716ms (±36ms) 🟢 | historical mean value: 726ms ⬇️ (historical data)
- firstContentfulPaint-> current mean value: 75ms (±10ms) 🟢 | historical mean value: 81ms ⬇️ (historical data)
📈 Detailed Results
| Metric | Mean | Std Dev | Min | Max | P95 | P99 |
|---|---|---|---|---|---|---|
| pageLoadTime | 1.03s | 37ms | 1.00s | 1.31s | 1.04s | 1.31s |
| domContentLoaded | 716ms | 36ms | 698ms | 994ms | 726ms | 994ms |
| firstPaint | 75ms | 10ms | 60ms | 164ms | 80ms | 164ms |
| firstContentfulPaint | 75ms | 10ms | 60ms | 164ms | 80ms | 164ms |
| largestContentfulPaint | 0ms | 0ms | 0ms | 0ms | 0ms | 0ms |
Bundle size diffs [🚨 Warning! Bundle size has increased!]
- background: 4.71 KiB (0.1%)
- ui: 67.14 KiB (0.96%)
- common: 3.9 KiB (0.04%)