chore: Refactor gas fee modal to use DS component for UI consistency
Description
This PR refactors the gas fee modal to use the DS component. This ensures the UI is consistent.
Changelog
CHANGELOG entry: null
Related issues
Fixes: https://consensyssoftware.atlassian.net/browse/MDP-497?atlOrigin=eyJpIjoiNzVmOTNhY2MzMjdlNDcyZDllYzRmZjM4YmI2ZDJhYjYiLCJwIjoiaiJ9
Manual testing steps
- Go to this page...
Screenshots/Recordings
Before
After
Pre-merge author checklist
- [ ] I've followed MetaMask Contributor Docs and MetaMask Extension Coding Standards.
- [ ] I've completed the PR template to the best of my ability
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using JSDoc format if applicable
- [ ] I’ve applied the right labels on the PR (see labeling guidelines). Not required for external contributors.
Pre-merge reviewer checklist
- [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.
CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes.
✨ Files requiring CODEOWNER review ✨
✅ @MetaMask/confirmations (2 files, +147 -91)
- 📁 ui/
- 📁 pages/
- 📁 confirmations/
- 📁 components/
- 📁 edit-gas-fee-popover/
- 📁 edit-gas-item/
- 📄
edit-gas-item.js+46 -16 - 📄
edit-gas-fee-popover.js+101 -75
- 📄
- 📁 edit-gas-item/
- 📁 edit-gas-fee-popover/
- 📁 components/
- 📁 confirmations/
- 📁 pages/
🧪 @MetaMask/qa (1 files, +1 -1)
- 📁 test/
- 📁 e2e/
- 📁 page-objects/
- 📁 pages/
- 📁 send/
- 📄
send-token-confirmation-page.ts+1 -1
- 📄
- 📁 send/
- 📁 pages/
- 📁 page-objects/
- 📁 e2e/
Builds ready [ab40711]
- 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 (1286 ± 110 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 | 1286 | 1031 | 1553 | 110 | 1350 | 1480 |
| load | 1050 | 871 | 1291 | 88 | 1093 | 1221 | |||
| domContentLoaded | 1044 | 866 | 1286 | 88 | 1086 | 1216 | |||
| domInteractive | 26 | 16 | 107 | 21 | 22 | 97 | |||
| firstPaint | 556 | 93 | 1292 | 413 | 1048 | 1160 | |||
| backgroundConnect | 220 | 199 | 268 | 13 | 227 | 247 | |||
| firstReactRender | 47 | 33 | 92 | 13 | 53 | 78 | |||
| getState | 39 | 17 | 160 | 22 | 45 | 74 | |||
| initialActions | 1 | 0 | 7 | 1 | 1 | 2 | |||
| loadScripts | 832 | 667 | 1056 | 84 | 877 | 986 | |||
| setupStore | 11 | 7 | 25 | 4 | 12 | 20 | |||
| numNetworkReqs | 13 | 6 | 79 | 20 | 6 | 74 | |||
| Browserify | Power User Home | uiStartup | 1861 | 1521 | 2474 | 165 | 1943 | 2159 | |
| load | 1024 | 850 | 1366 | 125 | 1113 | 1261 | |||
| domContentLoaded | 1014 | 841 | 1359 | 125 | 1103 | 1248 | |||
| domInteractive | 28 | 16 | 116 | 22 | 24 | 94 | |||
| firstPaint | 661 | 92 | 1360 | 407 | 1063 | 1243 | |||
| backgroundConnect | 246 | 184 | 794 | 118 | 220 | 572 | |||
| firstReactRender | 47 | 36 | 81 | 8 | 48 | 70 | |||
| getState | 203 | 145 | 649 | 92 | 201 | 294 | |||
| initialActions | 1 | 0 | 4 | 1 | 1 | 2 | |||
| loadScripts | 819 | 651 | 1163 | 122 | 905 | 1044 | |||
| setupStore | 14 | 9 | 48 | 7 | 13 | 33 | |||
| numNetworkReqs | 70 | 57 | 152 | 21 | 66 | 136 | |||
| Webpack | Standard Home | uiStartup | 838 | 694 | 1119 | 86 | 884 | 1003 | |
| load | 677 | 578 | 969 | 82 | 745 | 836 | |||
| domContentLoaded | 671 | 566 | 964 | 81 | 742 | 829 | |||
| domInteractive | 26 | 16 | 114 | 18 | 23 | 70 | |||
| firstPaint | 256 | 93 | 811 | 173 | 244 | 710 | |||
| backgroundConnect | 14 | 6 | 86 | 14 | 13 | 41 | |||
| firstReactRender | 54 | 31 | 211 | 33 | 56 | 129 | |||
| getState | 28 | 14 | 57 | 10 | 36 | 48 | |||
| initialActions | 1 | 0 | 4 | 1 | 1 | 2 | |||
| loadScripts | 668 | 564 | 954 | 80 | 734 | 827 | |||
| setupStore | 11 | 6 | 37 | 5 | 13 | 27 | |||
| numNetworkReqs | 13 | 6 | 79 | 19 | 6 | 70 | |||
| Webpack | Power User Home | uiStartup | 1406 | 972 | 1890 | 193 | 1542 | 1769 | |
| load | 717 | 592 | 957 | 102 | 755 | 923 | |||
| domContentLoaded | 709 | 585 | 950 | 102 | 750 | 915 | |||
| domInteractive | 30 | 17 | 116 | 24 | 26 | 105 | |||
| firstPaint | 287 | 95 | 889 | 195 | 306 | 690 | |||
| backgroundConnect | 131 | 7 | 652 | 197 | 132 | 595 | |||
| firstReactRender | 50 | 40 | 84 | 6 | 51 | 60 | |||
| getState | 176 | 60 | 322 | 32 | 184 | 252 | |||
| initialActions | 1 | 0 | 3 | 1 | 1 | 1 | |||
| loadScripts | 706 | 583 | 947 | 101 | 748 | 912 | |||
| setupStore | 16 | 6 | 49 | 9 | 15 | 37 | |||
| numNetworkReqs | 72 | 58 | 226 | 26 | 69 | 133 | |||
| Firefox | Browserify | Standard Home | uiStartup | 1338 | 1106 | 2282 | 215 | 1400 | 1875 |
| load | 1060 | 914 | 1315 | 97 | 1130 | 1239 | |||
| domContentLoaded | 1059 | 909 | 1315 | 97 | 1129 | 1239 | |||
| domInteractive | 58 | 31 | 214 | 36 | 69 | 128 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 56 | 21 | 208 | 47 | 68 | 171 | |||
| firstReactRender | 38 | 32 | 74 | 7 | 40 | 54 | |||
| getState | 16 | 6 | 110 | 20 | 11 | 92 | |||
| initialActions | 1 | 0 | 3 | 1 | 1 | 2 | |||
| loadScripts | 1034 | 897 | 1280 | 91 | 1097 | 1206 | |||
| setupStore | 16 | 6 | 250 | 28 | 11 | 47 | |||
| numNetworkReqs | 15 | 6 | 83 | 21 | 8 | 75 | |||
| Browserify | Power User Home | uiStartup | 2663 | 1576 | 3733 | 565 | 3056 | 3493 | |
| load | 1672 | 960 | 2683 | 525 | 2110 | 2495 | |||
| domContentLoaded | 1672 | 960 | 2682 | 525 | 2110 | 2495 | |||
| domInteractive | 158 | 31 | 1008 | 262 | 99 | 964 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 178 | 21 | 1103 | 204 | 212 | 485 | |||
| firstReactRender | 54 | 36 | 111 | 12 | 60 | 73 | |||
| getState | 145 | 63 | 961 | 95 | 157 | 236 | |||
| initialActions | 2 | 0 | 37 | 4 | 2 | 3 | |||
| loadScripts | 1594 | 946 | 2515 | 490 | 2024 | 2295 | |||
| setupStore | 35 | 4 | 304 | 58 | 31 | 160 | |||
| numNetworkReqs | 74 | 58 | 134 | 21 | 75 | 125 | |||
| Webpack | Standard Home | uiStartup | 1636 | 1372 | 2228 | 182 | 1749 | 2001 | |
| load | 1321 | 1119 | 1583 | 104 | 1397 | 1518 | |||
| domContentLoaded | 1321 | 1119 | 1583 | 104 | 1397 | 1518 | |||
| domInteractive | 75 | 28 | 210 | 39 | 106 | 142 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 66 | 20 | 291 | 49 | 81 | 159 | |||
| firstReactRender | 43 | 34 | 80 | 8 | 48 | 61 | |||
| getState | 24 | 6 | 225 | 37 | 15 | 139 | |||
| initialActions | 1 | 0 | 3 | 1 | 2 | 2 | |||
| loadScripts | 1288 | 1091 | 1508 | 98 | 1369 | 1483 | |||
| setupStore | 24 | 6 | 286 | 43 | 16 | 125 | |||
| numNetworkReqs | 15 | 6 | 84 | 21 | 8 | 77 | |||
| Webpack | Power User Home | uiStartup | 2651 | 1716 | 3767 | 516 | 3049 | 3397 | |
| load | 1799 | 1114 | 2591 | 451 | 2195 | 2486 | |||
| domContentLoaded | 1799 | 1113 | 2588 | 451 | 2194 | 2486 | |||
| domInteractive | 175 | 31 | 942 | 264 | 160 | 894 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 153 | 18 | 952 | 167 | 182 | 469 | |||
| firstReactRender | 56 | 38 | 130 | 16 | 61 | 99 | |||
| getState | 123 | 64 | 290 | 48 | 155 | 210 | |||
| initialActions | 4 | 1 | 51 | 9 | 2 | 34 | |||
| loadScripts | 1727 | 1099 | 2536 | 425 | 2105 | 2403 | |||
| setupStore | 62 | 6 | 987 | 127 | 47 | 331 | |||
| numNetworkReqs | 74 | 54 | 146 | 25 | 66 | 128 |
📊 Page Load Benchmark Results
Current Commit: ab40711 | 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: 733ms (±38ms) 🟢 | historical mean value: 727ms ⬆️ (historical data)
- firstContentfulPaint-> current mean value: 78ms (±13ms) 🟢 | historical mean value: 83ms ⬇️ (historical data)
📈 Detailed Results
| Metric | Mean | Std Dev | Min | Max | P95 | P99 |
|---|---|---|---|---|---|---|
| pageLoadTime | 1.05s | 40ms | 1.02s | 1.35s | 1.08s | 1.35s |
| domContentLoaded | 733ms | 38ms | 708ms | 1.02s | 751ms | 1.02s |
| firstPaint | 78ms | 13ms | 64ms | 192ms | 96ms | 192ms |
| firstContentfulPaint | 78ms | 13ms | 64ms | 192ms | 96ms | 192ms |
| largestContentfulPaint | 0ms | 0ms | 0ms | 0ms | 0ms | 0ms |
Bundle size diffs [🚨 Warning! Bundle size has increased!]
- background: 58 Bytes (0%)
- ui: 1.87 KiB (0.02%)
- common: 20 Bytes (0%)
Builds ready [ab40711]
- 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 (1263 ± 122 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 | 1050 | 1725 | 122 | 1342 | 1444 |
| load | 1029 | 856 | 1423 | 102 | 1070 | 1196 | |||
| domContentLoaded | 1022 | 851 | 1413 | 102 | 1063 | 1191 | |||
| domInteractive | 25 | 15 | 96 | 17 | 22 | 75 | |||
| firstPaint | 456 | 78 | 1188 | 365 | 886 | 1106 | |||
| backgroundConnect | 215 | 195 | 282 | 14 | 222 | 244 | |||
| firstReactRender | 46 | 29 | 93 | 14 | 51 | 80 | |||
| getState | 40 | 16 | 124 | 17 | 48 | 71 | |||
| initialActions | 1 | 0 | 4 | 1 | 1 | 3 | |||
| loadScripts | 814 | 651 | 1202 | 98 | 855 | 972 | |||
| setupStore | 12 | 6 | 26 | 5 | 15 | 23 | |||
| numNetworkReqs | 13 | 6 | 80 | 19 | 6 | 73 | |||
| Browserify | Power User Home | uiStartup | 1911 | 1556 | 2428 | 165 | 2000 | 2218 | |
| load | 1065 | 876 | 1357 | 124 | 1173 | 1261 | |||
| domContentLoaded | 1055 | 867 | 1349 | 124 | 1166 | 1248 | |||
| domInteractive | 29 | 17 | 126 | 23 | 26 | 96 | |||
| firstPaint | 587 | 91 | 1323 | 405 | 985 | 1236 | |||
| backgroundConnect | 248 | 197 | 674 | 94 | 234 | 552 | |||
| firstReactRender | 49 | 40 | 103 | 9 | 49 | 65 | |||
| getState | 208 | 144 | 742 | 106 | 202 | 308 | |||
| initialActions | 1 | 0 | 3 | 1 | 1 | 2 | |||
| loadScripts | 845 | 669 | 1143 | 122 | 953 | 1041 | |||
| setupStore | 16 | 7 | 48 | 8 | 16 | 34 | |||
| numNetworkReqs | 72 | 57 | 137 | 20 | 72 | 132 | |||
| Webpack | Standard Home | uiStartup | 804 | 670 | 1026 | 70 | 839 | 937 | |
| load | 647 | 570 | 806 | 64 | 693 | 780 | |||
| domContentLoaded | 642 | 566 | 801 | 64 | 688 | 775 | |||
| domInteractive | 25 | 16 | 104 | 19 | 23 | 79 | |||
| firstPaint | 250 | 87 | 756 | 171 | 238 | 658 | |||
| backgroundConnect | 10 | 5 | 45 | 7 | 11 | 28 | |||
| firstReactRender | 53 | 32 | 185 | 29 | 59 | 121 | |||
| getState | 30 | 14 | 99 | 13 | 39 | 51 | |||
| initialActions | 1 | 0 | 4 | 1 | 1 | 1 | |||
| loadScripts | 639 | 564 | 792 | 63 | 685 | 766 | |||
| setupStore | 11 | 5 | 33 | 5 | 13 | 20 | |||
| numNetworkReqs | 13 | 6 | 78 | 19 | 6 | 72 | |||
| Webpack | Power User Home | uiStartup | 1406 | 1076 | 1930 | 193 | 1566 | 1781 | |
| load | 721 | 591 | 1062 | 103 | 816 | 908 | |||
| domContentLoaded | 714 | 585 | 1055 | 103 | 809 | 899 | |||
| domInteractive | 30 | 16 | 117 | 24 | 27 | 103 | |||
| firstPaint | 253 | 101 | 888 | 172 | 246 | 688 | |||
| backgroundConnect | 97 | 7 | 655 | 173 | 102 | 577 | |||
| firstReactRender | 48 | 39 | 68 | 4 | 50 | 57 | |||
| getState | 187 | 143 | 765 | 81 | 189 | 255 | |||
| initialActions | 1 | 0 | 2 | 0 | 1 | 1 | |||
| loadScripts | 711 | 583 | 1044 | 102 | 804 | 897 | |||
| setupStore | 16 | 6 | 47 | 9 | 15 | 38 | |||
| numNetworkReqs | 71 | 57 | 146 | 21 | 68 | 132 | |||
| Firefox | Browserify | Standard Home | uiStartup | 1457 | 1174 | 2266 | 205 | 1554 | 1840 |
| load | 1145 | 970 | 1407 | 90 | 1203 | 1293 | |||
| domContentLoaded | 1144 | 965 | 1406 | 90 | 1203 | 1292 | |||
| domInteractive | 74 | 33 | 203 | 36 | 88 | 142 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 63 | 23 | 413 | 59 | 76 | 218 | |||
| firstReactRender | 43 | 34 | 113 | 11 | 45 | 64 | |||
| getState | 16 | 7 | 199 | 22 | 12 | 38 | |||
| initialActions | 1 | 0 | 3 | 1 | 2 | 2 | |||
| loadScripts | 1112 | 955 | 1292 | 79 | 1165 | 1256 | |||
| setupStore | 14 | 7 | 176 | 19 | 12 | 36 | |||
| numNetworkReqs | 15 | 6 | 85 | 21 | 8 | 74 | |||
| Browserify | Power User Home | uiStartup | 2791 | 1786 | 3753 | 559 | 3212 | 3601 | |
| load | 1712 | 1036 | 2733 | 536 | 2198 | 2530 | |||
| domContentLoaded | 1711 | 1036 | 2733 | 536 | 2198 | 2530 | |||
| domInteractive | 191 | 33 | 1194 | 300 | 141 | 984 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 220 | 29 | 1094 | 224 | 249 | 954 | |||
| firstReactRender | 58 | 38 | 107 | 11 | 63 | 77 | |||
| getState | 162 | 78 | 1217 | 144 | 168 | 261 | |||
| initialActions | 4 | 0 | 45 | 7 | 2 | 7 | |||
| loadScripts | 1632 | 974 | 2705 | 509 | 2099 | 2387 | |||
| setupStore | 63 | 5 | 1068 | 127 | 64 | 336 | |||
| numNetworkReqs | 74 | 50 | 134 | 22 | 68 | 125 | |||
| Webpack | Standard Home | uiStartup | 1529 | 1208 | 2830 | 224 | 1586 | 1968 | |
| load | 1271 | 1094 | 2611 | 180 | 1327 | 1484 | |||
| domContentLoaded | 1271 | 1093 | 2610 | 180 | 1326 | 1484 | |||
| domInteractive | 68 | 28 | 158 | 37 | 92 | 131 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 52 | 17 | 211 | 36 | 52 | 140 | |||
| firstReactRender | 40 | 32 | 93 | 8 | 41 | 54 | |||
| getState | 15 | 6 | 167 | 19 | 14 | 39 | |||
| initialActions | 1 | 0 | 3 | 1 | 2 | 2 | |||
| loadScripts | 1243 | 1074 | 2587 | 175 | 1299 | 1433 | |||
| setupStore | 18 | 5 | 203 | 26 | 15 | 81 | |||
| numNetworkReqs | 15 | 6 | 80 | 21 | 8 | 76 | |||
| Webpack | Power User Home | uiStartup | 2777 | 1833 | 4112 | 524 | 3176 | 3519 | |
| load | 1902 | 1160 | 2715 | 518 | 2379 | 2588 | |||
| domContentLoaded | 1901 | 1159 | 2715 | 518 | 2379 | 2587 | |||
| domInteractive | 278 | 29 | 1138 | 377 | 268 | 995 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 201 | 27 | 1250 | 277 | 202 | 988 | |||
| firstReactRender | 54 | 37 | 108 | 12 | 60 | 70 | |||
| getState | 135 | 66 | 956 | 95 | 158 | 229 | |||
| initialActions | 2 | 0 | 38 | 4 | 2 | 6 | |||
| loadScripts | 1796 | 1143 | 2651 | 491 | 2270 | 2510 | |||
| setupStore | 31 | 4 | 427 | 55 | 28 | 87 | |||
| numNetworkReqs | 72 | 46 | 130 | 21 | 68 | 118 |
📊 Page Load Benchmark Results
Current Commit: ab40711 | Date: 12/10/2025
📄 Localhost MetaMask Test Dapp
Samples: 100
Summary
- pageLoadTime-> current mean value: 1.05s (±41ms) 🟡 | historical mean value: 1.04s ⬆️ (historical data)
- domContentLoaded-> current mean value: 731ms (±37ms) 🟢 | historical mean value: 727ms ⬆️ (historical data)
- firstContentfulPaint-> current mean value: 78ms (±10ms) 🟢 | historical mean value: 83ms ⬇️ (historical data)
📈 Detailed Results
| Metric | Mean | Std Dev | Min | Max | P95 | P99 |
|---|---|---|---|---|---|---|
| pageLoadTime | 1.05s | 41ms | 1.02s | 1.35s | 1.10s | 1.35s |
| domContentLoaded | 731ms | 37ms | 709ms | 1.00s | 766ms | 1.00s |
| firstPaint | 78ms | 10ms | 60ms | 160ms | 84ms | 160ms |
| firstContentfulPaint | 78ms | 10ms | 60ms | 160ms | 84ms | 160ms |
| largestContentfulPaint | 0ms | 0ms | 0ms | 0ms | 0ms | 0ms |
Bundle size diffs [🚨 Warning! Bundle size has increased!]
- background: 58 Bytes (0%)
- ui: 1.87 KiB (0.02%)
- common: 20 Bytes (0%)
Builds ready [2fd2a75]
- 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 (1252 ± 117 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 | 1252 | 1011 | 1648 | 117 | 1306 | 1476 |
| load | 1020 | 855 | 1260 | 92 | 1068 | 1219 | |||
| domContentLoaded | 1014 | 850 | 1252 | 91 | 1060 | 1214 | |||
| domInteractive | 25 | 15 | 99 | 18 | 22 | 79 | |||
| firstPaint | 510 | 79 | 1279 | 401 | 987 | 1214 | |||
| backgroundConnect | 213 | 193 | 249 | 13 | 222 | 239 | |||
| firstReactRender | 43 | 29 | 96 | 13 | 46 | 71 | |||
| getState | 36 | 17 | 99 | 14 | 43 | 64 | |||
| initialActions | 1 | 0 | 3 | 1 | 1 | 2 | |||
| loadScripts | 808 | 649 | 1029 | 86 | 848 | 1005 | |||
| setupStore | 11 | 6 | 27 | 4 | 13 | 20 | |||
| numNetworkReqs | 13 | 6 | 85 | 20 | 6 | 75 | |||
| Browserify | Power User Home | uiStartup | 1933 | 1599 | 2392 | 155 | 2013 | 2234 | |
| load | 1100 | 890 | 1381 | 125 | 1208 | 1305 | |||
| domContentLoaded | 1089 | 882 | 1355 | 124 | 1199 | 1298 | |||
| domInteractive | 32 | 17 | 175 | 27 | 27 | 101 | |||
| firstPaint | 599 | 99 | 1397 | 437 | 1044 | 1257 | |||
| backgroundConnect | 248 | 202 | 698 | 88 | 237 | 508 | |||
| firstReactRender | 49 | 40 | 72 | 6 | 51 | 62 | |||
| getState | 213 | 143 | 757 | 110 | 210 | 378 | |||
| initialActions | 1 | 0 | 3 | 1 | 1 | 2 | |||
| loadScripts | 875 | 672 | 1140 | 120 | 978 | 1083 | |||
| setupStore | 15 | 8 | 42 | 6 | 15 | 33 | |||
| numNetworkReqs | 73 | 57 | 214 | 24 | 70 | 135 | |||
| Webpack | Standard Home | uiStartup | 815 | 675 | 1105 | 81 | 874 | 948 | |
| load | 663 | 574 | 891 | 73 | 704 | 798 | |||
| domContentLoaded | 658 | 570 | 884 | 72 | 699 | 790 | |||
| domInteractive | 26 | 16 | 98 | 19 | 21 | 82 | |||
| firstPaint | 271 | 79 | 895 | 219 | 223 | 794 | |||
| backgroundConnect | 11 | 6 | 35 | 5 | 12 | 25 | |||
| firstReactRender | 51 | 33 | 291 | 34 | 58 | 126 | |||
| getState | 27 | 14 | 66 | 10 | 35 | 44 | |||
| initialActions | 1 | 0 | 4 | 1 | 1 | 2 | |||
| loadScripts | 655 | 568 | 881 | 72 | 697 | 787 | |||
| setupStore | 11 | 5 | 34 | 5 | 12 | 19 | |||
| numNetworkReqs | 14 | 6 | 80 | 20 | 6 | 74 | |||
| Webpack | Power User Home | uiStartup | 1441 | 1107 | 1994 | 201 | 1618 | 1778 | |
| load | 740 | 596 | 1032 | 116 | 856 | 936 | |||
| domContentLoaded | 733 | 589 | 1013 | 115 | 849 | 928 | |||
| domInteractive | 31 | 17 | 114 | 25 | 26 | 110 | |||
| firstPaint | 315 | 94 | 1026 | 239 | 372 | 869 | |||
| backgroundConnect | 106 | 8 | 653 | 194 | 95 | 623 | |||
| firstReactRender | 49 | 39 | 85 | 6 | 51 | 61 | |||
| getState | 184 | 130 | 644 | 60 | 191 | 265 | |||
| initialActions | 1 | 0 | 2 | 1 | 1 | 2 | |||
| loadScripts | 730 | 587 | 1010 | 114 | 846 | 926 | |||
| setupStore | 16 | 6 | 57 | 10 | 15 | 37 | |||
| numNetworkReqs | 72 | 55 | 218 | 25 | 68 | 137 | |||
| Firefox | Browserify | Standard Home | uiStartup | 1322 | 1058 | 1944 | 191 | 1419 | 1719 |
| load | 1062 | 905 | 1433 | 98 | 1122 | 1260 | |||
| domContentLoaded | 1061 | 899 | 1432 | 98 | 1122 | 1260 | |||
| domInteractive | 61 | 30 | 167 | 32 | 84 | 124 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 47 | 21 | 188 | 36 | 50 | 141 | |||
| firstReactRender | 43 | 29 | 530 | 50 | 42 | 55 | |||
| getState | 13 | 7 | 211 | 21 | 12 | 30 | |||
| initialActions | 1 | 0 | 2 | 1 | 1 | 2 | |||
| loadScripts | 1037 | 889 | 1405 | 92 | 1094 | 1200 | |||
| setupStore | 14 | 6 | 109 | 16 | 10 | 43 | |||
| numNetworkReqs | 15 | 6 | 78 | 21 | 7 | 74 | |||
| Browserify | Power User Home | uiStartup | 2641 | 1727 | 3979 | 527 | 3057 | 3343 | |
| load | 1678 | 947 | 2558 | 502 | 2110 | 2367 | |||
| domContentLoaded | 1678 | 947 | 2557 | 502 | 2110 | 2367 | |||
| domInteractive | 154 | 29 | 1094 | 255 | 93 | 964 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 193 | 26 | 1201 | 234 | 211 | 1077 | |||
| firstReactRender | 57 | 35 | 198 | 19 | 58 | 97 | |||
| getState | 139 | 77 | 322 | 47 | 160 | 233 | |||
| initialActions | 2 | 0 | 44 | 4 | 2 | 7 | |||
| loadScripts | 1565 | 932 | 2335 | 459 | 1962 | 2266 | |||
| setupStore | 54 | 5 | 1054 | 124 | 44 | 238 | |||
| numNetworkReqs | 75 | 56 | 133 | 21 | 86 | 125 | |||
| Webpack | Standard Home | uiStartup | 1576 | 1315 | 2231 | 169 | 1660 | 1858 | |
| load | 1300 | 1097 | 1865 | 123 | 1354 | 1509 | |||
| domContentLoaded | 1300 | 1097 | 1865 | 123 | 1354 | 1508 | |||
| domInteractive | 75 | 27 | 214 | 40 | 103 | 142 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 58 | 19 | 166 | 38 | 69 | 141 | |||
| firstReactRender | 43 | 35 | 101 | 10 | 45 | 56 | |||
| getState | 18 | 7 | 167 | 22 | 16 | 46 | |||
| initialActions | 1 | 0 | 2 | 1 | 2 | 2 | |||
| loadScripts | 1270 | 1066 | 1798 | 113 | 1324 | 1485 | |||
| setupStore | 17 | 6 | 108 | 18 | 14 | 62 | |||
| numNetworkReqs | 15 | 6 | 86 | 21 | 9 | 75 | |||
| Webpack | Power User Home | uiStartup | 2711 | 1769 | 3845 | 508 | 3129 | 3506 | |
| load | 1879 | 1205 | 2824 | 498 | 2302 | 2647 | |||
| domContentLoaded | 1879 | 1205 | 2824 | 498 | 2302 | 2647 | |||
| domInteractive | 187 | 29 | 1126 | 295 | 116 | 977 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 194 | 27 | 1170 | 242 | 209 | 1011 | |||
| firstReactRender | 57 | 36 | 118 | 14 | 63 | 84 | |||
| getState | 135 | 57 | 985 | 98 | 153 | 242 | |||
| initialActions | 3 | 1 | 42 | 5 | 3 | 7 | |||
| loadScripts | 1773 | 1184 | 2801 | 455 | 2159 | 2578 | |||
| setupStore | 34 | 5 | 370 | 56 | 33 | 162 | |||
| numNetworkReqs | 75 | 55 | 132 | 22 | 79 | 129 |
📊 Page Load Benchmark Results
Current Commit: 2fd2a75 | Date: 12/11/2025
📄 Localhost MetaMask Test Dapp
Samples: 100
Summary
- pageLoadTime-> current mean value: 1.04s (±39ms) 🟡 | historical mean value: 1.03s ⬆️ (historical data)
- domContentLoaded-> current mean value: 724ms (±36ms) 🟢 | 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 | 39ms | 1.01s | 1.34s | 1.05s | 1.34s |
| domContentLoaded | 724ms | 36ms | 702ms | 1.00s | 736ms | 1.00s |
| firstPaint | 76ms | 12ms | 60ms | 180ms | 84ms | 180ms |
| firstContentfulPaint | 76ms | 12ms | 60ms | 180ms | 84ms | 180ms |
| largestContentfulPaint | 0ms | 0ms | 0ms | 0ms | 0ms | 0ms |
Bundle size diffs [🚨 Warning! Bundle size has increased!]
- background: 58 Bytes (0%)
- ui: 1.87 KiB (0.02%)
- common: 20 Bytes (0%)
Builds ready [a8d627e]
- 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 (1301 ± 124 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 | 1301 | 1033 | 1794 | 124 | 1382 | 1444 |
| load | 1064 | 868 | 1502 | 108 | 1131 | 1224 | |||
| domContentLoaded | 1057 | 861 | 1493 | 108 | 1123 | 1218 | |||
| domInteractive | 28 | 16 | 112 | 21 | 23 | 89 | |||
| firstPaint | 585 | 82 | 1515 | 426 | 1051 | 1211 | |||
| backgroundConnect | 218 | 198 | 265 | 13 | 225 | 248 | |||
| firstReactRender | 43 | 31 | 88 | 11 | 46 | 67 | |||
| getState | 38 | 17 | 118 | 19 | 44 | 95 | |||
| initialActions | 1 | 0 | 4 | 1 | 1 | 3 | |||
| loadScripts | 846 | 662 | 1262 | 102 | 900 | 1012 | |||
| setupStore | 11 | 5 | 28 | 4 | 12 | 20 | |||
| numNetworkReqs | 13 | 6 | 80 | 20 | 6 | 73 | |||
| Browserify | Power User Home | uiStartup | 1937 | 1578 | 2678 | 193 | 2008 | 2291 | |
| load | 1091 | 914 | 1401 | 113 | 1167 | 1322 | |||
| domContentLoaded | 1081 | 909 | 1394 | 113 | 1156 | 1308 | |||
| domInteractive | 34 | 18 | 277 | 34 | 29 | 107 | |||
| firstPaint | 574 | 111 | 1389 | 413 | 1040 | 1213 | |||
| backgroundConnect | 245 | 199 | 621 | 83 | 230 | 520 | |||
| firstReactRender | 49 | 39 | 79 | 6 | 50 | 63 | |||
| getState | 219 | 146 | 733 | 116 | 214 | 673 | |||
| initialActions | 1 | 0 | 6 | 1 | 1 | 2 | |||
| loadScripts | 866 | 707 | 1178 | 112 | 945 | 1098 | |||
| setupStore | 16 | 7 | 53 | 8 | 15 | 36 | |||
| numNetworkReqs | 71 | 57 | 225 | 23 | 66 | 122 | |||
| Webpack | Standard Home | uiStartup | 814 | 684 | 1132 | 86 | 859 | 982 | |
| load | 657 | 579 | 934 | 76 | 700 | 806 | |||
| domContentLoaded | 652 | 573 | 926 | 75 | 693 | 800 | |||
| domInteractive | 26 | 16 | 99 | 19 | 23 | 85 | |||
| firstPaint | 232 | 83 | 807 | 170 | 216 | 767 | |||
| backgroundConnect | 11 | 5 | 36 | 6 | 14 | 29 | |||
| firstReactRender | 49 | 32 | 187 | 24 | 50 | 96 | |||
| getState | 30 | 14 | 114 | 15 | 38 | 53 | |||
| initialActions | 1 | 0 | 6 | 1 | 1 | 2 | |||
| loadScripts | 649 | 570 | 913 | 74 | 691 | 797 | |||
| setupStore | 11 | 7 | 31 | 4 | 13 | 17 | |||
| numNetworkReqs | 13 | 6 | 87 | 20 | 6 | 70 | |||
| Webpack | Power User Home | uiStartup | 1399 | 1090 | 2000 | 182 | 1497 | 1702 | |
| load | 745 | 596 | 953 | 99 | 843 | 921 | |||
| domContentLoaded | 738 | 589 | 945 | 98 | 834 | 910 | |||
| domInteractive | 31 | 16 | 118 | 23 | 27 | 101 | |||
| firstPaint | 285 | 94 | 890 | 199 | 284 | 785 | |||
| backgroundConnect | 63 | 7 | 661 | 134 | 39 | 496 | |||
| firstReactRender | 51 | 41 | 81 | 6 | 53 | 62 | |||
| getState | 191 | 141 | 703 | 62 | 193 | 267 | |||
| initialActions | 1 | 0 | 3 | 1 | 1 | 1 | |||
| loadScripts | 735 | 587 | 942 | 97 | 831 | 905 | |||
| setupStore | 15 | 7 | 44 | 8 | 14 | 37 | |||
| numNetworkReqs | 72 | 55 | 238 | 32 | 66 | 139 | |||
| Firefox | Browserify | Standard Home | uiStartup | 1426 | 1110 | 2547 | 238 | 1499 | 1885 |
| load | 1135 | 921 | 2254 | 176 | 1185 | 1341 | |||
| domContentLoaded | 1134 | 921 | 2253 | 176 | 1185 | 1341 | |||
| domInteractive | 83 | 32 | 1216 | 122 | 90 | 155 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 57 | 20 | 233 | 46 | 67 | 179 | |||
| firstReactRender | 40 | 31 | 73 | 8 | 40 | 58 | |||
| getState | 14 | 7 | 102 | 14 | 13 | 35 | |||
| initialActions | 1 | 0 | 2 | 1 | 2 | 2 | |||
| loadScripts | 1103 | 904 | 2236 | 170 | 1155 | 1293 | |||
| setupStore | 15 | 6 | 155 | 17 | 13 | 36 | |||
| numNetworkReqs | 16 | 6 | 90 | 22 | 8 | 80 | |||
| Browserify | Power User Home | uiStartup | 2612 | 1594 | 3491 | 551 | 3124 | 3336 | |
| load | 1644 | 957 | 2483 | 512 | 2118 | 2410 | |||
| domContentLoaded | 1643 | 957 | 2483 | 512 | 2118 | 2409 | |||
| domInteractive | 121 | 25 | 1122 | 211 | 78 | 899 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 167 | 19 | 1123 | 192 | 206 | 444 | |||
| firstReactRender | 54 | 34 | 100 | 11 | 59 | 73 | |||
| getState | 132 | 67 | 279 | 45 | 153 | 226 | |||
| initialActions | 2 | 0 | 38 | 4 | 2 | 3 | |||
| loadScripts | 1558 | 938 | 2399 | 477 | 2014 | 2241 | |||
| setupStore | 49 | 4 | 427 | 80 | 54 | 249 | |||
| numNetworkReqs | 74 | 57 | 137 | 21 | 81 | 124 | |||
| Webpack | Standard Home | uiStartup | 1559 | 1313 | 2441 | 176 | 1640 | 1910 | |
| load | 1289 | 1091 | 1640 | 107 | 1360 | 1517 | |||
| domContentLoaded | 1289 | 1091 | 1640 | 107 | 1360 | 1517 | |||
| domInteractive | 74 | 27 | 225 | 40 | 98 | 132 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 58 | 20 | 199 | 39 | 62 | 154 | |||
| firstReactRender | 41 | 33 | 97 | 8 | 43 | 53 | |||
| getState | 16 | 6 | 96 | 17 | 14 | 61 | |||
| initialActions | 1 | 0 | 2 | 1 | 2 | 2 | |||
| loadScripts | 1260 | 1076 | 1578 | 100 | 1322 | 1481 | |||
| setupStore | 17 | 6 | 239 | 28 | 12 | 66 | |||
| numNetworkReqs | 15 | 6 | 87 | 21 | 9 | 76 | |||
| Webpack | Power User Home | uiStartup | 2891 | 1829 | 4564 | 569 | 3259 | 3601 | |
| load | 1929 | 1215 | 3583 | 542 | 2412 | 2711 | |||
| domContentLoaded | 1928 | 1215 | 3582 | 542 | 2411 | 2711 | |||
| domInteractive | 237 | 32 | 1164 | 337 | 278 | 990 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 214 | 33 | 1196 | 280 | 210 | 996 | |||
| firstReactRender | 62 | 40 | 189 | 22 | 66 | 89 | |||
| getState | 137 | 62 | 452 | 65 | 172 | 244 | |||
| initialActions | 2 | 1 | 30 | 3 | 2 | 7 | |||
| loadScripts | 1808 | 1188 | 3038 | 491 | 2292 | 2538 | |||
| setupStore | 52 | 5 | 1058 | 150 | 32 | 200 | |||
| numNetworkReqs | 75 | 48 | 148 | 25 | 68 | 128 |
📊 Page Load Benchmark Results
Current Commit: a8d627e | Date: 12/11/2025
📄 Localhost MetaMask Test Dapp
Samples: 100
Summary
- pageLoadTime-> current mean value: 1.05s (±41ms) 🟡 | historical mean value: 1.03s ⬆️ (historical data)
- domContentLoaded-> current mean value: 733ms (±39ms) 🟢 | historical mean value: 719ms ⬆️ (historical data)
- firstContentfulPaint-> current mean value: 79ms (±15ms) 🟢 | historical mean value: 76ms ⬆️ (historical data)
📈 Detailed Results
| Metric | Mean | Std Dev | Min | Max | P95 | P99 |
|---|---|---|---|---|---|---|
| pageLoadTime | 1.05s | 41ms | 1.02s | 1.38s | 1.07s | 1.38s |
| domContentLoaded | 733ms | 39ms | 708ms | 1.05s | 754ms | 1.05s |
| firstPaint | 79ms | 15ms | 64ms | 212ms | 92ms | 212ms |
| firstContentfulPaint | 79ms | 15ms | 64ms | 212ms | 92ms | 212ms |
| largestContentfulPaint | 0ms | 0ms | 0ms | 0ms | 0ms | 0ms |
Bundle size diffs [🚨 Warning! Bundle size has increased!]
- background: 58 Bytes (0%)
- ui: 1.87 KiB (0.02%)
- common: 20 Bytes (0%)
Builds ready [ef1d1d9]
- 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 (1301 ± 112 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 | 1301 | 1072 | 1712 | 112 | 1380 | 1513 |
| load | 1052 | 859 | 1417 | 94 | 1109 | 1206 | |||
| domContentLoaded | 1045 | 854 | 1410 | 93 | 1100 | 1193 | |||
| domInteractive | 29 | 15 | 140 | 24 | 23 | 98 | |||
| firstPaint | 545 | 81 | 1278 | 401 | 1026 | 1130 | |||
| backgroundConnect | 221 | 198 | 285 | 14 | 228 | 249 | |||
| firstReactRender | 50 | 31 | 146 | 19 | 54 | 89 | |||
| getState | 39 | 18 | 127 | 22 | 44 | 97 | |||
| initialActions | 1 | 0 | 7 | 1 | 1 | 2 | |||
| loadScripts | 831 | 660 | 1194 | 90 | 885 | 974 | |||
| setupStore | 12 | 6 | 34 | 5 | 13 | 25 | |||
| numNetworkReqs | 13 | 6 | 85 | 20 | 6 | 74 | |||
| Browserify | Power User Home | uiStartup | 1884 | 1548 | 2341 | 159 | 1974 | 2201 | |
| load | 1067 | 883 | 1362 | 126 | 1175 | 1290 | |||
| domContentLoaded | 1057 | 873 | 1349 | 126 | 1164 | 1283 | |||
| domInteractive | 30 | 16 | 118 | 22 | 27 | 98 | |||
| firstPaint | 515 | 97 | 1378 | 388 | 934 | 1215 | |||
| backgroundConnect | 259 | 197 | 683 | 110 | 235 | 562 | |||
| firstReactRender | 48 | 40 | 78 | 5 | 49 | 57 | |||
| getState | 192 | 141 | 724 | 79 | 192 | 245 | |||
| initialActions | 1 | 0 | 2 | 1 | 1 | 2 | |||
| loadScripts | 848 | 669 | 1143 | 123 | 942 | 1065 | |||
| setupStore | 14 | 8 | 37 | 6 | 14 | 32 | |||
| numNetworkReqs | 72 | 58 | 206 | 27 | 67 | 134 | |||
| Webpack | Standard Home | uiStartup | 815 | 677 | 998 | 79 | 871 | 970 | |
| load | 659 | 573 | 856 | 71 | 711 | 796 | |||
| domContentLoaded | 654 | 568 | 852 | 70 | 706 | 789 | |||
| domInteractive | 26 | 16 | 96 | 19 | 23 | 86 | |||
| firstPaint | 231 | 86 | 773 | 162 | 222 | 657 | |||
| backgroundConnect | 11 | 6 | 36 | 7 | 12 | 29 | |||
| firstReactRender | 55 | 34 | 215 | 37 | 57 | 170 | |||
| getState | 27 | 15 | 49 | 9 | 35 | 47 | |||
| initialActions | 1 | 0 | 3 | 1 | 1 | 2 | |||
| loadScripts | 651 | 566 | 849 | 69 | 702 | 781 | |||
| setupStore | 11 | 5 | 28 | 4 | 13 | 19 | |||
| numNetworkReqs | 13 | 6 | 76 | 19 | 6 | 71 | |||
| Webpack | Power User Home | uiStartup | 1441 | 1134 | 2144 | 207 | 1605 | 1806 | |
| load | 726 | 592 | 1054 | 102 | 783 | 925 | |||
| domContentLoaded | 720 | 587 | 1049 | 101 | 779 | 916 | |||
| domInteractive | 31 | 18 | 124 | 25 | 25 | 112 | |||
| firstPaint | 258 | 98 | 963 | 189 | 264 | 706 | |||
| backgroundConnect | 100 | 7 | 662 | 181 | 76 | 573 | |||
| firstReactRender | 50 | 41 | 73 | 5 | 52 | 59 | |||
| getState | 181 | 144 | 352 | 35 | 186 | 256 | |||
| initialActions | 1 | 0 | 3 | 1 | 1 | 2 | |||
| loadScripts | 717 | 584 | 1040 | 100 | 776 | 913 | |||
| setupStore | 14 | 6 | 43 | 7 | 14 | 36 | |||
| numNetworkReqs | 70 | 58 | 137 | 18 | 66 | 124 | |||
| Firefox | Browserify | Standard Home | uiStartup | 1374 | 1091 | 2483 | 235 | 1437 | 1767 |
| load | 1107 | 904 | 2151 | 183 | 1164 | 1346 | |||
| domContentLoaded | 1106 | 904 | 2151 | 184 | 1163 | 1346 | |||
| domInteractive | 84 | 32 | 1097 | 136 | 86 | 145 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 51 | 22 | 212 | 39 | 59 | 139 | |||
| firstReactRender | 40 | 31 | 70 | 9 | 42 | 62 | |||
| getState | 14 | 7 | 107 | 13 | 11 | 35 | |||
| initialActions | 1 | 0 | 3 | 1 | 1 | 2 | |||
| loadScripts | 1079 | 887 | 2131 | 178 | 1131 | 1268 | |||
| setupStore | 14 | 6 | 164 | 18 | 11 | 39 | |||
| numNetworkReqs | 15 | 6 | 82 | 21 | 8 | 76 | |||
| Browserify | Power User Home | uiStartup | 2600 | 1697 | 3871 | 522 | 2992 | 3454 | |
| load | 1594 | 931 | 2642 | 504 | 2023 | 2471 | |||
| domContentLoaded | 1593 | 930 | 2642 | 504 | 2023 | 2470 | |||
| domInteractive | 120 | 31 | 1031 | 208 | 89 | 940 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 201 | 24 | 1096 | 235 | 217 | 928 | |||
| firstReactRender | 54 | 37 | 107 | 12 | 60 | 80 | |||
| getState | 135 | 63 | 304 | 50 | 164 | 245 | |||
| initialActions | 2 | 0 | 31 | 3 | 2 | 3 | |||
| loadScripts | 1490 | 916 | 2498 | 460 | 1896 | 2269 | |||
| setupStore | 55 | 4 | 999 | 118 | 46 | 286 | |||
| numNetworkReqs | 74 | 53 | 124 | 19 | 87 | 117 | |||
| Webpack | Standard Home | uiStartup | 1591 | 1308 | 2289 | 178 | 1653 | 2027 | |
| load | 1295 | 1124 | 1682 | 108 | 1352 | 1516 | |||
| domContentLoaded | 1295 | 1123 | 1682 | 108 | 1351 | 1516 | |||
| domInteractive | 80 | 27 | 222 | 39 | 105 | 141 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 59 | 18 | 224 | 40 | 68 | 157 | |||
| firstReactRender | 43 | 34 | 102 | 9 | 45 | 58 | |||
| getState | 20 | 6 | 178 | 28 | 14 | 66 | |||
| initialActions | 1 | 0 | 3 | 0 | 2 | 2 | |||
| loadScripts | 1267 | 1108 | 1649 | 102 | 1315 | 1487 | |||
| setupStore | 15 | 5 | 117 | 17 | 13 | 44 | |||
| numNetworkReqs | 15 | 6 | 85 | 21 | 8 | 76 | |||
| Webpack | Power User Home | uiStartup | 2719 | 1759 | 4048 | 530 | 3118 | 3488 | |
| load | 1861 | 1153 | 2746 | 473 | 2306 | 2521 | |||
| domContentLoaded | 1861 | 1153 | 2746 | 473 | 2305 | 2521 | |||
| domInteractive | 220 | 30 | 1123 | 333 | 180 | 1006 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 166 | 27 | 1155 | 214 | 185 | 957 | |||
| firstReactRender | 56 | 36 | 106 | 13 | 61 | 94 | |||
| getState | 127 | 66 | 266 | 48 | 151 | 245 | |||
| initialActions | 2 | 0 | 39 | 4 | 2 | 7 | |||
| loadScripts | 1775 | 1139 | 2609 | 458 | 2235 | 2454 | |||
| setupStore | 39 | 5 | 392 | 65 | 45 | 119 | |||
| numNetworkReqs | 75 | 51 | 135 | 23 | 83 | 128 |
📊 Page Load Benchmark Results
Current Commit: ef1d1d9 | Date: 12/12/2025
📄 Localhost MetaMask Test Dapp
Samples: 100
Summary
- pageLoadTime-> current mean value: 1.03s (±38ms) 🟡 | historical mean value: 1.04s ⬇️ (historical data)
- domContentLoaded-> current mean value: 720ms (±35ms) 🟢 | historical mean value: 724ms ⬇️ (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.03s | 38ms | 1.01s | 1.30s | 1.06s | 1.30s |
| domContentLoaded | 720ms | 35ms | 699ms | 983ms | 735ms | 983ms |
| firstPaint | 76ms | 10ms | 56ms | 156ms | 84ms | 156ms |
| firstContentfulPaint | 76ms | 10ms | 56ms | 156ms | 84ms | 156ms |
| largestContentfulPaint | 0ms | 0ms | 0ms | 0ms | 0ms | 0ms |
Bundle size diffs [🚀 Bundle size reduced!]
- background: -393 Bytes (-0.01%)
- ui: 4.44 KiB (0.06%)
- common: -1.11 KiB (-0.01%)
Builds ready [88b78a0]
- 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 (1405 ± 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 | 1405 | 1133 | 1687 | 111 | 1474 | 1607 |
| load | 1127 | 935 | 1344 | 102 | 1195 | 1317 | |||
| domContentLoaded | 1119 | 927 | 1334 | 102 | 1188 | 1312 | |||
| domInteractive | 30 | 17 | 111 | 23 | 26 | 102 | |||
| firstPaint | 651 | 90 | 1339 | 457 | 1148 | 1263 | |||
| backgroundConnect | 243 | 221 | 324 | 16 | 252 | 268 | |||
| firstReactRender | 57 | 36 | 181 | 24 | 63 | 96 | |||
| getState | 46 | 17 | 156 | 26 | 56 | 109 | |||
| initialActions | 1 | 0 | 8 | 1 | 1 | 5 | |||
| loadScripts | 884 | 709 | 1089 | 97 | 946 | 1057 | |||
| setupStore | 13 | 6 | 42 | 6 | 15 | 26 | |||
| numNetworkReqs | 13 | 6 | 80 | 19 | 6 | 67 | |||
| Browserify | Power User Home | uiStartup | 1923 | 1578 | 2583 | 180 | 1981 | 2325 | |
| load | 1087 | 891 | 1365 | 119 | 1185 | 1306 | |||
| domContentLoaded | 1077 | 880 | 1344 | 119 | 1172 | 1293 | |||
| domInteractive | 34 | 17 | 263 | 34 | 27 | 119 | |||
| firstPaint | 638 | 115 | 1363 | 427 | 1060 | 1293 | |||
| backgroundConnect | 249 | 206 | 613 | 83 | 239 | 558 | |||
| firstReactRender | 50 | 42 | 92 | 6 | 52 | 57 | |||
| getState | 212 | 150 | 772 | 106 | 210 | 264 | |||
| initialActions | 1 | 0 | 4 | 1 | 1 | 2 | |||
| loadScripts | 861 | 676 | 1126 | 117 | 959 | 1089 | |||
| setupStore | 16 | 6 | 40 | 7 | 15 | 36 | |||
| numNetworkReqs | 72 | 57 | 196 | 22 | 69 | 136 | |||
| Webpack | Standard Home | uiStartup | 817 | 682 | 990 | 73 | 861 | 960 | |
| load | 658 | 575 | 870 | 73 | 706 | 810 | |||
| domContentLoaded | 652 | 570 | 862 | 73 | 701 | 805 | |||
| domInteractive | 26 | 15 | 105 | 19 | 23 | 79 | |||
| firstPaint | 251 | 83 | 868 | 177 | 248 | 699 | |||
| backgroundConnect | 13 | 5 | 93 | 12 | 13 | 36 | |||
| firstReactRender | 53 | 33 | 157 | 25 | 62 | 119 | |||
| getState | 31 | 15 | 121 | 16 | 38 | 61 | |||
| initialActions | 1 | 0 | 2 | 1 | 1 | 1 | |||
| loadScripts | 649 | 568 | 860 | 72 | 698 | 800 | |||
| setupStore | 11 | 5 | 21 | 3 | 12 | 18 | |||
| numNetworkReqs | 13 | 6 | 79 | 20 | 6 | 73 | |||
| Webpack | Power User Home | uiStartup | 1355 | 1052 | 1956 | 184 | 1465 | 1691 | |
| load | 701 | 589 | 1063 | 96 | 717 | 903 | |||
| domContentLoaded | 694 | 582 | 1047 | 95 | 711 | 896 | |||
| domInteractive | 29 | 16 | 123 | 25 | 24 | 100 | |||
| firstPaint | 298 | 82 | 883 | 227 | 295 | 865 | |||
| backgroundConnect | 82 | 7 | 657 | 126 | 106 | 356 | |||
| firstReactRender | 49 | 40 | 80 | 5 | 51 | 57 | |||
| getState | 170 | 140 | 265 | 25 | 178 | 232 | |||
| initialActions | 1 | 0 | 3 | 1 | 1 | 2 | |||
| loadScripts | 691 | 579 | 1038 | 94 | 709 | 889 | |||
| setupStore | 16 | 8 | 38 | 9 | 14 | 35 | |||
| numNetworkReqs | 71 | 56 | 221 | 25 | 66 | 133 | |||
| Firefox | Browserify | Standard Home | uiStartup | 1371 | 1071 | 2520 | 265 | 1451 | 1885 |
| load | 1090 | 899 | 2101 | 195 | 1161 | 1299 | |||
| domContentLoaded | 1090 | 899 | 2100 | 195 | 1160 | 1299 | |||
| domInteractive | 77 | 32 | 927 | 123 | 88 | 173 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 52 | 20 | 219 | 44 | 55 | 185 | |||
| firstReactRender | 41 | 31 | 73 | 10 | 44 | 61 | |||
| getState | 15 | 6 | 194 | 21 | 13 | 36 | |||
| initialActions | 1 | 0 | 2 | 1 | 2 | 2 | |||
| loadScripts | 1061 | 882 | 2077 | 187 | 1115 | 1261 | |||
| setupStore | 16 | 5 | 123 | 19 | 14 | 51 | |||
| numNetworkReqs | 15 | 6 | 88 | 21 | 8 | 78 | |||
| Browserify | Power User Home | uiStartup | 2568 | 1609 | 3279 | 467 | 2931 | 3206 | |
| load | 1610 | 964 | 2352 | 458 | 1980 | 2270 | |||
| domContentLoaded | 1610 | 964 | 2352 | 458 | 1980 | 2270 | |||
| domInteractive | 123 | 35 | 964 | 204 | 89 | 823 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 195 | 27 | 1046 | 206 | 199 | 872 | |||
| firstReactRender | 53 | 35 | 77 | 9 | 58 | 66 | |||
| getState | 128 | 68 | 875 | 84 | 143 | 198 | |||
| initialActions | 2 | 1 | 8 | 1 | 2 | 3 | |||
| loadScripts | 1517 | 948 | 2303 | 427 | 1873 | 2126 | |||
| setupStore | 66 | 5 | 354 | 94 | 71 | 310 | |||
| numNetworkReqs | 75 | 49 | 138 | 25 | 68 | 129 | |||
| Webpack | Standard Home | uiStartup | 1565 | 1329 | 2133 | 166 | 1667 | 1956 | |
| load | 1293 | 1100 | 1718 | 107 | 1345 | 1500 | |||
| domContentLoaded | 1293 | 1100 | 1718 | 107 | 1344 | 1500 | |||
| domInteractive | 82 | 28 | 189 | 37 | 113 | 140 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 60 | 18 | 223 | 41 | 72 | 148 | |||
| firstReactRender | 42 | 34 | 95 | 8 | 44 | 56 | |||
| getState | 15 | 7 | 128 | 18 | 13 | 37 | |||
| initialActions | 1 | 0 | 3 | 0 | 2 | 2 | |||
| loadScripts | 1262 | 1078 | 1654 | 97 | 1316 | 1434 | |||
| setupStore | 17 | 6 | 272 | 29 | 15 | 51 | |||
| numNetworkReqs | 15 | 6 | 86 | 21 | 8 | 72 | |||
| Webpack | Power User Home | uiStartup | 2606 | 1689 | 3869 | 527 | 3006 | 3405 | |
| load | 1832 | 1102 | 2847 | 490 | 2295 | 2506 | |||
| domContentLoaded | 1832 | 1102 | 2846 | 490 | 2295 | 2506 | |||
| domInteractive | 205 | 29 | 1008 | 317 | 143 | 967 | |||
| firstPaint | - | - | - | - | - | - | |||
| backgroundConnect | 140 | 28 | 1058 | 162 | 183 | 279 | |||
| firstReactRender | 54 | 34 | 105 | 12 | 57 | 85 | |||
| getState | 134 | 69 | 231 | 45 | 175 | 227 | |||
| initialActions | 2 | 0 | 13 | 2 | 2 | 7 | |||
| loadScripts | 1763 | 1074 | 2739 | 470 | 2187 | 2477 | |||
| setupStore | 41 | 4 | 326 | 66 | 33 | 219 | |||
| numNetworkReqs | 71 | 48 | 132 | 24 | 67 | 123 |
📊 Page Load Benchmark Results
Current Commit: 88b78a0 | Date: 12/12/2025
📄 Localhost MetaMask Test Dapp
Samples: 100
Summary
- pageLoadTime-> current mean value: 1.06s (±42ms) 🟡 | historical mean value: 1.03s ⬆️ (historical data)
- domContentLoaded-> current mean value: 739ms (±39ms) 🟢 | historical mean value: 720ms ⬆️ (historical data)
- firstContentfulPaint-> current mean value: 80ms (±11ms) 🟢 | historical mean value: 76ms ⬆️ (historical data)
📈 Detailed Results
| Metric | Mean | Std Dev | Min | Max | P95 | P99 |
|---|---|---|---|---|---|---|
| pageLoadTime | 1.06s | 42ms | 1.03s | 1.39s | 1.09s | 1.39s |
| domContentLoaded | 739ms | 39ms | 716ms | 1.04s | 765ms | 1.04s |
| firstPaint | 80ms | 11ms | 64ms | 184ms | 88ms | 184ms |
| firstContentfulPaint | 80ms | 11ms | 64ms | 184ms | 88ms | 184ms |
| largestContentfulPaint | 0ms | 0ms | 0ms | 0ms | 0ms | 0ms |
Bundle size diffs [🚀 Bundle size reduced!]
- background: -393 Bytes (-0.01%)
- ui: 4.44 KiB (0.06%)
- common: -1.11 KiB (-0.01%)