feat: add sign permission confirmation for erc20 revocation permission
Description
Adds confirmation content for the erc20-token-revocation permission type.
Because this is the first permission type that is not a "token spend" type permission, it requires a different title, so this PR also adds this differentiation. Presently this is a simple switch statement. If the collection of titles grows to an unwieldy number, we can decompose it into a helper function, but I've left in place for simplicity.
This PR does not introduce the new permission type. That will be done in a future change that introduces updated permission snaps.
Also updates controllers released in https://github.com/MetaMask/core/pull/7330
Changelog
CHANGELOG entry: null
Manual testing steps
Test in conjunction with https://github.com/MetaMask/snap-7715-permissions/pull/234
Screenshots/Recordings
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 confirmation UI and title descriptions for
erc20-token-revocation, with i18n, tests, and controller dependency updates.
- Confirmations UI:
- Add
Erc20TokenRevocationDetailscomponent and render path intyped-sign-permission.tsxforerc20-token-revocation.- Use helper
getPermissionDescriptionto select description per permission type intitle.tsx.- i18n:
- Add
confirmTitleDescERC20Revocationstring toapp/_locales/en*/messages.json.- Tests:
- New tests for revocation details component.
- Update gator permissions hook/selectors tests to include
erc20-token-revocationin maps.- Dependencies:
- Bump
@metamask/gator-permissions-controllerto^0.8.0,@metamask/signature-controllerto^38.0.0,@metamask/shield-controllerto^4.0.0, and related lockfile updates (e.g.,@metamask/7715-permission-types@^0.4.0,@metamask/transaction-controller@^62.5.0,@metamask/logging-controller@^7.0.1).Written by Cursor Bugbot for commit d3c03e7c53f08b5c910994ddc1e4f036701049b7. This will update automatically on new commits. Configure here.
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/confirmations (5 files, +105 -2)
- 📁 ui/
- 📁 pages/
- 📁 confirmations/
- 📁 components/
- 📁 confirm/
- 📁 info/
- 📁 typed-sign/
- 📁 typed-sign-permission/
- 📄
erc20-token-revocation-details.test.tsx+43 -0 - 📄
erc20-token-revocation-details.tsx+29 -0 - 📄
typed-sign-permission-util.ts+19 -0 - 📄
typed-sign-permission.tsx+6 -1
- 📄
- 📁 typed-sign-permission/
- 📁 typed-sign/
- 📁 title/
- 📄
title.tsx+8 -1
- 📄
- 📁 info/
- 📁 confirm/
- 📁 components/
- 📁 confirmations/
- 📁 pages/
📜 @MetaMask/policy-reviewers (5 files, +5 -77)
- 📁 lavamoat/
- 📁 browserify/
- 📁 beta/
- 📄
policy.json+1 -19
- 📄
- 📁 experimental/
- 📄
policy.json+1 -19
- 📄
- 📁 flask/
- 📄
policy.json+1 -19
- 📄
- 📁 main/
- 📄
policy.json+1 -19
- 📄
- 📁 beta/
- 📁 webpack/
- 📁 mv2/
- 📄
policy.json+1 -1
- 📄
- 📁 mv2/
- 📁 browserify/
[!TIP]
Follow the policy review process outlined in the LavaMoat Policy Review Process doc before expecting an approval from Policy Reviewers.
Builds ready [43a6935]
- 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 (1250 ± 121 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 | 1250 | 1010 | 1610 | 121 | 1331 | 1480 |
| load | 1049 | 865 | 1414 | 110 | 1137 | 1261 | |||
| domContentLoaded | 1043 | 856 | 1408 | 109 | 1128 | 1237 | |||
| domInteractive | 26 | 15 | 107 | 19 | 22 | 81 | |||
| firstPaint | 506 | 82 | 1318 | 407 | 977 | 1211 | |||
| backgroundConnect | 216 | 196 | 260 | 13 | 221 | 243 | |||
| firstReactRender | 30 | 20 | 58 | 9 | 32 | 51 | |||
| getState | 35 | 14 | 110 | 17 | 41 | 69 | |||
| initialActions | 1 | 0 | 4 | 1 | 1 | 2 | |||
| loadScripts | 833 | 649 | 1189 | 105 | 904 | 1001 | |||
| setupStore | 11 | 7 | 38 | 4 | 12 | 16 | |||
| numNetworkReqs | 12 | 5 | 73 | 20 | 5 | 71 | |||
| Browserify | Power User Home | uiStartup | 2037 | 1675 | 2597 | 188 | 2089 | 2449 | |
| load | 1030 | 914 | 1568 | 117 | 1031 | 1310 | |||
| domContentLoaded | 1015 | 909 | 1552 | 117 | 1013 | 1295 | |||
| domInteractive | 34 | 17 | 130 | 22 | 35 | 101 | |||
| firstPaint | 554 | 130 | 1556 | 403 | 987 | 1298 | |||
| backgroundConnect | 247 | 205 | 668 | 80 | 231 | 503 | |||
| firstReactRender | 56 | 39 | 106 | 12 | 62 | 83 | |||
| getState | 204 | 130 | 732 | 107 | 204 | 258 | |||
| initialActions | 1 | 0 | 3 | 1 | 1 | 2 | |||
| loadScripts | 804 | 699 | 1338 | 116 | 804 | 1082 | |||
| setupStore | 21 | 10 | 68 | 10 | 23 | 47 | |||
| numNetworkReqs | 140 | 67 | 321 | 59 | 203 | 245 | |||
| Webpack | Standard Home | uiStartup | 829 | 699 | 1108 | 94 | 865 | 1041 | |
| load | 646 | 566 | 967 | 89 | 671 | 874 | |||
| domContentLoaded | 641 | 560 | 958 | 89 | 664 | 869 | |||
| domInteractive | 27 | 15 | 120 | 24 | 22 | 96 | |||
| firstPaint | 261 | 74 | 888 | 200 | 264 | 715 | |||
| backgroundConnect | 11 | 6 | 89 | 9 | 11 | 18 | |||
| firstReactRender | 28 | 20 | 112 | 10 | 33 | 39 | |||
| getState | 25 | 13 | 51 | 10 | 33 | 45 | |||
| initialActions | 1 | 0 | 4 | 1 | 1 | 2 | |||
| loadScripts | 638 | 558 | 955 | 87 | 661 | 861 | |||
| setupStore | 10 | 6 | 23 | 3 | 12 | 17 | |||
| numNetworkReqs | 12 | 5 | 75 | 20 | 5 | 72 | |||
| Webpack | Power User Home | uiStartup | 1537 | 1232 | 2247 | 204 | 1574 | 1984 | |
| load | 675 | 575 | 1217 | 102 | 676 | 930 | |||
| domContentLoaded | 665 | 569 | 1213 | 103 | 662 | 925 | |||
| domInteractive | 35 | 18 | 175 | 27 | 35 | 100 | |||
| firstPaint | 280 | 82 | 819 | 175 | 288 | 652 | |||
| backgroundConnect | 46 | 8 | 635 | 124 | 19 | 518 | |||
| firstReactRender | 57 | 44 | 82 | 8 | 62 | 72 | |||
| getState | 172 | 132 | 231 | 18 | 179 | 212 | |||
| initialActions | 1 | 0 | 4 | 1 | 1 | 2 | |||
| loadScripts | 662 | 568 | 1203 | 101 | 660 | 916 | |||
| setupStore | 20 | 9 | 58 | 10 | 23 | 43 | |||
| numNetworkReqs | 163 | 68 | 309 | 63 | 221 | 275 | |||
| Firefox | Browserify | Standard Home | uiStartup | 1343 | 1083 | 1757 | 155 | 1486 | 1654 |
| load | 1110 | 937 | 1414 | 109 | 1172 | 1320 | |||
| domContentLoaded | 1109 | 937 | 1414 | 109 | 1172 | 1319 | |||
| domInteractive | 65 | 30 | 214 | 38 | 86 | 157 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 45 | 22 | 183 | 29 | 49 | 99 | |||
| firstReactRender | 24 | 18 | 51 | 6 | 23 | 36 | |||
| getState | 12 | 6 | 100 | 10 | 12 | 24 | |||
| initialActions | 1 | 0 | 3 | 0 | 2 | 2 | |||
| loadScripts | 1080 | 920 | 1381 | 97 | 1141 | 1257 | |||
| setupStore | 11 | 5 | 62 | 8 | 10 | 22 | |||
| numNetworkReqs | 12 | 5 | 71 | 17 | 6 | 62 | |||
| Browserify | Power User Home | uiStartup | 2687 | 1905 | 5451 | 599 | 2775 | 4287 | |
| load | 1247 | 991 | 2657 | 297 | 1286 | 1878 | |||
| domContentLoaded | 1247 | 991 | 2657 | 297 | 1286 | 1877 | |||
| domInteractive | 127 | 33 | 521 | 110 | 120 | 419 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 124 | 25 | 1044 | 129 | 126 | 352 | |||
| firstReactRender | 56 | 35 | 106 | 13 | 59 | 82 | |||
| getState | 295 | 62 | 937 | 223 | 402 | 756 | |||
| initialActions | 2 | 0 | 7 | 1 | 2 | 3 | |||
| loadScripts | 1207 | 977 | 2534 | 271 | 1248 | 1748 | |||
| setupStore | 158 | 10 | 828 | 189 | 189 | 660 | |||
| numNetworkReqs | 91 | 57 | 220 | 36 | 104 | 166 | |||
| Webpack | Standard Home | uiStartup | 1510 | 1290 | 1999 | 143 | 1603 | 1765 | |
| load | 1242 | 1065 | 1548 | 105 | 1301 | 1433 | |||
| domContentLoaded | 1241 | 1065 | 1547 | 105 | 1301 | 1432 | |||
| domInteractive | 55 | 28 | 141 | 28 | 78 | 114 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 47 | 21 | 124 | 25 | 46 | 109 | |||
| firstReactRender | 26 | 18 | 80 | 8 | 26 | 36 | |||
| getState | 13 | 7 | 166 | 17 | 13 | 29 | |||
| initialActions | 2 | 0 | 4 | 1 | 3 | 4 | |||
| loadScripts | 1216 | 1052 | 1513 | 97 | 1277 | 1406 | |||
| setupStore | 14 | 5 | 111 | 13 | 14 | 36 | |||
| numNetworkReqs | 11 | 5 | 67 | 15 | 7 | 57 | |||
| Webpack | Power User Home | uiStartup | 2973 | 2079 | 9470 | 948 | 2909 | 4861 | |
| load | 1544 | 1189 | 6569 | 666 | 1535 | 2868 | |||
| domContentLoaded | 1543 | 1189 | 6569 | 666 | 1534 | 2868 | |||
| domInteractive | 125 | 31 | 1055 | 136 | 118 | 400 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 185 | 26 | 1707 | 271 | 173 | 1056 | |||
| firstReactRender | 66 | 38 | 237 | 34 | 63 | 148 | |||
| getState | 247 | 66 | 1071 | 207 | 256 | 786 | |||
| initialActions | 2 | 0 | 7 | 1 | 2 | 3 | |||
| loadScripts | 1467 | 1170 | 6386 | 606 | 1449 | 2615 | |||
| setupStore | 155 | 6 | 708 | 198 | 187 | 630 | |||
| numNetworkReqs | 93 | 61 | 317 | 44 | 102 | 196 |
📊 Page Load Benchmark Results
Current Commit: 43a6935 | Date: 12/3/2025
📄 Localhost MetaMask Test Dapp
Samples: 100
Summary
- pageLoadTime-> current mean value: 1.04s (±42ms) 🟡 | historical mean value: 1.04s ⬆️ (historical data)
- domContentLoaded-> current mean value: 724ms (±37ms) 🟢 | historical mean value: 722ms ⬆️ (historical data)
- firstContentfulPaint-> current mean value: 77ms (±12ms) 🟢 | historical mean value: 78ms ⬇️ (historical data)
📈 Detailed Results
| Metric | Mean | Std Dev | Min | Max | P95 | P99 |
|---|---|---|---|---|---|---|
| pageLoadTime | 1.04s | 42ms | 1.01s | 1.35s | 1.09s | 1.35s |
| domContentLoaded | 724ms | 37ms | 702ms | 1.01s | 746ms | 1.01s |
| firstPaint | 77ms | 12ms | 64ms | 180ms | 88ms | 180ms |
| firstContentfulPaint | 77ms | 12ms | 64ms | 180ms | 88ms | 180ms |
| largestContentfulPaint | 0ms | 0ms | 0ms | 0ms | 0ms | 0ms |
Bundle size diffs [🚨 Warning! Bundle size has increased!]
- background: 502.34 KiB (10.74%)
- ui: -80 Bytes (0%)
- common: 188.31 KiB (2.13%)
Builds ready [3a31aaf]
- 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 (1237 ± 105 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 | 1237 | 1026 | 1680 | 105 | 1299 | 1367 |
| load | 1034 | 859 | 1422 | 88 | 1082 | 1164 | |||
| domContentLoaded | 1027 | 857 | 1415 | 87 | 1076 | 1158 | |||
| domInteractive | 26 | 15 | 162 | 24 | 21 | 85 | |||
| firstPaint | 467 | 82 | 1433 | 378 | 973 | 1098 | |||
| backgroundConnect | 218 | 198 | 276 | 14 | 222 | 245 | |||
| firstReactRender | 31 | 18 | 66 | 10 | 37 | 57 | |||
| getState | 38 | 16 | 151 | 22 | 43 | 77 | |||
| initialActions | 1 | 0 | 4 | 1 | 1 | 2 | |||
| loadScripts | 815 | 646 | 1202 | 86 | 853 | 953 | |||
| setupStore | 12 | 7 | 33 | 5 | 14 | 21 | |||
| numNetworkReqs | 11 | 5 | 70 | 17 | 5 | 62 | |||
| Browserify | Power User Home | uiStartup | 2125 | 1516 | 3131 | 302 | 2354 | 2641 | |
| load | 1070 | 855 | 1871 | 177 | 1126 | 1448 | |||
| domContentLoaded | 1057 | 847 | 1856 | 176 | 1117 | 1437 | |||
| domInteractive | 35 | 16 | 237 | 33 | 30 | 114 | |||
| firstPaint | 808 | 109 | 1864 | 402 | 1040 | 1370 | |||
| backgroundConnect | 300 | 186 | 863 | 163 | 266 | 725 | |||
| firstReactRender | 56 | 41 | 106 | 10 | 60 | 71 | |||
| getState | 208 | 144 | 677 | 59 | 227 | 285 | |||
| initialActions | 1 | 0 | 4 | 1 | 1 | 2 | |||
| loadScripts | 834 | 650 | 1460 | 161 | 877 | 1207 | |||
| setupStore | 16 | 9 | 50 | 9 | 15 | 41 | |||
| numNetworkReqs | 80 | 65 | 258 | 30 | 75 | 154 | |||
| Webpack | Standard Home | uiStartup | 838 | 703 | 1211 | 82 | 870 | 1003 | |
| load | 649 | 562 | 991 | 79 | 687 | 803 | |||
| domContentLoaded | 644 | 559 | 973 | 78 | 684 | 799 | |||
| domInteractive | 28 | 16 | 153 | 24 | 24 | 95 | |||
| firstPaint | 215 | 86 | 799 | 137 | 204 | 599 | |||
| backgroundConnect | 11 | 6 | 70 | 8 | 12 | 25 | |||
| firstReactRender | 28 | 20 | 47 | 6 | 33 | 40 | |||
| getState | 27 | 14 | 95 | 12 | 36 | 45 | |||
| initialActions | 1 | 0 | 3 | 1 | 1 | 2 | |||
| loadScripts | 641 | 556 | 965 | 76 | 682 | 797 | |||
| setupStore | 11 | 6 | 38 | 5 | 13 | 21 | |||
| numNetworkReqs | 10 | 5 | 67 | 16 | 5 | 60 | |||
| Webpack | Power User Home | uiStartup | 1643 | 1249 | 2261 | 269 | 1905 | 2145 | |
| load | 660 | 577 | 958 | 89 | 690 | 869 | |||
| domContentLoaded | 651 | 572 | 950 | 88 | 682 | 860 | |||
| domInteractive | 32 | 17 | 155 | 25 | 28 | 101 | |||
| firstPaint | 310 | 116 | 854 | 205 | 371 | 723 | |||
| backgroundConnect | 134 | 7 | 644 | 217 | 102 | 564 | |||
| firstReactRender | 60 | 45 | 95 | 10 | 67 | 81 | |||
| getState | 197 | 147 | 869 | 88 | 195 | 245 | |||
| initialActions | 1 | 0 | 3 | 1 | 1 | 2 | |||
| loadScripts | 648 | 570 | 938 | 86 | 680 | 851 | |||
| setupStore | 18 | 9 | 50 | 12 | 14 | 46 | |||
| numNetworkReqs | 80 | 63 | 225 | 30 | 73 | 155 | |||
| Firefox | Browserify | Standard Home | uiStartup | 1328 | 1091 | 1791 | 157 | 1449 | 1667 |
| load | 1098 | 946 | 1544 | 109 | 1174 | 1299 | |||
| domContentLoaded | 1098 | 946 | 1544 | 109 | 1174 | 1299 | |||
| domInteractive | 61 | 31 | 199 | 34 | 84 | 133 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 47 | 23 | 184 | 31 | 50 | 115 | |||
| firstReactRender | 22 | 18 | 37 | 5 | 23 | 35 | |||
| getState | 11 | 6 | 74 | 11 | 10 | 27 | |||
| initialActions | 1 | 0 | 3 | 1 | 2 | 2 | |||
| loadScripts | 1069 | 930 | 1483 | 100 | 1133 | 1250 | |||
| setupStore | 14 | 5 | 195 | 26 | 9 | 37 | |||
| numNetworkReqs | 12 | 5 | 64 | 17 | 7 | 63 | |||
| Browserify | Power User Home | uiStartup | 3123 | 1956 | 5767 | 936 | 4044 | 4774 | |
| load | 1449 | 951 | 4078 | 574 | 1480 | 2534 | |||
| domContentLoaded | 1448 | 950 | 4078 | 574 | 1480 | 2534 | |||
| domInteractive | 127 | 31 | 2765 | 275 | 110 | 313 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 325 | 24 | 1494 | 408 | 419 | 1165 | |||
| firstReactRender | 67 | 37 | 317 | 41 | 67 | 131 | |||
| getState | 330 | 87 | 1161 | 272 | 455 | 1025 | |||
| initialActions | 2 | 0 | 4 | 1 | 2 | 3 | |||
| loadScripts | 1270 | 937 | 4060 | 434 | 1357 | 2241 | |||
| setupStore | 135 | 5 | 912 | 211 | 119 | 747 | |||
| numNetworkReqs | 75 | 54 | 138 | 22 | 75 | 130 | |||
| Webpack | Standard Home | uiStartup | 1522 | 1287 | 2064 | 166 | 1612 | 1866 | |
| load | 1246 | 1073 | 1644 | 116 | 1308 | 1479 | |||
| domContentLoaded | 1246 | 1073 | 1644 | 116 | 1308 | 1479 | |||
| domInteractive | 58 | 27 | 190 | 35 | 81 | 130 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 50 | 20 | 187 | 30 | 55 | 128 | |||
| firstReactRender | 28 | 20 | 77 | 7 | 30 | 35 | |||
| getState | 18 | 7 | 216 | 33 | 13 | 58 | |||
| initialActions | 1 | 0 | 3 | 1 | 2 | 2 | |||
| loadScripts | 1218 | 1060 | 1584 | 109 | 1286 | 1454 | |||
| setupStore | 15 | 6 | 137 | 21 | 10 | 77 | |||
| numNetworkReqs | 12 | 5 | 66 | 17 | 7 | 64 | |||
| Webpack | Power User Home | uiStartup | 3248 | 2041 | 6327 | 975 | 4105 | 5150 | |
| load | 1649 | 1127 | 3587 | 573 | 2131 | 2744 | |||
| domContentLoaded | 1649 | 1126 | 3587 | 573 | 2131 | 2743 | |||
| domInteractive | 145 | 30 | 1248 | 216 | 121 | 608 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 228 | 29 | 1271 | 312 | 211 | 1134 | |||
| firstReactRender | 64 | 37 | 240 | 31 | 67 | 118 | |||
| getState | 318 | 63 | 1293 | 294 | 434 | 956 | |||
| initialActions | 2 | 1 | 6 | 1 | 2 | 2 | |||
| loadScripts | 1520 | 1098 | 3565 | 495 | 1524 | 2549 | |||
| setupStore | 110 | 6 | 1148 | 183 | 112 | 425 | |||
| numNetworkReqs | 77 | 60 | 136 | 21 | 75 | 127 |
📊 Page Load Benchmark Results
Current Commit: 3a31aaf | Date: 12/4/2025
📄 Localhost MetaMask Test Dapp
Samples: 100
Summary
- pageLoadTime-> current mean value: 1.03s (±36ms) 🟡 | historical mean value: 1.04s ⬇️ (historical data)
- domContentLoaded-> current mean value: 714ms (±34ms) 🟢 | historical mean value: 723ms ⬇️ (historical data)
- firstContentfulPaint-> current mean value: 74ms (±11ms) 🟢 | historical mean value: 78ms ⬇️ (historical data)
📈 Detailed Results
| Metric | Mean | Std Dev | Min | Max | P95 | P99 |
|---|---|---|---|---|---|---|
| pageLoadTime | 1.03s | 36ms | 999ms | 1.29s | 1.05s | 1.29s |
| domContentLoaded | 714ms | 34ms | 690ms | 970ms | 738ms | 970ms |
| firstPaint | 74ms | 11ms | 60ms | 168ms | 88ms | 168ms |
| firstContentfulPaint | 74ms | 11ms | 60ms | 168ms | 88ms | 168ms |
| largestContentfulPaint | 0ms | 0ms | 0ms | 0ms | 0ms | 0ms |
Bundle size diffs [🚨 Warning! Bundle size has increased!]
- background: 528.28 KiB (11.3%)
- ui: 5.11 KiB (0.07%)
- common: 155.08 KiB (1.76%)
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
| Diff | Package | Supply Chain Security |
Vulnerability | Quality | Maintenance | License |
|---|---|---|---|---|---|---|
| @metamask/logging-controller@7.0.0 ⏵ 7.0.1 | ||||||
| @metamask/shield-controller@3.1.0 ⏵ 4.0.0 | ||||||
| @metamask/signature-controller@35.0.0 ⏵ 38.0.0 | ||||||
| @metamask/transaction-controller@62.4.0 ⏵ 62.5.0 | ||||||
| @metamask/gator-permissions-controller@0.7.0 ⏵ 0.8.0 |
Builds ready [d8071e3]
- 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
📊 Page Load Benchmark Results
Current Commit: d8071e3 | Date: 12/10/2025
📄 Localhost MetaMask Test Dapp
Samples: 100
Summary
- pageLoadTime-> current mean value: 1.04s (±68ms) 🟡 | historical mean value: 1.04s ⬇️ (historical data)
- domContentLoaded-> current mean value: 727ms (±65ms) 🟢 | historical mean value: 727ms ⬆️ (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.04s | 68ms | 1.00s | 1.31s | 1.26s | 1.31s |
| domContentLoaded | 727ms | 65ms | 695ms | 994ms | 931ms | 994ms |
| firstPaint | 77ms | 13ms | 60ms | 192ms | 84ms | 192ms |
| firstContentfulPaint | 77ms | 13ms | 60ms | 192ms | 84ms | 192ms |
| largestContentfulPaint | 0ms | 0ms | 0ms | 0ms | 0ms | 0ms |
Bundle size diffs [🚨 Warning! Bundle size has increased!]
- background: 232.43 KiB (4.4%)
- ui: 1.84 KiB (0.02%)
- common: 1.43 KiB (0.02%)
Builds ready [756704a]
- 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
📊 Page Load Benchmark Results
Current Commit: 756704a | 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: 714ms (±35ms) 🟢 | historical mean value: 727ms ⬇️ (historical data)
- firstContentfulPaint-> current mean value: 76ms (±12ms) 🟢 | historical mean value: 83ms ⬇️ (historical data)
📈 Detailed Results
| Metric | Mean | Std Dev | Min | Max | P95 | P99 |
|---|---|---|---|---|---|---|
| pageLoadTime | 1.03s | 42ms | 1.00s | 1.30s | 1.06s | 1.30s |
| domContentLoaded | 714ms | 35ms | 694ms | 968ms | 734ms | 968ms |
| firstPaint | 76ms | 12ms | 56ms | 176ms | 88ms | 176ms |
| firstContentfulPaint | 76ms | 12ms | 56ms | 176ms | 88ms | 176ms |
| largestContentfulPaint | 0ms | 0ms | 0ms | 0ms | 0ms | 0ms |
Bundle size diffs [🚨 Warning! Bundle size has increased!]
- background: 232.43 KiB (4.4%)
- ui: 1.82 KiB (0.02%)
- common: 1.43 KiB (0.02%)
Builds ready [d3c03e7]
- 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
📊 Page Load Benchmark Results
Current Commit: d3c03e7 | Date: 12/10/2025
📄 Localhost MetaMask Test Dapp
Samples: 100
Summary
- pageLoadTime-> current mean value: 1.05s (±40ms) 🟡 | historical mean value: 1.04s ⬆️ (historical data)
- domContentLoaded-> current mean value: 734ms (±37ms) 🟢 | historical mean value: 727ms ⬆️ (historical data)
- firstContentfulPaint-> current mean value: 79ms (±14ms) 🟢 | historical mean value: 82ms ⬇️ (historical data)
📈 Detailed Results
| Metric | Mean | Std Dev | Min | Max | P95 | P99 |
|---|---|---|---|---|---|---|
| pageLoadTime | 1.05s | 40ms | 1.01s | 1.32s | 1.10s | 1.32s |
| domContentLoaded | 734ms | 37ms | 701ms | 988ms | 770ms | 988ms |
| firstPaint | 79ms | 14ms | 60ms | 208ms | 88ms | 208ms |
| firstContentfulPaint | 79ms | 14ms | 60ms | 208ms | 88ms | 208ms |
| largestContentfulPaint | 0ms | 0ms | 0ms | 0ms | 0ms | 0ms |
Bundle size diffs [🚨 Warning! Bundle size has increased!]
- background: 232.43 KiB (4.4%)
- ui: 1.82 KiB (0.02%)
- common: 1.43 KiB (0.02%)
Builds ready [f50f51b]
- 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
📊 Page Load Benchmark Results
Current Commit: f50f51b | Date: 12/10/2025
📄 Localhost MetaMask Test Dapp
Samples: 100
Summary
- pageLoadTime-> current mean value: 1.04s (±62ms) 🟡 | historical mean value: 1.03s ⬆️ (historical data)
- domContentLoaded-> current mean value: 727ms (±60ms) 🟢 | historical mean value: 719ms ⬆️ (historical data)
- firstContentfulPaint-> current mean value: 76ms (±12ms) 🟢 | historical mean value: 77ms ⬇️ (historical data)
📈 Detailed Results
| Metric | Mean | Std Dev | Min | Max | P95 | P99 |
|---|---|---|---|---|---|---|
| pageLoadTime | 1.04s | 62ms | 1.01s | 1.31s | 1.24s | 1.31s |
| domContentLoaded | 727ms | 60ms | 696ms | 1000ms | 925ms | 1000ms |
| firstPaint | 76ms | 12ms | 60ms | 176ms | 84ms | 176ms |
| firstContentfulPaint | 76ms | 12ms | 60ms | 176ms | 84ms | 176ms |
| largestContentfulPaint | 0ms | 0ms | 0ms | 0ms | 0ms | 0ms |
Bundle size diffs [🚨 Warning! Bundle size has increased!]
- background: 81.48 KiB (1.54%)
- ui: 8.23 KiB (0.11%)
- common: 1.25 KiB (0.01%)
Builds ready [f50f51b]
- 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
📊 Page Load Benchmark Results
Current Commit: f50f51b | Date: 12/10/2025
📄 Localhost MetaMask Test Dapp
Samples: 100
Summary
- pageLoadTime-> current mean value: 1.04s (±62ms) 🟡 | historical mean value: 1.03s ⬆️ (historical data)
- domContentLoaded-> current mean value: 727ms (±60ms) 🟢 | historical mean value: 718ms ⬆️ (historical data)
- firstContentfulPaint-> current mean value: 76ms (±12ms) 🟢 | historical mean value: 76ms ⬇️ (historical data)
📈 Detailed Results
| Metric | Mean | Std Dev | Min | Max | P95 | P99 |
|---|---|---|---|---|---|---|
| pageLoadTime | 1.04s | 62ms | 1.01s | 1.31s | 1.24s | 1.31s |
| domContentLoaded | 727ms | 60ms | 696ms | 1000ms | 925ms | 1000ms |
| firstPaint | 76ms | 12ms | 60ms | 176ms | 84ms | 176ms |
| firstContentfulPaint | 76ms | 12ms | 60ms | 176ms | 84ms | 176ms |
| largestContentfulPaint | 0ms | 0ms | 0ms | 0ms | 0ms | 0ms |
Bundle size diffs [🚨 Warning! Bundle size has increased!]
- background: 81.48 KiB (1.54%)
- ui: 8.23 KiB (0.11%)
- common: 1.25 KiB (0.01%)
Builds ready [acabce9]
- builds: chrome, firefox
- builds (beta): chrome, firefox
- builds (flask): chrome, firefox
- builds (test): chrome, firefox
- builds (test-flask): chrome, firefox
- lavamoat build viz: Build System
- bundle size: Bundle Size Stats
- user-actions-benchmark: User Actions Stats
- storybook: Storybook
- typescript migration: Dashboard
- all artifacts
📊 Page Load Benchmark Results
Current Commit: acabce9 | Date: 12/11/2025
📄 Localhost MetaMask Test Dapp
Samples: 100
Summary
- pageLoadTime-> current mean value: 1.04s (±51ms) 🟡 | historical mean value: 1.03s ⬆️ (historical data)
- domContentLoaded-> current mean value: 725ms (±49ms) 🟢 | historical mean value: 719ms ⬆️ (historical data)
- firstContentfulPaint-> current mean value: 76ms (±13ms) 🟢 | historical mean value: 76ms ⬇️ (historical data)
📈 Detailed Results
| Metric | Mean | Std Dev | Min | Max | P95 | P99 |
|---|---|---|---|---|---|---|
| pageLoadTime | 1.04s | 51ms | 1.01s | 1.31s | 1.10s | 1.31s |
| domContentLoaded | 725ms | 49ms | 698ms | 998ms | 774ms | 998ms |
| firstPaint | 76ms | 13ms | 56ms | 196ms | 84ms | 196ms |
| firstContentfulPaint | 76ms | 13ms | 56ms | 196ms | 84ms | 196ms |
| largestContentfulPaint | 0ms | 0ms | 0ms | 0ms | 0ms | 0ms |
Bundle size diffs [🚨 Warning! Bundle size has increased!]
- background: 232.41 KiB (4.53%)
- ui: 1.84 KiB (0.02%)
- common: 1.44 KiB (0.02%)
Builds ready [40bd711]
- builds: chrome, firefox
- builds (beta): chrome, firefox
- builds (flask): chrome, firefox
- builds (test): chrome, firefox
- builds (test-flask): chrome, firefox
- lavamoat 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 (1268 ± 109 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 | 1268 | 1041 | 1476 | 109 | 1344 | 1446 |
| load | 1043 | 858 | 1256 | 92 | 1103 | 1193 | |||
| domContentLoaded | 1036 | 855 | 1251 | 91 | 1097 | 1187 | |||
| domInteractive | 27 | 15 | 114 | 22 | 21 | 89 | |||
| firstPaint | 522 | 77 | 1241 | 403 | 993 | 1147 | |||
| backgroundConnect | 216 | 196 | 272 | 13 | 223 | 241 | |||
| firstReactRender | 44 | 31 | 96 | 12 | 52 | 68 | |||
| getState | 39 | 16 | 123 | 21 | 47 | 92 | |||
| initialActions | 1 | 0 | 5 | 1 | 1 | 2 | |||
| loadScripts | 828 | 653 | 1048 | 88 | 881 | 986 | |||
| setupStore | 12 | 7 | 25 | 5 | 15 | 22 | |||
| numNetworkReqs | 13 | 6 | 84 | 20 | 6 | 72 | |||
| Browserify | Power User Home | uiStartup | 1926 | 1552 | 2531 | 157 | 1995 | 2220 | |
| load | 1082 | 885 | 1581 | 133 | 1190 | 1289 | |||
| domContentLoaded | 1071 | 877 | 1576 | 133 | 1176 | 1280 | |||
| domInteractive | 32 | 17 | 150 | 26 | 27 | 109 | |||
| firstPaint | 577 | 91 | 1294 | 403 | 1009 | 1233 | |||
| backgroundConnect | 250 | 197 | 639 | 93 | 232 | 560 | |||
| firstReactRender | 48 | 38 | 85 | 7 | 49 | 62 | |||
| getState | 206 | 150 | 752 | 97 | 209 | 284 | |||
| initialActions | 1 | 0 | 3 | 1 | 1 | 2 | |||
| loadScripts | 859 | 677 | 1361 | 132 | 962 | 1065 | |||
| setupStore | 17 | 7 | 56 | 9 | 17 | 37 | |||
| numNetworkReqs | 70 | 58 | 136 | 19 | 67 | 127 | |||
| Webpack | Standard Home | uiStartup | 801 | 666 | 1017 | 75 | 854 | 946 | |
| load | 647 | 566 | 839 | 70 | 697 | 796 | |||
| domContentLoaded | 641 | 561 | 832 | 70 | 691 | 790 | |||
| domInteractive | 25 | 15 | 102 | 19 | 22 | 82 | |||
| firstPaint | 254 | 73 | 746 | 176 | 234 | 688 | |||
| backgroundConnect | 11 | 6 | 33 | 6 | 13 | 29 | |||
| firstReactRender | 49 | 32 | 234 | 29 | 51 | 108 | |||
| getState | 29 | 14 | 86 | 13 | 38 | 53 | |||
| initialActions | 1 | 0 | 4 | 1 | 1 | 2 | |||
| loadScripts | 638 | 558 | 829 | 69 | 689 | 782 | |||
| setupStore | 12 | 6 | 129 | 12 | 13 | 19 | |||
| numNetworkReqs | 13 | 6 | 73 | 19 | 6 | 70 | |||
| Webpack | Power User Home | uiStartup | 1413 | 1129 | 2127 | 187 | 1578 | 1713 | |
| load | 734 | 597 | 996 | 99 | 815 | 917 | |||
| domContentLoaded | 727 | 589 | 991 | 98 | 807 | 906 | |||
| domInteractive | 31 | 17 | 127 | 25 | 26 | 102 | |||
| firstPaint | 278 | 93 | 985 | 223 | 259 | 861 | |||
| backgroundConnect | 75 | 7 | 593 | 140 | 85 | 555 | |||
| firstReactRender | 50 | 41 | 76 | 5 | 52 | 64 | |||
| getState | 188 | 144 | 669 | 58 | 191 | 249 | |||
| initialActions | 1 | 0 | 4 | 1 | 1 | 2 | |||
| loadScripts | 724 | 587 | 984 | 97 | 805 | 904 | |||
| setupStore | 17 | 6 | 48 | 10 | 16 | 39 | |||
| numNetworkReqs | 70 | 55 | 158 | 21 | 67 | 134 | |||
| Firefox | Browserify | Standard Home | uiStartup | 1365 | 1138 | 2116 | 175 | 1450 | 1730 |
| load | 1100 | 947 | 1784 | 122 | 1149 | 1320 | |||
| domContentLoaded | 1099 | 947 | 1783 | 122 | 1149 | 1319 | |||
| domInteractive | 70 | 34 | 207 | 34 | 89 | 125 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 53 | 22 | 340 | 45 | 59 | 154 | |||
| firstReactRender | 40 | 32 | 66 | 8 | 44 | 62 | |||
| getState | 13 | 7 | 100 | 11 | 12 | 30 | |||
| initialActions | 1 | 0 | 3 | 1 | 2 | 2 | |||
| loadScripts | 1070 | 931 | 1756 | 113 | 1114 | 1217 | |||
| setupStore | 13 | 7 | 63 | 11 | 12 | 38 | |||
| numNetworkReqs | 15 | 6 | 87 | 22 | 8 | 78 | |||
| Browserify | Power User Home | uiStartup | 2584 | 1566 | 3541 | 539 | 3051 | 3385 | |
| load | 1611 | 988 | 2553 | 495 | 2079 | 2335 | |||
| domContentLoaded | 1611 | 988 | 2552 | 495 | 2078 | 2335 | |||
| domInteractive | 171 | 32 | 1062 | 278 | 97 | 982 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 199 | 25 | 1074 | 235 | 221 | 967 | |||
| firstReactRender | 56 | 39 | 109 | 14 | 61 | 97 | |||
| getState | 140 | 72 | 624 | 67 | 158 | 242 | |||
| initialActions | 2 | 1 | 38 | 5 | 2 | 3 | |||
| loadScripts | 1517 | 970 | 2373 | 467 | 1976 | 2286 | |||
| setupStore | 48 | 4 | 1029 | 115 | 42 | 220 | |||
| numNetworkReqs | 76 | 57 | 135 | 24 | 70 | 129 | |||
| Webpack | Standard Home | uiStartup | - | - | - | - | - | - | |
| load | - | - | - | - | - | - | |||
| domContentLoaded | - | - | - | - | - | - | |||
| domInteractive | - | - | - | - | - | - | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | - | - | - | - | - | - | |||
| firstReactRender | - | - | - | - | - | - | |||
| getState | - | - | - | - | - | - | |||
| initialActions | - | - | - | - | - | - | |||
| loadScripts | - | - | - | - | - | - | |||
| setupStore | - | - | - | - | - | - | |||
| numNetworkReqs | - | - | - | - | - | - | |||
| Webpack | Power User Home | uiStartup | - | - | - | - | - | - | |
| load | - | - | - | - | - | - | |||
| domContentLoaded | - | - | - | - | - | - | |||
| domInteractive | - | - | - | - | - | - | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | - | - | - | - | - | - | |||
| firstReactRender | - | - | - | - | - | - | |||
| getState | - | - | - | - | - | - | |||
| initialActions | - | - | - | - | - | - | |||
| loadScripts | - | - | - | - | - | - | |||
| setupStore | - | - | - | - | - | - | |||
| numNetworkReqs | - | - | - | - | - | - |
📊 Page Load Benchmark Results
Current Commit: 40bd711 | Date: 12/11/2025
📄 Localhost MetaMask Test Dapp
Samples: 100
Summary
- pageLoadTime-> current mean value: 1.04s (±65ms) 🟡 | historical mean value: 1.03s ⬆️ (historical data)
- domContentLoaded-> current mean value: 729ms (±62ms) 🟢 | historical mean value: 719ms ⬆️ (historical data)
- firstContentfulPaint-> current mean value: 77ms (±14ms) 🟢 | historical mean value: 76ms ⬆️ (historical data)
📈 Detailed Results
| Metric | Mean | Std Dev | Min | Max | P95 | P99 |
|---|---|---|---|---|---|---|
| pageLoadTime | 1.04s | 65ms | 1.01s | 1.36s | 1.25s | 1.36s |
| domContentLoaded | 729ms | 62ms | 700ms | 1.01s | 932ms | 1.01s |
| firstPaint | 77ms | 14ms | 60ms | 196ms | 88ms | 196ms |
| firstContentfulPaint | 77ms | 14ms | 60ms | 196ms | 88ms | 196ms |
| largestContentfulPaint | 0ms | 0ms | 0ms | 0ms | 0ms | 0ms |
Bundle size diffs [🚀 Bundle size reduced!]
- background: -21.67 KiB (-0.42%)
- ui: 1.7 KiB (0.02%)
- common: 1.14 KiB (0.01%)
Builds ready [9a8fe91]
- builds: chrome, firefox
- builds (beta): chrome, firefox
- builds (flask): chrome, firefox
- builds (test): chrome, firefox
- builds (test-flask): chrome, firefox
- lavamoat 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 (1270 ± 104 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 | 1270 | 1049 | 1652 | 104 | 1336 | 1450 |
| load | 1037 | 866 | 1295 | 86 | 1084 | 1173 | |||
| domContentLoaded | 1030 | 857 | 1275 | 85 | 1078 | 1169 | |||
| domInteractive | 26 | 15 | 110 | 21 | 22 | 84 | |||
| firstPaint | 485 | 98 | 1292 | 391 | 1005 | 1141 | |||
| backgroundConnect | 216 | 198 | 271 | 13 | 222 | 243 | |||
| firstReactRender | 45 | 31 | 226 | 22 | 44 | 71 | |||
| getState | 37 | 18 | 104 | 18 | 41 | 91 | |||
| initialActions | 1 | 0 | 5 | 1 | 1 | 2 | |||
| loadScripts | 821 | 658 | 1064 | 82 | 866 | 961 | |||
| setupStore | 11 | 5 | 30 | 4 | 13 | 21 | |||
| numNetworkReqs | 13 | 6 | 78 | 20 | 6 | 71 | |||
| Browserify | Power User Home | uiStartup | 1866 | 1549 | 2363 | 155 | 1945 | 2168 | |
| load | 1060 | 870 | 1420 | 119 | 1144 | 1269 | |||
| domContentLoaded | 1050 | 861 | 1400 | 118 | 1133 | 1248 | |||
| domInteractive | 29 | 16 | 102 | 21 | 25 | 92 | |||
| firstPaint | 556 | 94 | 1431 | 413 | 999 | 1242 | |||
| backgroundConnect | 254 | 198 | 608 | 103 | 232 | 570 | |||
| firstReactRender | 46 | 37 | 69 | 4 | 48 | 53 | |||
| getState | 190 | 146 | 681 | 58 | 201 | 247 | |||
| initialActions | 1 | 0 | 2 | 0 | 1 | 2 | |||
| loadScripts | 839 | 658 | 1196 | 114 | 921 | 1042 | |||
| setupStore | 15 | 6 | 39 | 7 | 15 | 34 | |||
| numNetworkReqs | 70 | 56 | 138 | 17 | 67 | 123 | |||
| Webpack | Standard Home | uiStartup | 812 | 676 | 1062 | 76 | 856 | 958 | |
| load | 651 | 575 | 826 | 64 | 686 | 790 | |||
| domContentLoaded | 645 | 570 | 819 | 64 | 682 | 783 | |||
| domInteractive | 26 | 16 | 103 | 18 | 23 | 83 | |||
| firstPaint | 237 | 83 | 812 | 159 | 222 | 677 | |||
| backgroundConnect | 10 | 6 | 31 | 4 | 11 | 16 | |||
| firstReactRender | 50 | 32 | 179 | 25 | 53 | 117 | |||
| getState | 31 | 14 | 90 | 14 | 37 | 57 | |||
| initialActions | 1 | 0 | 4 | 1 | 1 | 2 | |||
| loadScripts | 642 | 568 | 810 | 63 | 679 | 775 | |||
| setupStore | 12 | 6 | 35 | 6 | 15 | 26 | |||
| numNetworkReqs | 13 | 6 | 73 | 18 | 6 | 72 | |||
| Webpack | Power User Home | uiStartup | 1426 | 1105 | 2031 | 198 | 1613 | 1757 | |
| load | 748 | 585 | 1166 | 114 | 861 | 914 | |||
| domContentLoaded | 741 | 578 | 1159 | 113 | 853 | 904 | |||
| domInteractive | 32 | 18 | 181 | 29 | 27 | 101 | |||
| firstPaint | 319 | 94 | 1168 | 247 | 351 | 843 | |||
| backgroundConnect | 76 | 7 | 622 | 159 | 42 | 575 | |||
| firstReactRender | 50 | 39 | 70 | 6 | 53 | 63 | |||
| getState | 196 | 145 | 724 | 79 | 202 | 280 | |||
| initialActions | 1 | 0 | 5 | 1 | 1 | 2 | |||
| loadScripts | 738 | 576 | 1150 | 112 | 851 | 901 | |||
| setupStore | 16 | 7 | 42 | 9 | 14 | 36 | |||
| numNetworkReqs | 71 | 56 | 220 | 24 | 65 | 130 | |||
| Firefox | Browserify | Standard Home | uiStartup | 1311 | 1069 | 1845 | 177 | 1427 | 1652 |
| load | 1056 | 899 | 1327 | 99 | 1128 | 1247 | |||
| domContentLoaded | 1055 | 899 | 1327 | 100 | 1128 | 1247 | |||
| domInteractive | 68 | 30 | 231 | 39 | 85 | 141 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 53 | 20 | 295 | 51 | 47 | 187 | |||
| firstReactRender | 36 | 29 | 67 | 7 | 37 | 55 | |||
| getState | 13 | 7 | 183 | 19 | 10 | 33 | |||
| initialActions | 1 | 0 | 2 | 0 | 1 | 2 | |||
| loadScripts | 1029 | 884 | 1267 | 88 | 1093 | 1186 | |||
| setupStore | 14 | 5 | 100 | 17 | 11 | 51 | |||
| numNetworkReqs | 15 | 6 | 80 | 21 | 7 | 77 | |||
| Browserify | Power User Home | uiStartup | 2633 | 1662 | 4286 | 567 | 3019 | 3474 | |
| load | 1605 | 1007 | 2499 | 477 | 2066 | 2401 | |||
| domContentLoaded | 1605 | 1007 | 2498 | 477 | 2065 | 2401 | |||
| domInteractive | 158 | 32 | 1070 | 260 | 93 | 915 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 200 | 28 | 1142 | 249 | 213 | 958 | |||
| firstReactRender | 58 | 34 | 186 | 16 | 61 | 83 | |||
| getState | 136 | 72 | 356 | 54 | 163 | 243 | |||
| initialActions | 3 | 1 | 41 | 5 | 3 | 7 | |||
| loadScripts | 1524 | 988 | 2391 | 447 | 1945 | 2305 | |||
| setupStore | 68 | 5 | 1053 | 197 | 40 | 123 | |||
| numNetworkReqs | 74 | 53 | 141 | 22 | 70 | 130 | |||
| Webpack | Standard Home | uiStartup | - | - | - | - | - | - | |
| load | - | - | - | - | - | - | |||
| domContentLoaded | - | - | - | - | - | - | |||
| domInteractive | - | - | - | - | - | - | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | - | - | - | - | - | - | |||
| firstReactRender | - | - | - | - | - | - | |||
| getState | - | - | - | - | - | - | |||
| initialActions | - | - | - | - | - | - | |||
| loadScripts | - | - | - | - | - | - | |||
| setupStore | - | - | - | - | - | - | |||
| numNetworkReqs | - | - | - | - | - | - | |||
| Webpack | Power User Home | uiStartup | - | - | - | - | - | - | |
| load | - | - | - | - | - | - | |||
| domContentLoaded | - | - | - | - | - | - | |||
| domInteractive | - | - | - | - | - | - | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | - | - | - | - | - | - | |||
| firstReactRender | - | - | - | - | - | - | |||
| getState | - | - | - | - | - | - | |||
| initialActions | - | - | - | - | - | - | |||
| loadScripts | - | - | - | - | - | - | |||
| setupStore | - | - | - | - | - | - | |||
| numNetworkReqs | - | - | - | - | - | - |
📊 Page Load Benchmark Results
Current Commit: 9a8fe91 | Date: 12/11/2025
📄 Localhost MetaMask Test Dapp
Samples: 100
Summary
- pageLoadTime-> current mean value: 1.04s (±40ms) 🟡 | historical mean value: 1.03s ⬆️ (historical data)
- domContentLoaded-> current mean value: 722ms (±37ms) 🟢 | historical mean value: 719ms ⬆️ (historical data)
- firstContentfulPaint-> current mean value: 77ms (±11ms) 🟢 | historical mean value: 76ms ⬆️ (historical data)
📈 Detailed Results
| Metric | Mean | Std Dev | Min | Max | P95 | P99 |
|---|---|---|---|---|---|---|
| pageLoadTime | 1.04s | 40ms | 1.01s | 1.31s | 1.06s | 1.31s |
| domContentLoaded | 722ms | 37ms | 702ms | 972ms | 737ms | 972ms |
| firstPaint | 77ms | 11ms | 64ms | 172ms | 88ms | 172ms |
| firstContentfulPaint | 77ms | 11ms | 64ms | 172ms | 88ms | 172ms |
| largestContentfulPaint | 0ms | 0ms | 0ms | 0ms | 0ms | 0ms |
Bundle size diffs [🚀 Bundle size reduced!]
- background: -21.67 KiB (-0.42%)
- ui: 1.7 KiB (0.02%)
- common: 1.14 KiB (0.01%)
Builds ready [226f3cd]
- builds: chrome, firefox
- builds (beta): chrome, firefox
- builds (flask): chrome, firefox
- builds (test): chrome, firefox
- builds (test-flask): chrome, firefox
- lavamoat 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 (1263 ± 109 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 | 1263 | 1055 | 1618 | 109 | 1323 | 1465 |
| load | 1034 | 878 | 1322 | 90 | 1084 | 1197 | |||
| domContentLoaded | 1027 | 873 | 1318 | 90 | 1079 | 1187 | |||
| domInteractive | 26 | 15 | 91 | 18 | 22 | 79 | |||
| firstPaint | 537 | 79 | 1239 | 400 | 1002 | 1160 | |||
| backgroundConnect | 217 | 201 | 270 | 13 | 226 | 241 | |||
| firstReactRender | 45 | 32 | 136 | 15 | 50 | 72 | |||
| getState | 37 | 17 | 109 | 14 | 44 | 60 | |||
| initialActions | 1 | 0 | 4 | 1 | 1 | 2 | |||
| loadScripts | 817 | 650 | 1051 | 86 | 856 | 975 | |||
| setupStore | 12 | 7 | 39 | 5 | 13 | 23 | |||
| numNetworkReqs | 13 | 6 | 78 | 19 | 6 | 68 | |||
| Browserify | Power User Home | uiStartup | 1922 | 1601 | 2449 | 171 | 2014 | 2261 | |
| load | 1086 | 874 | 1346 | 122 | 1184 | 1306 | |||
| domContentLoaded | 1076 | 868 | 1333 | 121 | 1180 | 1300 | |||
| domInteractive | 33 | 18 | 262 | 32 | 28 | 98 | |||
| firstPaint | 581 | 107 | 1354 | 421 | 1026 | 1271 | |||
| backgroundConnect | 248 | 199 | 632 | 81 | 239 | 511 | |||
| firstReactRender | 48 | 39 | 108 | 9 | 50 | 64 | |||
| getState | 205 | 147 | 763 | 83 | 212 | 294 | |||
| initialActions | 1 | 0 | 3 | 1 | 1 | 2 | |||
| loadScripts | 859 | 669 | 1121 | 119 | 964 | 1059 | |||
| setupStore | 16 | 7 | 98 | 11 | 15 | 36 | |||
| numNetworkReqs | 71 | 58 | 141 | 19 | 68 | 127 | |||
| Webpack | Standard Home | uiStartup | 816 | 687 | 1034 | 78 | 872 | 961 | |
| load | 654 | 575 | 854 | 66 | 685 | 791 | |||
| domContentLoaded | 648 | 571 | 848 | 65 | 678 | 783 | |||
| domInteractive | 25 | 15 | 99 | 19 | 21 | 78 | |||
| firstPaint | 258 | 84 | 828 | 193 | 228 | 754 | |||
| backgroundConnect | 12 | 6 | 78 | 9 | 14 | 30 | |||
| firstReactRender | 50 | 33 | 143 | 21 | 62 | 101 | |||
| getState | 30 | 15 | 86 | 12 | 38 | 49 | |||
| initialActions | 1 | 0 | 3 | 1 | 1 | 2 | |||
| loadScripts | 645 | 569 | 839 | 64 | 675 | 781 | |||
| setupStore | 12 | 5 | 35 | 5 | 15 | 19 | |||
| numNetworkReqs | 13 | 6 | 77 | 20 | 6 | 74 | |||
| Webpack | Power User Home | uiStartup | 1456 | 1145 | 2294 | 203 | 1580 | 1791 | |
| load | 756 | 604 | 1033 | 108 | 851 | 938 | |||
| domContentLoaded | 748 | 596 | 1025 | 107 | 844 | 931 | |||
| domInteractive | 33 | 18 | 150 | 30 | 26 | 123 | |||
| firstPaint | 298 | 88 | 941 | 226 | 331 | 841 | |||
| backgroundConnect | 86 | 8 | 687 | 166 | 65 | 618 | |||
| firstReactRender | 52 | 41 | 73 | 6 | 54 | 65 | |||
| getState | 197 | 146 | 358 | 43 | 219 | 291 | |||
| initialActions | 1 | 0 | 3 | 1 | 1 | 2 | |||
| loadScripts | 745 | 594 | 1015 | 106 | 841 | 922 | |||
| setupStore | 16 | 6 | 48 | 9 | 15 | 36 | |||
| numNetworkReqs | 71 | 58 | 146 | 21 | 66 | 137 | |||
| Firefox | Browserify | Standard Home | uiStartup | 1324 | 1085 | 2029 | 187 | 1407 | 1672 |
| load | 1058 | 895 | 1587 | 113 | 1109 | 1269 | |||
| domContentLoaded | 1058 | 894 | 1586 | 113 | 1103 | 1269 | |||
| domInteractive | 64 | 31 | 252 | 41 | 86 | 140 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 48 | 21 | 343 | 46 | 48 | 146 | |||
| firstReactRender | 38 | 31 | 75 | 9 | 38 | 61 | |||
| getState | 11 | 7 | 48 | 7 | 10 | 24 | |||
| initialActions | 1 | 0 | 2 | 1 | 1 | 2 | |||
| loadScripts | 1033 | 878 | 1556 | 103 | 1073 | 1211 | |||
| setupStore | 12 | 5 | 124 | 15 | 10 | 28 | |||
| numNetworkReqs | 16 | 6 | 89 | 22 | 8 | 77 | |||
| Browserify | Power User Home | uiStartup | 2597 | 1699 | 4113 | 532 | 2986 | 3451 | |
| load | 1641 | 984 | 2622 | 499 | 2094 | 2375 | |||
| domContentLoaded | 1640 | 984 | 2622 | 499 | 2094 | 2375 | |||
| domInteractive | 163 | 31 | 1101 | 270 | 105 | 975 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 248 | 22 | 1163 | 310 | 212 | 1019 | |||
| firstReactRender | 54 | 36 | 96 | 12 | 58 | 82 | |||
| getState | 129 | 70 | 311 | 44 | 157 | 219 | |||
| initialActions | 3 | 0 | 34 | 5 | 2 | 4 | |||
| loadScripts | 1496 | 969 | 2443 | 469 | 1916 | 2284 | |||
| setupStore | 42 | 4 | 1020 | 110 | 38 | 129 | |||
| numNetworkReqs | 75 | 58 | 148 | 21 | 83 | 117 | |||
| Webpack | Standard Home | uiStartup | - | - | - | - | - | - | |
| load | - | - | - | - | - | - | |||
| domContentLoaded | - | - | - | - | - | - | |||
| domInteractive | - | - | - | - | - | - | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | - | - | - | - | - | - | |||
| firstReactRender | - | - | - | - | - | - | |||
| getState | - | - | - | - | - | - | |||
| initialActions | - | - | - | - | - | - | |||
| loadScripts | - | - | - | - | - | - | |||
| setupStore | - | - | - | - | - | - | |||
| numNetworkReqs | - | - | - | - | - | - | |||
| Webpack | Power User Home | uiStartup | - | - | - | - | - | - | |
| load | - | - | - | - | - | - | |||
| domContentLoaded | - | - | - | - | - | - | |||
| domInteractive | - | - | - | - | - | - | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | - | - | - | - | - | - | |||
| firstReactRender | - | - | - | - | - | - | |||
| getState | - | - | - | - | - | - | |||
| initialActions | - | - | - | - | - | - | |||
| loadScripts | - | - | - | - | - | - | |||
| setupStore | - | - | - | - | - | - | |||
| numNetworkReqs | - | - | - | - | - | - |
📊 Page Load Benchmark Results
Current Commit: 226f3cd | Date: 12/11/2025
📄 Localhost MetaMask Test Dapp
Samples: 100
Summary
- pageLoadTime-> current mean value: 1.06s (±75ms) 🟡 | historical mean value: 1.04s ⬆️ (historical data)
- domContentLoaded-> current mean value: 742ms (±70ms) 🟢 | historical mean value: 724ms ⬆️ (historical data)
- firstContentfulPaint-> current mean value: 78ms (±11ms) 🟢 | historical mean value: 79ms ⬇️ (historical data)
📈 Detailed Results
| Metric | Mean | Std Dev | Min | Max | P95 | P99 |
|---|---|---|---|---|---|---|
| pageLoadTime | 1.06s | 75ms | 1.02s | 1.39s | 1.28s | 1.39s |
| domContentLoaded | 742ms | 70ms | 706ms | 1.02s | 959ms | 1.02s |
| firstPaint | 78ms | 11ms | 60ms | 168ms | 88ms | 168ms |
| firstContentfulPaint | 78ms | 11ms | 60ms | 168ms | 88ms | 168ms |
| largestContentfulPaint | 0ms | 0ms | 0ms | 0ms | 0ms | 0ms |
Bundle size diffs [🚀 Bundle size reduced!]
- background: -21.67 KiB (-0.42%)
- ui: 1.7 KiB (0.02%)
- common: 1.14 KiB (0.01%)
Sorry for the force push here - I ended up going around in circles trying to get the lavamoat policies updated. Made for a much cleaner PR if I collated the changes afresh.
Builds ready [faefbbf]
- builds: chrome, firefox
- builds (beta): chrome, firefox
- builds (flask): chrome, firefox
- builds (test): chrome, firefox
- builds (test-flask): chrome, firefox
- lavamoat 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 (1234 ± 96 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 | 1234 | 1026 | 1472 | 96 | 1300 | 1380 |
| load | 1011 | 849 | 1236 | 83 | 1066 | 1169 | |||
| domContentLoaded | 1004 | 844 | 1221 | 82 | 1058 | 1157 | |||
| domInteractive | 26 | 14 | 112 | 21 | 22 | 86 | |||
| firstPaint | 571 | 81 | 1257 | 405 | 1015 | 1132 | |||
| backgroundConnect | 211 | 193 | 237 | 10 | 216 | 233 | |||
| firstReactRender | 47 | 31 | 89 | 14 | 55 | 78 | |||
| getState | 38 | 17 | 118 | 15 | 45 | 64 | |||
| initialActions | 1 | 0 | 4 | 1 | 1 | 2 | |||
| loadScripts | 799 | 650 | 1007 | 79 | 850 | 954 | |||
| setupStore | 12 | 6 | 39 | 5 | 15 | 21 | |||
| numNetworkReqs | 14 | 6 | 79 | 20 | 6 | 74 | |||
| Browserify | Power User Home | uiStartup | 1893 | 1543 | 2472 | 167 | 1982 | 2225 | |
| load | 1055 | 878 | 1445 | 130 | 1141 | 1287 | |||
| domContentLoaded | 1045 | 873 | 1433 | 130 | 1134 | 1279 | |||
| domInteractive | 30 | 17 | 146 | 24 | 28 | 100 | |||
| firstPaint | 601 | 101 | 1404 | 420 | 1010 | 1277 | |||
| backgroundConnect | 260 | 195 | 646 | 111 | 236 | 600 | |||
| firstReactRender | 50 | 39 | 85 | 8 | 52 | 68 | |||
| getState | 185 | 146 | 678 | 55 | 191 | 239 | |||
| initialActions | 1 | 0 | 2 | 1 | 1 | 2 | |||
| loadScripts | 835 | 671 | 1203 | 127 | 920 | 1071 | |||
| setupStore | 15 | 9 | 48 | 7 | 13 | 34 | |||
| numNetworkReqs | 72 | 54 | 225 | 25 | 67 | 131 | |||
| Webpack | Standard Home | uiStartup | 816 | 666 | 1503 | 108 | 835 | 973 | |
| load | 653 | 565 | 859 | 74 | 694 | 800 | |||
| domContentLoaded | 647 | 561 | 831 | 73 | 690 | 792 | |||
| domInteractive | 25 | 15 | 112 | 20 | 21 | 77 | |||
| firstPaint | 267 | 85 | 833 | 210 | 225 | 778 | |||
| backgroundConnect | 11 | 6 | 82 | 9 | 13 | 28 | |||
| firstReactRender | 54 | 32 | 183 | 31 | 59 | 134 | |||
| getState | 28 | 14 | 58 | 11 | 38 | 50 | |||
| initialActions | 1 | 0 | 5 | 1 | 1 | 1 | |||
| loadScripts | 644 | 559 | 821 | 72 | 688 | 785 | |||
| setupStore | 11 | 5 | 30 | 5 | 12 | 21 | |||
| numNetworkReqs | 13 | 6 | 78 | 19 | 6 | 70 | |||
| Webpack | Power User Home | uiStartup | 1395 | 1054 | 2027 | 187 | 1479 | 1764 | |
| load | 716 | 588 | 985 | 102 | 820 | 896 | |||
| domContentLoaded | 709 | 581 | 977 | 101 | 809 | 889 | |||
| domInteractive | 30 | 16 | 131 | 26 | 25 | 112 | |||
| firstPaint | 329 | 77 | 989 | 246 | 404 | 860 | |||
| backgroundConnect | 55 | 7 | 598 | 103 | 49 | 194 | |||
| firstReactRender | 48 | 40 | 61 | 4 | 50 | 57 | |||
| getState | 176 | 65 | 666 | 56 | 179 | 235 | |||
| initialActions | 1 | 0 | 2 | 1 | 1 | 2 | |||
| loadScripts | 706 | 579 | 969 | 100 | 802 | 887 | |||
| setupStore | 15 | 6 | 48 | 8 | 13 | 37 | |||
| numNetworkReqs | 71 | 56 | 146 | 21 | 67 | 135 | |||
| Firefox | Browserify | Standard Home | uiStartup | 1316 | 1048 | 2382 | 260 | 1382 | 1846 |
| load | 1058 | 887 | 2106 | 200 | 1097 | 1212 | |||
| domContentLoaded | 1057 | 887 | 2106 | 200 | 1096 | 1212 | |||
| domInteractive | 87 | 31 | 1140 | 180 | 82 | 140 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 45 | 20 | 227 | 38 | 44 | 158 | |||
| firstReactRender | 37 | 29 | 59 | 6 | 38 | 50 | |||
| getState | 22 | 7 | 878 | 87 | 11 | 31 | |||
| initialActions | 1 | 0 | 3 | 1 | 1 | 2 | |||
| loadScripts | 1035 | 870 | 2084 | 197 | 1066 | 1172 | |||
| setupStore | 14 | 6 | 128 | 15 | 11 | 43 | |||
| numNetworkReqs | 15 | 6 | 82 | 21 | 9 | 76 | |||
| Browserify | Power User Home | uiStartup | 2607 | 1614 | 4584 | 565 | 3029 | 3374 | |
| load | 1599 | 970 | 2686 | 509 | 2065 | 2416 | |||
| domContentLoaded | 1599 | 969 | 2686 | 509 | 2065 | 2416 | |||
| domInteractive | 137 | 31 | 1079 | 228 | 84 | 948 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 203 | 26 | 1104 | 244 | 225 | 977 | |||
| firstReactRender | 57 | 34 | 193 | 18 | 62 | 86 | |||
| getState | 142 | 52 | 934 | 97 | 162 | 238 | |||
| initialActions | 2 | 1 | 39 | 5 | 2 | 3 | |||
| loadScripts | 1492 | 946 | 2661 | 465 | 1935 | 2281 | |||
| setupStore | 56 | 4 | 956 | 118 | 43 | 241 | |||
| numNetworkReqs | 75 | 55 | 137 | 20 | 87 | 120 | |||
| Webpack | Standard Home | uiStartup | 1590 | 1341 | 2245 | 158 | 1660 | 1895 | |
| load | 1310 | 1144 | 1676 | 103 | 1353 | 1550 | |||
| domContentLoaded | 1309 | 1144 | 1676 | 103 | 1353 | 1550 | |||
| domInteractive | 81 | 30 | 181 | 37 | 110 | 139 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 59 | 20 | 226 | 43 | 66 | 176 | |||
| firstReactRender | 44 | 32 | 80 | 8 | 47 | 57 | |||
| getState | 14 | 7 | 80 | 10 | 14 | 31 | |||
| initialActions | 1 | 0 | 3 | 1 | 2 | 2 | |||
| loadScripts | 1280 | 1125 | 1649 | 101 | 1327 | 1520 | |||
| setupStore | 17 | 6 | 113 | 20 | 13 | 67 | |||
| numNetworkReqs | 15 | 6 | 86 | 20 | 9 | 75 | |||
| Webpack | Power User Home | uiStartup | 2647 | 1776 | 4275 | 535 | 3022 | 3543 | |
| load | 1868 | 1151 | 3325 | 496 | 2330 | 2516 | |||
| domContentLoaded | 1868 | 1151 | 3325 | 496 | 2330 | 2516 | |||
| domInteractive | 219 | 27 | 1070 | 334 | 176 | 977 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 168 | 26 | 1063 | 209 | 204 | 961 | |||
| firstReactRender | 56 | 36 | 120 | 14 | 60 | 95 | |||
| getState | 131 | 81 | 266 | 43 | 164 | 213 | |||
| initialActions | 2 | 0 | 56 | 5 | 2 | 3 | |||
| loadScripts | 1787 | 1067 | 2557 | 461 | 2257 | 2449 | |||
| setupStore | 34 | 5 | 343 | 51 | 41 | 133 | |||
| numNetworkReqs | 75 | 57 | 140 | 22 | 82 | 126 |
📊 Page Load Benchmark Results
Current Commit: faefbbf | Date: 12/12/2025
📄 Localhost MetaMask Test Dapp
Samples: 100
Summary
- pageLoadTime-> current mean value: 1.03s (±68ms) 🟡 | historical mean value: 1.04s ⬇️ (historical data)
- domContentLoaded-> current mean value: 723ms (±66ms) 🟢 | historical mean value: 730ms ⬇️ (historical data)
- firstContentfulPaint-> current mean value: 75ms (±11ms) 🟢 | historical mean value: 83ms ⬇️ (historical data)
📈 Detailed Results
| Metric | Mean | Std Dev | Min | Max | P95 | P99 |
|---|---|---|---|---|---|---|
| pageLoadTime | 1.03s | 68ms | 996ms | 1.31s | 1.27s | 1.31s |
| domContentLoaded | 723ms | 66ms | 687ms | 987ms | 939ms | 987ms |
| firstPaint | 75ms | 11ms | 60ms | 164ms | 84ms | 164ms |
| firstContentfulPaint | 75ms | 11ms | 60ms | 164ms | 84ms | 164ms |
| largestContentfulPaint | 0ms | 0ms | 0ms | 0ms | 0ms | 0ms |
Bundle size diffs [🚀 Bundle size reduced!]
- background: -21.67 KiB (-0.42%)
- ui: 1.7 KiB (0.02%)
- common: 1.14 KiB (0.01%)
@mj-kiwi
the number of tests for erc20-token-revocation is much lower than the other permission types. Should we address this in a future PR, or handle it in this one? This is inherently less complex because the only variable field is the expiry - given that I think there's sufficient coverage. LMK if you think there's anything specific missing.
I think we need to update the CHANGELOG entry: as well I've added
no-changeloglabel because there's no end-user facing changes.
Builds ready [037f40c]
- builds: chrome, firefox
- builds (beta): chrome, firefox
- builds (flask): chrome, firefox
- builds (test): chrome, firefox
- builds (test-flask): chrome, firefox
- lavamoat 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 (1270 ± 111 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 | 1270 | 1009 | 1517 | 111 | 1350 | 1423 |
| load | 1038 | 861 | 1246 | 88 | 1106 | 1178 | |||
| domContentLoaded | 1031 | 854 | 1239 | 87 | 1099 | 1170 | |||
| domInteractive | 25 | 14 | 95 | 19 | 21 | 81 | |||
| firstPaint | 573 | 91 | 1214 | 423 | 1054 | 1154 | |||
| backgroundConnect | 214 | 194 | 251 | 11 | 221 | 238 | |||
| firstReactRender | 46 | 30 | 104 | 14 | 51 | 75 | |||
| getState | 39 | 18 | 148 | 24 | 44 | 97 | |||
| initialActions | 1 | 0 | 4 | 1 | 1 | 2 | |||
| loadScripts | 824 | 656 | 1021 | 84 | 889 | 962 | |||
| setupStore | 12 | 6 | 33 | 6 | 13 | 24 | |||
| numNetworkReqs | 13 | 6 | 84 | 19 | 6 | 70 | |||
| Browserify | Power User Home | uiStartup | 1914 | 1535 | 2422 | 156 | 2000 | 2240 | |
| load | 1093 | 897 | 1522 | 130 | 1203 | 1318 | |||
| domContentLoaded | 1083 | 892 | 1512 | 129 | 1188 | 1309 | |||
| domInteractive | 31 | 17 | 137 | 25 | 26 | 109 | |||
| firstPaint | 545 | 96 | 1526 | 428 | 1029 | 1257 | |||
| backgroundConnect | 246 | 202 | 609 | 87 | 234 | 550 | |||
| firstReactRender | 48 | 39 | 70 | 6 | 50 | 61 | |||
| getState | 204 | 151 | 726 | 81 | 211 | 304 | |||
| initialActions | 1 | 0 | 3 | 1 | 1 | 2 | |||
| loadScripts | 870 | 685 | 1304 | 128 | 976 | 1097 | |||
| setupStore | 15 | 7 | 41 | 6 | 15 | 32 | |||
| numNetworkReqs | 70 | 59 | 136 | 17 | 67 | 122 | |||
| Webpack | Standard Home | uiStartup | 842 | 686 | 1473 | 106 | 887 | 970 | |
| load | 675 | 583 | 1312 | 99 | 714 | 803 | |||
| domContentLoaded | 669 | 578 | 1306 | 99 | 709 | 796 | |||
| domInteractive | 27 | 15 | 113 | 20 | 23 | 87 | |||
| firstPaint | 237 | 88 | 1040 | 183 | 213 | 693 | |||
| backgroundConnect | 11 | 6 | 32 | 6 | 12 | 28 | |||
| firstReactRender | 58 | 33 | 216 | 40 | 63 | 180 | |||
| getState | 31 | 14 | 119 | 15 | 42 | 53 | |||
| initialActions | 1 | 0 | 3 | 1 | 1 | 2 | |||
| loadScripts | 666 | 575 | 1298 | 98 | 707 | 788 | |||
| setupStore | 12 | 7 | 57 | 7 | 14 | 31 | |||
| numNetworkReqs | 13 | 6 | 77 | 19 | 6 | 72 | |||
| Webpack | Power User Home | uiStartup | 1505 | 1132 | 2305 | 218 | 1683 | 1859 | |
| load | 765 | 604 | 1199 | 114 | 882 | 928 | |||
| domContentLoaded | 757 | 599 | 1190 | 113 | 876 | 920 | |||
| domInteractive | 33 | 17 | 157 | 28 | 28 | 114 | |||
| firstPaint | 311 | 91 | 1021 | 232 | 371 | 847 | |||
| backgroundConnect | 91 | 8 | 675 | 179 | 49 | 621 | |||
| firstReactRender | 53 | 42 | 76 | 6 | 55 | 68 | |||
| getState | 197 | 144 | 331 | 44 | 209 | 284 | |||
| initialActions | 1 | 0 | 2 | 0 | 1 | 1 | |||
| loadScripts | 754 | 597 | 1180 | 112 | 869 | 917 | |||
| setupStore | 17 | 6 | 46 | 9 | 15 | 36 | |||
| numNetworkReqs | 72 | 58 | 144 | 21 | 69 | 134 | |||
| Firefox | Browserify | Standard Home | uiStartup | 1542 | 1177 | 2819 | 298 | 1642 | 2165 |
| load | 1221 | 978 | 2371 | 220 | 1276 | 1464 | |||
| domContentLoaded | 1221 | 978 | 2371 | 220 | 1276 | 1463 | |||
| domInteractive | 84 | 32 | 1268 | 126 | 92 | 163 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 63 | 21 | 384 | 53 | 77 | 162 | |||
| firstReactRender | 44 | 34 | 87 | 11 | 48 | 71 | |||
| getState | 19 | 8 | 182 | 29 | 16 | 48 | |||
| initialActions | 1 | 0 | 2 | 1 | 2 | 2 | |||
| loadScripts | 1188 | 958 | 2340 | 216 | 1232 | 1413 | |||
| setupStore | 18 | 7 | 140 | 24 | 16 | 92 | |||
| numNetworkReqs | 15 | 6 | 87 | 21 | 8 | 75 | |||
| Browserify | Power User Home | uiStartup | 2603 | 1666 | 3856 | 531 | 2971 | 3412 | |
| load | 1598 | 969 | 2457 | 473 | 2007 | 2312 | |||
| domContentLoaded | 1597 | 969 | 2457 | 473 | 2007 | 2312 | |||
| domInteractive | 178 | 32 | 1065 | 280 | 100 | 949 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 195 | 25 | 1115 | 248 | 201 | 980 | |||
| firstReactRender | 56 | 38 | 179 | 18 | 58 | 95 | |||
| getState | 134 | 76 | 282 | 47 | 159 | 236 | |||
| initialActions | 3 | 1 | 44 | 6 | 2 | 7 | |||
| loadScripts | 1492 | 952 | 2281 | 437 | 1896 | 2222 | |||
| setupStore | 51 | 5 | 1014 | 118 | 41 | 233 | |||
| numNetworkReqs | 76 | 58 | 137 | 22 | 85 | 125 | |||
| Webpack | Standard Home | uiStartup | 1672 | 1402 | 2900 | 222 | 1707 | 2122 | |
| load | 1372 | 1153 | 2613 | 170 | 1414 | 1599 | |||
| domContentLoaded | 1371 | 1153 | 2613 | 170 | 1414 | 1599 | |||
| domInteractive | 99 | 29 | 1381 | 135 | 126 | 160 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 65 | 22 | 242 | 44 | 75 | 147 | |||
| firstReactRender | 45 | 36 | 109 | 10 | 45 | 59 | |||
| getState | 20 | 6 | 193 | 31 | 15 | 62 | |||
| initialActions | 1 | 0 | 3 | 1 | 2 | 2 | |||
| loadScripts | 1340 | 1137 | 2596 | 167 | 1387 | 1571 | |||
| setupStore | 20 | 6 | 153 | 27 | 17 | 71 | |||
| numNetworkReqs | 15 | 6 | 87 | 21 | 8 | 75 | |||
| Webpack | Power User Home | uiStartup | 2687 | 1773 | 4105 | 561 | 3119 | 3493 | |
| load | 1890 | 1146 | 3299 | 518 | 2357 | 2548 | |||
| domContentLoaded | 1890 | 1145 | 3298 | 518 | 2357 | 2547 | |||
| domInteractive | 237 | 30 | 1110 | 351 | 150 | 989 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 176 | 23 | 1176 | 246 | 185 | 956 | |||
| firstReactRender | 58 | 38 | 124 | 14 | 63 | 93 | |||
| getState | 135 | 79 | 238 | 44 | 168 | 226 | |||
| initialActions | 3 | 0 | 37 | 6 | 2 | 8 | |||
| loadScripts | 1800 | 1128 | 2710 | 483 | 2285 | 2521 | |||
| setupStore | 45 | 4 | 326 | 65 | 42 | 191 | |||
| numNetworkReqs | 72 | 47 | 131 | 24 | 67 | 122 |
📊 Page Load Benchmark Results
Current Commit: 037f40c | Date: 12/12/2025
📄 Localhost MetaMask Test Dapp
Samples: 100
Summary
- pageLoadTime-> current mean value: 1.04s (±37ms) 🟡 | historical mean value: 1.04s ⬇️ (historical data)
- domContentLoaded-> current mean value: 721ms (±35ms) 🟢 | historical mean value: 730ms ⬇️ (historical data)
- firstContentfulPaint-> current mean value: 76ms (±10ms) 🟢 | historical mean value: 82ms ⬇️ (historical data)
📈 Detailed Results
| Metric | Mean | Std Dev | Min | Max | P95 | P99 |
|---|---|---|---|---|---|---|
| pageLoadTime | 1.04s | 37ms | 1.02s | 1.30s | 1.07s | 1.30s |
| domContentLoaded | 721ms | 35ms | 702ms | 982ms | 750ms | 982ms |
| firstPaint | 76ms | 10ms | 60ms | 164ms | 84ms | 164ms |
| firstContentfulPaint | 76ms | 10ms | 60ms | 164ms | 84ms | 164ms |
| largestContentfulPaint | 0ms | 0ms | 0ms | 0ms | 0ms | 0ms |
Bundle size diffs [🚀 Bundle size reduced!]
- background: -21.67 KiB (-0.42%)
- ui: 1.7 KiB (0.02%)
- common: 1.12 KiB (0.01%)
Builds ready [faefbbf]
- builds: chrome, firefox
- builds (beta): chrome, firefox
- builds (flask): chrome, firefox
- builds (test): chrome, firefox
- builds (test-flask): chrome, firefox
- lavamoat 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 (1316 ± 127 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 | 1316 | 1053 | 1769 | 127 | 1407 | 1492 |
| load | 1072 | 889 | 1447 | 106 | 1142 | 1233 | |||
| domContentLoaded | 1064 | 881 | 1434 | 105 | 1136 | 1222 | |||
| domInteractive | 27 | 16 | 95 | 20 | 23 | 84 | |||
| firstPaint | 567 | 87 | 1458 | 441 | 1069 | 1218 | |||
| backgroundConnect | 220 | 203 | 322 | 15 | 226 | 239 | |||
| firstReactRender | 48 | 32 | 108 | 17 | 51 | 85 | |||
| getState | 40 | 14 | 138 | 21 | 48 | 76 | |||
| initialActions | 1 | 0 | 7 | 1 | 1 | 3 | |||
| loadScripts | 851 | 674 | 1220 | 101 | 919 | 1006 | |||
| setupStore | 12 | 7 | 39 | 6 | 13 | 25 | |||
| numNetworkReqs | 13 | 6 | 83 | 20 | 6 | 71 | |||
| Browserify | Power User Home | uiStartup | 1908 | 1525 | 2484 | 152 | 1986 | 2173 | |
| load | 1089 | 881 | 1627 | 132 | 1173 | 1314 | |||
| domContentLoaded | 1080 | 873 | 1611 | 132 | 1161 | 1301 | |||
| domInteractive | 33 | 18 | 200 | 30 | 29 | 111 | |||
| firstPaint | 573 | 97 | 1618 | 431 | 1022 | 1300 | |||
| backgroundConnect | 244 | 199 | 628 | 87 | 232 | 565 | |||
| firstReactRender | 48 | 39 | 76 | 6 | 51 | 60 | |||
| getState | 207 | 142 | 711 | 90 | 216 | 281 | |||
| initialActions | 1 | 0 | 4 | 1 | 1 | 2 | |||
| loadScripts | 866 | 675 | 1352 | 128 | 950 | 1089 | |||
| setupStore | 15 | 9 | 38 | 7 | 14 | 34 | |||
| numNetworkReqs | 72 | 59 | 140 | 20 | 69 | 134 | |||
| Webpack | Standard Home | uiStartup | 859 | 699 | 1308 | 94 | 917 | 1009 | |
| load | 683 | 595 | 901 | 75 | 730 | 830 | |||
| domContentLoaded | 677 | 590 | 892 | 75 | 725 | 819 | |||
| domInteractive | 28 | 17 | 119 | 23 | 23 | 99 | |||
| firstPaint | 237 | 93 | 821 | 169 | 228 | 716 | |||
| backgroundConnect | 16 | 6 | 236 | 26 | 12 | 44 | |||
| firstReactRender | 59 | 35 | 217 | 35 | 67 | 143 | |||
| getState | 31 | 14 | 89 | 14 | 39 | 62 | |||
| initialActions | 1 | 0 | 4 | 1 | 1 | 2 | |||
| loadScripts | 674 | 587 | 882 | 74 | 723 | 817 | |||
| setupStore | 12 | 6 | 33 | 5 | 14 | 19 | |||
| numNetworkReqs | 14 | 6 | 78 | 20 | 6 | 75 | |||
| Webpack | Power User Home | uiStartup | 1496 | 1160 | 2157 | 212 | 1681 | 1912 | |
| load | 767 | 619 | 1243 | 116 | 875 | 963 | |||
| domContentLoaded | 759 | 612 | 1236 | 116 | 866 | 955 | |||
| domInteractive | 32 | 18 | 129 | 27 | 27 | 114 | |||
| firstPaint | 352 | 108 | 979 | 258 | 632 | 908 | |||
| backgroundConnect | 81 | 7 | 650 | 156 | 52 | 617 | |||
| firstReactRender | 53 | 44 | 71 | 5 | 55 | 62 | |||
| getState | 201 | 142 | 752 | 68 | 215 | 270 | |||
| initialActions | 1 | 0 | 2 | 1 | 1 | 2 | |||
| loadScripts | 755 | 609 | 1223 | 115 | 862 | 952 | |||
| setupStore | 15 | 7 | 43 | 8 | 14 | 36 | |||
| numNetworkReqs | 71 | 57 | 145 | 21 | 67 | 133 | |||
| Firefox | Browserify | Standard Home | uiStartup | 1267 | 1055 | 1921 | 172 | 1341 | 1622 |
| load | 1024 | 893 | 1569 | 104 | 1066 | 1221 | |||
| domContentLoaded | 1023 | 892 | 1569 | 104 | 1066 | 1220 | |||
| domInteractive | 52 | 30 | 201 | 29 | 64 | 112 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 47 | 19 | 279 | 44 | 46 | 150 | |||
| firstReactRender | 36 | 30 | 56 | 5 | 37 | 49 | |||
| getState | 12 | 6 | 100 | 10 | 11 | 23 | |||
| initialActions | 1 | 0 | 3 | 0 | 1 | 2 | |||
| loadScripts | 999 | 877 | 1543 | 95 | 1046 | 1153 | |||
| setupStore | 12 | 5 | 183 | 19 | 10 | 35 | |||
| numNetworkReqs | 16 | 6 | 83 | 21 | 8 | 79 | |||
| Browserify | Power User Home | uiStartup | 2651 | 1665 | 3490 | 486 | 3016 | 3367 | |
| load | 1648 | 963 | 2543 | 492 | 2070 | 2433 | |||
| domContentLoaded | 1648 | 963 | 2542 | 492 | 2070 | 2433 | |||
| domInteractive | 173 | 30 | 1025 | 274 | 177 | 974 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 218 | 25 | 1143 | 274 | 216 | 1041 | |||
| firstReactRender | 57 | 37 | 110 | 14 | 61 | 87 | |||
| getState | 133 | 71 | 961 | 93 | 149 | 228 | |||
| initialActions | 3 | 1 | 42 | 6 | 2 | 3 | |||
| loadScripts | 1537 | 946 | 2438 | 454 | 1944 | 2274 | |||
| setupStore | 45 | 4 | 1020 | 115 | 38 | 224 | |||
| numNetworkReqs | 75 | 53 | 125 | 20 | 81 | 119 | |||
| Webpack | Standard Home | uiStartup | 1573 | 1333 | 2365 | 162 | 1652 | 1848 | |
| load | 1303 | 1109 | 1646 | 94 | 1356 | 1465 | |||
| domContentLoaded | 1302 | 1104 | 1646 | 94 | 1356 | 1465 | |||
| domInteractive | 71 | 29 | 168 | 35 | 90 | 133 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 54 | 21 | 216 | 33 | 57 | 127 | |||
| firstReactRender | 42 | 35 | 84 | 7 | 44 | 56 | |||
| getState | 19 | 7 | 186 | 28 | 15 | 66 | |||
| initialActions | 1 | 0 | 4 | 1 | 1 | 2 | |||
| loadScripts | 1276 | 1095 | 1569 | 88 | 1326 | 1438 | |||
| setupStore | 16 | 6 | 97 | 16 | 15 | 49 | |||
| numNetworkReqs | 16 | 6 | 82 | 21 | 9 | 76 | |||
| Webpack | Power User Home | uiStartup | 2709 | 1787 | 4264 | 544 | 3092 | 3390 | |
| load | 1932 | 1129 | 3437 | 498 | 2361 | 2535 | |||
| domContentLoaded | 1932 | 1129 | 3437 | 498 | 2361 | 2534 | |||
| domInteractive | 253 | 29 | 1117 | 361 | 269 | 981 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 134 | 25 | 1113 | 158 | 179 | 314 | |||
| firstReactRender | 55 | 38 | 128 | 13 | 60 | 80 | |||
| getState | 132 | 79 | 328 | 49 | 170 | 223 | |||
| initialActions | 2 | 0 | 45 | 5 | 2 | 7 | |||
| loadScripts | 1851 | 1112 | 2648 | 466 | 2256 | 2504 | |||
| setupStore | 33 | 4 | 318 | 55 | 30 | 182 | |||
| numNetworkReqs | 73 | 49 | 133 | 22 | 75 | 125 |
📊 Page Load Benchmark Results
Current Commit: faefbbf | Date: 12/12/2025
📄 Localhost MetaMask Test Dapp
Samples: 100
Summary
- pageLoadTime-> current mean value: 1.02s (±38ms) 🟡 | historical mean value: 1.04s ⬇️ (historical data)
- domContentLoaded-> current mean value: 711ms (±35ms) 🟢 | historical mean value: 727ms ⬇️ (historical data)
- firstContentfulPaint-> current mean value: 74ms (±13ms) 🟢 | historical mean value: 82ms ⬇️ (historical data)
📈 Detailed Results
| Metric | Mean | Std Dev | Min | Max | P95 | P99 |
|---|---|---|---|---|---|---|
| pageLoadTime | 1.02s | 38ms | 999ms | 1.31s | 1.05s | 1.31s |
| domContentLoaded | 711ms | 35ms | 690ms | 975ms | 733ms | 975ms |
| firstPaint | 74ms | 13ms | 60ms | 192ms | 80ms | 192ms |
| firstContentfulPaint | 74ms | 13ms | 60ms | 192ms | 80ms | 192ms |
| largestContentfulPaint | 0ms | 0ms | 0ms | 0ms | 0ms | 0ms |
Bundle size diffs [🚀 Bundle size reduced!]
- background: -21.67 KiB (-0.42%)
- ui: 1.69 KiB (0.02%)
- common: 1.18 KiB (0.01%)