Skip to content

Conversation

@Gudahtt
Copy link
Member

@Gudahtt Gudahtt commented Jul 17, 2025

Description

Add two buttons to the "Developer Options" settings page to test that captured Sentry errors work correctly (one button for the UI, one for the background).

We have two similar buttons already for unhandled errors, but not for explicitly handled errors.

Open in GitHub Codespaces

Changelog

CHANGELOG entry: null

Related issues

These will assist with manual testing for this bug: #34371

Manual testing steps

  1. Create a build with the following environment variables set in .metamaskrc:
  • SENTRY_DSN and SENTRY_DSN_DEV set to your personal Sentry DSN (see these docs for help setting that up)
  • ENABLE_SETTINGS_PAGE_DEV_OPTIONS set to true
  1. Install the extension, ensuring to opt-in to metrics during onboarding
  2. Navigate to the Settings => Developer Options page
  3. Click the "Capture UI Error" and "Capture Background Error" buttons, monitoring in the Network tab of dev tools for each process to ensure it was sent to Sentry correctly (and/or check on your Sentry dashboard).

Screenshots/Recordings

Before

N/A

After

Screen.Recording.2025-07-17.at.20.28.45.mov

Pre-merge author checklist

Pre-merge reviewer checklist

  • I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed).
  • I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.

@metamaskbot
Copy link
Collaborator

Builds ready [765440f]
UI Startup Metrics (1248 ± 67 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyHomeuiStartup1248111316066712811341
load107894614957111181156
domContentLoaded106994114476811101148
domInteractive18135671737
firstPaint69280145343911001143
backgroundConnect21319636318214231
firstReactRender2315111112338
getState10360101132
initialActions30205317
loadScripts865735124369908953
setupStore73172812
WebpackHomeuiStartup25512060285416726572807
load20531555232617621972268
domContentLoaded20411548231817821792261
domInteractive211393161768
firstPaint190672066201211323
backgroundConnect46122856138254
firstReactRender1759131867229276
getState164252301629
initialActions10220422737
loadScripts20361545231317821762258
setupStore186208231937
FirefoxBrowserifyHomeuiStartup15991361219015116871889
load1367115117239514261519
domContentLoaded1366115017239514261519
domInteractive1163850574119304
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect3015165173157
firstReactRender30227093162
getState152268371359
initialActions5116516314
loadScripts1341113516829213991496
setupStore184189369109
WebpackHomeuiStartup17941560268220618792146
load14991317198913915781799
domContentLoaded14981317198813915781798
domInteractive101334396894305
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect3317218243477
firstReactRender53437065664
getState132253271338
initialActions11124638721
loadScripts14741287194013615551759
setupStore2352575116179
cc: @HowardBraham
Benchmark value 1249 exceeds gate value 1234 for chrome browserify home mean uiStartup
Benchmark value 1079 exceeds gate value 1070 for chrome browserify home mean load
Benchmark value 1069 exceeds gate value 1061 for chrome browserify home mean domContentLoaded
Benchmark value 213 exceeds gate value 10 for chrome browserify home mean backgroundConnect
Benchmark value 4 exceeds gate value 1 for chrome browserify home mean initialActions
Benchmark value 865 exceeds gate value 830 for chrome browserify home mean loadScripts
Benchmark value 232 exceeds gate value 18 for chrome browserify home p95 backgroundConnect
Benchmark value 17 exceeds gate value 1.2 for chrome browserify home p95 initialActions
Benchmark value 953 exceeds gate value 940 for chrome browserify home p95 loadScripts
Benchmark value 2551 exceeds gate value 2192 for chrome webpack home mean uiStartup
Benchmark value 2053 exceeds gate value 1711 for chrome webpack home mean load
Benchmark value 2041 exceeds gate value 1704 for chrome webpack home mean domContentLoaded
Benchmark value 47 exceeds gate value 40 for chrome webpack home mean backgroundConnect
Benchmark value 10 exceeds gate value 7 for chrome webpack home mean initialActions
Benchmark value 2036 exceeds gate value 1699 for chrome webpack home mean loadScripts
Benchmark value 2807 exceeds gate value 2454 for chrome webpack home p95 uiStartup
Benchmark value 2268 exceeds gate value 2030 for chrome webpack home p95 load
Benchmark value 2261 exceeds gate value 2005 for chrome webpack home p95 domContentLoaded
Benchmark value 69 exceeds gate value 57 for chrome webpack home p95 domInteractive
Benchmark value 254 exceeds gate value 90 for chrome webpack home p95 backgroundConnect
Benchmark value 37 exceeds gate value 7 for chrome webpack home p95 initialActions
Benchmark value 2259 exceeds gate value 1970 for chrome webpack home p95 loadScripts
Benchmark value 1600 exceeds gate value 1405 for firefox browserify home mean uiStartup
Benchmark value 1367 exceeds gate value 1245 for firefox browserify home mean load
Benchmark value 1367 exceeds gate value 1239 for firefox browserify home mean domContentLoaded
Benchmark value 116 exceeds gate value 110 for firefox browserify home mean domInteractive
Benchmark value 30 exceeds gate value 25 for firefox browserify home mean backgroundConnect
Benchmark value 30 exceeds gate value 25 for firefox browserify home mean firstReactRender
Benchmark value 16 exceeds gate value 11 for firefox browserify home mean getState
Benchmark value 5 exceeds gate value 1 for firefox browserify home mean initialActions
Benchmark value 1342 exceeds gate value 1230 for firefox browserify home mean loadScripts
Benchmark value 18 exceeds gate value 9 for firefox browserify home mean setupStore
Benchmark value 1889 exceeds gate value 1660 for firefox browserify home p95 uiStartup
Benchmark value 1519 exceeds gate value 1495 for firefox browserify home p95 load
Benchmark value 1519 exceeds gate value 1495 for firefox browserify home p95 domContentLoaded
Benchmark value 304 exceeds gate value 195 for firefox browserify home p95 domInteractive
Benchmark value 62 exceeds gate value 55 for firefox browserify home p95 firstReactRender
Benchmark value 59 exceeds gate value 24 for firefox browserify home p95 getState
Benchmark value 14 exceeds gate value 2 for firefox browserify home p95 initialActions
Benchmark value 1496 exceeds gate value 1475 for firefox browserify home p95 loadScripts
Benchmark value 109 exceeds gate value 27 for firefox browserify home p95 setupStore
Benchmark value 1794 exceeds gate value 1615 for firefox webpack home mean uiStartup
Benchmark value 1499 exceeds gate value 1380 for firefox webpack home mean load
Benchmark value 1499 exceeds gate value 1380 for firefox webpack home mean domContentLoaded
Benchmark value 102 exceeds gate value 100 for firefox webpack home mean domInteractive
Benchmark value 33 exceeds gate value 26 for firefox webpack home mean backgroundConnect
Benchmark value 53 exceeds gate value 38 for firefox webpack home mean firstReactRender
Benchmark value 11 exceeds gate value 1 for firefox webpack home mean initialActions
Benchmark value 1474 exceeds gate value 1360 for firefox webpack home mean loadScripts
Benchmark value 24 exceeds gate value 13 for firefox webpack home mean setupStore
Benchmark value 2146 exceeds gate value 1935 for firefox webpack home p95 uiStartup
Benchmark value 1799 exceeds gate value 1660 for firefox webpack home p95 load
Benchmark value 1798 exceeds gate value 1660 for firefox webpack home p95 domContentLoaded
Benchmark value 305 exceeds gate value 156 for firefox webpack home p95 domInteractive
Benchmark value 77 exceeds gate value 49 for firefox webpack home p95 backgroundConnect
Benchmark value 64 exceeds gate value 50 for firefox webpack home p95 firstReactRender
Benchmark value 38 exceeds gate value 32 for firefox webpack home p95 getState
Benchmark value 21 exceeds gate value 2 for firefox webpack home p95 initialActions
Benchmark value 1759 exceeds gate value 1630 for firefox webpack home p95 loadScripts
Benchmark value 179 exceeds gate value 28 for firefox webpack home p95 setupStore
Sum of mean exceeds: 2825ms | Sum of p95 exceeds: 3111.8ms
Sum of all benchmark exceeds: 5936.8ms

Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 202 Bytes (0%)
  • ui: 849 Bytes (0.01%)
  • common: 124 Bytes (0%)

@Gudahtt Gudahtt force-pushed the add-capture-error-dev-buttons branch from 765440f to 4a85fcd Compare July 17, 2025 22:27
@Gudahtt Gudahtt marked this pull request as ready for review July 17, 2025 22:49
cursor[bot]

This comment was marked as outdated.

@metamaskbot
Copy link
Collaborator

Builds ready [4a85fcd]
UI Startup Metrics (1269 ± 59 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyHomeuiStartup1269111914485913121367
load108893012375911311188
domContentLoaded108192512305911281180
domInteractive18145881743
firstPaint683130120243511011162
backgroundConnect2101972498213228
firstReactRender22156072437
getState10387121029
initialActions30607215
loadScripts878732102558920974
setupStore74193713
WebpackHomeuiStartup25671966282215026772792
load20771459245718521932411
domContentLoaded20681453245218221882401
domInteractive2213221251774
firstPaint1867034362226313
backgroundConnect36102814832195
firstReactRender1889241187234379
getState1043251320
initialActions11219829740
loadScripts20611449244818121842388
setupStore1566391931
FirefoxBrowserifyHomeuiStartup14531311207612514891719
load1257113315268313021461
domContentLoaded1256113315258313021460
domInteractive1073549871103285
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect2914312352451
firstReactRender28206473032
getState10320322637
initialActions5017217215
loadScripts1232111914997612761398
setupStore114169181035
WebpackHomeuiStartup17451490234418318282164
load14851287195815215901833
domContentLoaded14851286195815215901833
domInteractive103474247694350
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect271685122849
firstReactRender51416965463
getState132251291424
initialActions8018225422
loadScripts14621267192814915601792
setupStore105508828
cc: @HowardBraham
Benchmark value 1270 exceeds gate value 1234 for chrome browserify home mean uiStartup
Benchmark value 1089 exceeds gate value 1070 for chrome browserify home mean load
Benchmark value 1082 exceeds gate value 1061 for chrome browserify home mean domContentLoaded
Benchmark value 211 exceeds gate value 10 for chrome browserify home mean backgroundConnect
Benchmark value 4 exceeds gate value 1 for chrome browserify home mean initialActions
Benchmark value 878 exceeds gate value 830 for chrome browserify home mean loadScripts
Benchmark value 1367 exceeds gate value 1365 for chrome browserify home p95 uiStartup
Benchmark value 1181 exceeds gate value 1180 for chrome browserify home p95 domContentLoaded
Benchmark value 43 exceeds gate value 41 for chrome browserify home p95 domInteractive
Benchmark value 228 exceeds gate value 18 for chrome browserify home p95 backgroundConnect
Benchmark value 15 exceeds gate value 1.2 for chrome browserify home p95 initialActions
Benchmark value 974 exceeds gate value 940 for chrome browserify home p95 loadScripts
Benchmark value 2568 exceeds gate value 2192 for chrome webpack home mean uiStartup
Benchmark value 2078 exceeds gate value 1711 for chrome webpack home mean load
Benchmark value 2069 exceeds gate value 1704 for chrome webpack home mean domContentLoaded
Benchmark value 23 exceeds gate value 21 for chrome webpack home mean domInteractive
Benchmark value 12 exceeds gate value 7 for chrome webpack home mean initialActions
Benchmark value 2062 exceeds gate value 1699 for chrome webpack home mean loadScripts
Benchmark value 2792 exceeds gate value 2454 for chrome webpack home p95 uiStartup
Benchmark value 2412 exceeds gate value 2030 for chrome webpack home p95 load
Benchmark value 2401 exceeds gate value 2005 for chrome webpack home p95 domContentLoaded
Benchmark value 74 exceeds gate value 57 for chrome webpack home p95 domInteractive
Benchmark value 195 exceeds gate value 90 for chrome webpack home p95 backgroundConnect
Benchmark value 379 exceeds gate value 370 for chrome webpack home p95 firstReactRender
Benchmark value 40 exceeds gate value 7 for chrome webpack home p95 initialActions
Benchmark value 2389 exceeds gate value 1970 for chrome webpack home p95 loadScripts
Benchmark value 1454 exceeds gate value 1405 for firefox browserify home mean uiStartup
Benchmark value 1257 exceeds gate value 1245 for firefox browserify home mean load
Benchmark value 1257 exceeds gate value 1239 for firefox browserify home mean domContentLoaded
Benchmark value 29 exceeds gate value 25 for firefox browserify home mean backgroundConnect
Benchmark value 28 exceeds gate value 25 for firefox browserify home mean firstReactRender
Benchmark value 5 exceeds gate value 1 for firefox browserify home mean initialActions
Benchmark value 1232 exceeds gate value 1230 for firefox browserify home mean loadScripts
Benchmark value 11 exceeds gate value 9 for firefox browserify home mean setupStore
Benchmark value 1719 exceeds gate value 1660 for firefox browserify home p95 uiStartup
Benchmark value 285 exceeds gate value 195 for firefox browserify home p95 domInteractive
Benchmark value 37 exceeds gate value 24 for firefox browserify home p95 getState
Benchmark value 15 exceeds gate value 2 for firefox browserify home p95 initialActions
Benchmark value 35 exceeds gate value 27 for firefox browserify home p95 setupStore
Benchmark value 1745 exceeds gate value 1615 for firefox webpack home mean uiStartup
Benchmark value 1486 exceeds gate value 1380 for firefox webpack home mean load
Benchmark value 1485 exceeds gate value 1380 for firefox webpack home mean domContentLoaded
Benchmark value 104 exceeds gate value 100 for firefox webpack home mean domInteractive
Benchmark value 28 exceeds gate value 26 for firefox webpack home mean backgroundConnect
Benchmark value 52 exceeds gate value 38 for firefox webpack home mean firstReactRender
Benchmark value 8 exceeds gate value 1 for firefox webpack home mean initialActions
Benchmark value 1463 exceeds gate value 1360 for firefox webpack home mean loadScripts
Benchmark value 2164 exceeds gate value 1935 for firefox webpack home p95 uiStartup
Benchmark value 1833 exceeds gate value 1660 for firefox webpack home p95 load
Benchmark value 1833 exceeds gate value 1660 for firefox webpack home p95 domContentLoaded
Benchmark value 350 exceeds gate value 156 for firefox webpack home p95 domInteractive
Benchmark value 63 exceeds gate value 50 for firefox webpack home p95 firstReactRender
Benchmark value 22 exceeds gate value 2 for firefox webpack home p95 initialActions
Benchmark value 1792 exceeds gate value 1630 for firefox webpack home p95 loadScripts
Sum of mean exceeds: 2371ms | Sum of p95 exceeds: 3108.8ms
Sum of all benchmark exceeds: 5479.8ms

Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 202 Bytes (0%)
  • ui: 849 Bytes (0.01%)
  • common: 124 Bytes (0%)

cursor[bot]

This comment was marked as outdated.

@metamaskbot
Copy link
Collaborator

Builds ready [d618348]
UI Startup Metrics (1248 ± 69 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyHomeuiStartup1248112615716912831346
load107594313536411101168
domContentLoaded106893913446411031158
domInteractive18135181640
firstPaint64486135444210951162
backgroundConnect2091982246212224
firstReactRender22144372438
getState1043271227
initialActions40718315
loadScripts865738113863901953
setupStore74243913
WebpackHomeuiStartup23721759258413924742517
load18781312218116519812131
domContentLoaded18711306217716619742124
domInteractive2013227241562
firstPaint175622120206175318
backgroundConnect44102926632268
firstReactRender1608934160190281
getState134273271219
initialActions12218130730
loadScripts18661302217216619662115
setupStore156188191539
FirefoxBrowserifyHomeuiStartup15441334197514716191867
load1314117515658213491472
domContentLoaded1313117515648213491472
domInteractive1193554992109343
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect281581123058
firstReactRender28216273040
getState173177378156
initialActions507812329
loadScripts1290115515378213281450
setupStore16424436796
WebpackHomeuiStartup17851462257420518502274
load14971275196813915751802
domContentLoaded14971274196813915751802
domInteractive96333426192321
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect301595143454
firstReactRender52416555562
getState142257341435
initialActions9122727931
loadScripts14731260193813515521767
setupStore134231241437
Benchmark value 1249 exceeds gate value 1234 for chrome browserify home mean uiStartup
Benchmark value 1075 exceeds gate value 1070 for chrome browserify home mean load
Benchmark value 1068 exceeds gate value 1061 for chrome browserify home mean domContentLoaded
Benchmark value 210 exceeds gate value 10 for chrome browserify home mean backgroundConnect
Benchmark value 4 exceeds gate value 1 for chrome browserify home mean initialActions
Benchmark value 865 exceeds gate value 830 for chrome browserify home mean loadScripts
Benchmark value 224 exceeds gate value 18 for chrome browserify home p95 backgroundConnect
Benchmark value 15 exceeds gate value 1.2 for chrome browserify home p95 initialActions
Benchmark value 953 exceeds gate value 940 for chrome browserify home p95 loadScripts
Benchmark value 2373 exceeds gate value 2192 for chrome webpack home mean uiStartup
Benchmark value 1878 exceeds gate value 1711 for chrome webpack home mean load
Benchmark value 1871 exceeds gate value 1704 for chrome webpack home mean domContentLoaded
Benchmark value 45 exceeds gate value 40 for chrome webpack home mean backgroundConnect
Benchmark value 12 exceeds gate value 7 for chrome webpack home mean initialActions
Benchmark value 1867 exceeds gate value 1699 for chrome webpack home mean loadScripts
Benchmark value 2517 exceeds gate value 2454 for chrome webpack home p95 uiStartup
Benchmark value 2132 exceeds gate value 2030 for chrome webpack home p95 load
Benchmark value 2124 exceeds gate value 2005 for chrome webpack home p95 domContentLoaded
Benchmark value 63 exceeds gate value 57 for chrome webpack home p95 domInteractive
Benchmark value 268 exceeds gate value 90 for chrome webpack home p95 backgroundConnect
Benchmark value 30 exceeds gate value 7 for chrome webpack home p95 initialActions
Benchmark value 2115 exceeds gate value 1970 for chrome webpack home p95 loadScripts
Benchmark value 1545 exceeds gate value 1405 for firefox browserify home mean uiStartup
Benchmark value 1314 exceeds gate value 1245 for firefox browserify home mean load
Benchmark value 1314 exceeds gate value 1239 for firefox browserify home mean domContentLoaded
Benchmark value 120 exceeds gate value 110 for firefox browserify home mean domInteractive
Benchmark value 28 exceeds gate value 25 for firefox browserify home mean backgroundConnect
Benchmark value 29 exceeds gate value 25 for firefox browserify home mean firstReactRender
Benchmark value 18 exceeds gate value 11 for firefox browserify home mean getState
Benchmark value 6 exceeds gate value 1 for firefox browserify home mean initialActions
Benchmark value 1291 exceeds gate value 1230 for firefox browserify home mean loadScripts
Benchmark value 16 exceeds gate value 9 for firefox browserify home mean setupStore
Benchmark value 1867 exceeds gate value 1660 for firefox browserify home p95 uiStartup
Benchmark value 343 exceeds gate value 195 for firefox browserify home p95 domInteractive
Benchmark value 156 exceeds gate value 24 for firefox browserify home p95 getState
Benchmark value 29 exceeds gate value 2 for firefox browserify home p95 initialActions
Benchmark value 96 exceeds gate value 27 for firefox browserify home p95 setupStore
Benchmark value 1785 exceeds gate value 1615 for firefox webpack home mean uiStartup
Benchmark value 1498 exceeds gate value 1380 for firefox webpack home mean load
Benchmark value 1497 exceeds gate value 1380 for firefox webpack home mean domContentLoaded
Benchmark value 30 exceeds gate value 26 for firefox webpack home mean backgroundConnect
Benchmark value 53 exceeds gate value 38 for firefox webpack home mean firstReactRender
Benchmark value 10 exceeds gate value 1 for firefox webpack home mean initialActions
Benchmark value 1474 exceeds gate value 1360 for firefox webpack home mean loadScripts
Benchmark value 14 exceeds gate value 13 for firefox webpack home mean setupStore
Benchmark value 2274 exceeds gate value 1935 for firefox webpack home p95 uiStartup
Benchmark value 1802 exceeds gate value 1660 for firefox webpack home p95 load
Benchmark value 1802 exceeds gate value 1660 for firefox webpack home p95 domContentLoaded
Benchmark value 321 exceeds gate value 156 for firefox webpack home p95 domInteractive
Benchmark value 54 exceeds gate value 49 for firefox webpack home p95 backgroundConnect
Benchmark value 62 exceeds gate value 50 for firefox webpack home p95 firstReactRender
Benchmark value 35 exceeds gate value 32 for firefox webpack home p95 getState
Benchmark value 31 exceeds gate value 2 for firefox webpack home p95 initialActions
Benchmark value 1767 exceeds gate value 1630 for firefox webpack home p95 loadScripts
Benchmark value 37 exceeds gate value 28 for firefox webpack home p95 setupStore
Sum of mean exceeds: 1887ms | Sum of p95 exceeds: 2434.8ms
Sum of all benchmark exceeds: 4321.8ms

Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 202 Bytes (0%)
  • ui: 853 Bytes (0.01%)
  • common: 124 Bytes (0%)

* @deprecated This is only mean to facilitiate E2E testing. We should not
* use this for handling errors.
*/
captureTestError(message) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should these test only functions only be shipped when process.env.IN_TEST is "true"?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

They're also used for manual testing, like the other pre-existing ones are. I used them in a yarn dist build to discover this issue.

That makes the comment block inaccurate though. I just copied it from the other functions which are used for the exact same purpose. I can fix the comment in a follow-up PR perhaps.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done here: #34404

@Gudahtt Gudahtt force-pushed the add-capture-error-dev-buttons branch from d618348 to 5f4a90b Compare July 18, 2025 11:53
cursor[bot]

This comment was marked as outdated.

@metamaskbot
Copy link
Collaborator

❌ test-e2e-chrome-api-specs failed. View the html report here.

@metamaskbot
Copy link
Collaborator

Builds ready [5f4a90b]
UI Startup Metrics (1260 ± 58 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyHomeuiStartup1260111714525812971357
load108097113055211081161
domContentLoaded107396513005211011151
domInteractive1914168161636
firstPaint74886130442610941144
backgroundConnect2111972386214225
firstReactRender23154772536
getState1043261324
initialActions50749619
loadScripts868766110051897950
setupStore842751019
WebpackHomeuiStartup25142046307015726072714
load20261509269918721482283
domContentLoaded20171498268118621332262
domInteractive201389161666
firstPaint1766635269233315
backgroundConnect43122986134235
firstReactRender1739036467217317
getState174305391424
initialActions9213615837
loadScripts20071494266718821272259
setupStore1463571830
FirefoxBrowserifyHomeuiStartup15071305196614015761819
load13041140171610913541519
domContentLoaded13031139171610913541517
domInteractive1223649894111366
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect261271112651
firstReactRender28206693060
getState11216920942
initialActions6016419238
loadScripts12811118169510813351486
setupStore10316118728
WebpackHomeuiStartup17361495284921818222119
load14701265220114715581713
domContentLoaded14691264220014715581713
domInteractive93313765888217
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect3118144193177
firstReactRender51418265563
getState10218519930
initialActions50819514
loadScripts14451246216814415351696
setupStore145365361233
Benchmark value 1261 exceeds gate value 1234 for chrome browserify home mean uiStartup
Benchmark value 1080 exceeds gate value 1070 for chrome browserify home mean load
Benchmark value 1074 exceeds gate value 1061 for chrome browserify home mean domContentLoaded
Benchmark value 212 exceeds gate value 10 for chrome browserify home mean backgroundConnect
Benchmark value 5 exceeds gate value 1 for chrome browserify home mean initialActions
Benchmark value 869 exceeds gate value 830 for chrome browserify home mean loadScripts
Benchmark value 225 exceeds gate value 18 for chrome browserify home p95 backgroundConnect
Benchmark value 19 exceeds gate value 1.2 for chrome browserify home p95 initialActions
Benchmark value 951 exceeds gate value 940 for chrome browserify home p95 loadScripts
Benchmark value 19 exceeds gate value 17 for chrome browserify home p95 setupStore
Benchmark value 2514 exceeds gate value 2192 for chrome webpack home mean uiStartup
Benchmark value 2026 exceeds gate value 1711 for chrome webpack home mean load
Benchmark value 2017 exceeds gate value 1704 for chrome webpack home mean domContentLoaded
Benchmark value 43 exceeds gate value 40 for chrome webpack home mean backgroundConnect
Benchmark value 9 exceeds gate value 7 for chrome webpack home mean initialActions
Benchmark value 2008 exceeds gate value 1699 for chrome webpack home mean loadScripts
Benchmark value 2714 exceeds gate value 2454 for chrome webpack home p95 uiStartup
Benchmark value 2283 exceeds gate value 2030 for chrome webpack home p95 load
Benchmark value 2262 exceeds gate value 2005 for chrome webpack home p95 domContentLoaded
Benchmark value 67 exceeds gate value 57 for chrome webpack home p95 domInteractive
Benchmark value 236 exceeds gate value 90 for chrome webpack home p95 backgroundConnect
Benchmark value 37 exceeds gate value 7 for chrome webpack home p95 initialActions
Benchmark value 2260 exceeds gate value 1970 for chrome webpack home p95 loadScripts
Benchmark value 1508 exceeds gate value 1405 for firefox browserify home mean uiStartup
Benchmark value 1304 exceeds gate value 1245 for firefox browserify home mean load
Benchmark value 1304 exceeds gate value 1239 for firefox browserify home mean domContentLoaded
Benchmark value 122 exceeds gate value 110 for firefox browserify home mean domInteractive
Benchmark value 26 exceeds gate value 25 for firefox browserify home mean backgroundConnect
Benchmark value 29 exceeds gate value 25 for firefox browserify home mean firstReactRender
Benchmark value 12 exceeds gate value 11 for firefox browserify home mean getState
Benchmark value 7 exceeds gate value 1 for firefox browserify home mean initialActions
Benchmark value 1282 exceeds gate value 1230 for firefox browserify home mean loadScripts
Benchmark value 11 exceeds gate value 9 for firefox browserify home mean setupStore
Benchmark value 1819 exceeds gate value 1660 for firefox browserify home p95 uiStartup
Benchmark value 1519 exceeds gate value 1495 for firefox browserify home p95 load
Benchmark value 1517 exceeds gate value 1495 for firefox browserify home p95 domContentLoaded
Benchmark value 366 exceeds gate value 195 for firefox browserify home p95 domInteractive
Benchmark value 60 exceeds gate value 55 for firefox browserify home p95 firstReactRender
Benchmark value 42 exceeds gate value 24 for firefox browserify home p95 getState
Benchmark value 38 exceeds gate value 2 for firefox browserify home p95 initialActions
Benchmark value 1486 exceeds gate value 1475 for firefox browserify home p95 loadScripts
Benchmark value 28 exceeds gate value 27 for firefox browserify home p95 setupStore
Benchmark value 1736 exceeds gate value 1615 for firefox webpack home mean uiStartup
Benchmark value 1470 exceeds gate value 1380 for firefox webpack home mean load
Benchmark value 1470 exceeds gate value 1380 for firefox webpack home mean domContentLoaded
Benchmark value 32 exceeds gate value 26 for firefox webpack home mean backgroundConnect
Benchmark value 52 exceeds gate value 38 for firefox webpack home mean firstReactRender
Benchmark value 6 exceeds gate value 1 for firefox webpack home mean initialActions
Benchmark value 1446 exceeds gate value 1360 for firefox webpack home mean loadScripts
Benchmark value 15 exceeds gate value 13 for firefox webpack home mean setupStore
Benchmark value 2119 exceeds gate value 1935 for firefox webpack home p95 uiStartup
Benchmark value 1713 exceeds gate value 1660 for firefox webpack home p95 load
Benchmark value 1713 exceeds gate value 1660 for firefox webpack home p95 domContentLoaded
Benchmark value 217 exceeds gate value 156 for firefox webpack home p95 domInteractive
Benchmark value 77 exceeds gate value 49 for firefox webpack home p95 backgroundConnect
Benchmark value 63 exceeds gate value 50 for firefox webpack home p95 firstReactRender
Benchmark value 14 exceeds gate value 2 for firefox webpack home p95 initialActions
Benchmark value 1696 exceeds gate value 1630 for firefox webpack home p95 loadScripts
Benchmark value 33 exceeds gate value 28 for firefox webpack home p95 setupStore
Sum of mean exceeds: 2278ms | Sum of p95 exceeds: 2405.8ms
Sum of all benchmark exceeds: 4683.8ms

Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 202 Bytes (0%)
  • ui: 849 Bytes (0.01%)
  • common: 124 Bytes (0%)

@Gudahtt
Copy link
Member Author

Gudahtt commented Jul 18, 2025

This omission causes a runtime error ("Cannot read properties of undefined (reading 'captureException')") when global.sentry is undefined, which is expected in certain environments (e.g., development)

This is fine though, these buttons are used to test errors. Better to fail noisily than silently if we're in an environment where the test won't work. We could improve this by using the new captureError function introduced in #34382 perhaps, but it's still working as intended as-is.

@metamaskbot
Copy link
Collaborator

Builds ready [87a7d12]
UI Startup Metrics (1612 ± 96 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyHomeuiStartup1612140019079616561805
load1369119515668214191539
domContentLoaded1353117615538414081528
domInteractive241763102454
firstPaint91987156854413791530
backgroundConnect27824047133281312
firstReactRender2916150163156
getState1354791432
initialActions509010422
loadScripts109192712778011431262
setupStore95555916
WebpackHomeuiStartup384120858665106445585449
load30271522471775536594180
domContentLoaded30121514470975136244171
domInteractive37123564640101
firstPaint27764819149352593
backgroundConnect10613416941565240
firstReactRender23488799171325630
getState2442804018127
initialActions12227732738
loadScripts30041510470274836044165
setupStore226187332060
FirefoxBrowserifyHomeuiStartup14571281188312215071741
load1265112816229213021476
domContentLoaded1264112816229213011476
domInteractive1073648682100276
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect251778102654
firstReactRender26196462832
getState113180211139
initialActions40597313
loadScripts1244110915989112761456
setupStore11317222658
WebpackHomeuiStartup17981578325323418942221
load14951303292319615201838
domContentLoaded14951302292219615191837
domInteractive98334437292302
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect3219162193770
firstReactRender53436865665
getState152267341337
initialActions150249431241
loadScripts14711282289819314951794
setupStore2955337515248
cc: @HowardBraham
Benchmark value 1613 exceeds gate value 1234 for chrome browserify home mean uiStartup
Benchmark value 1370 exceeds gate value 1070 for chrome browserify home mean load
Benchmark value 1354 exceeds gate value 1061 for chrome browserify home mean domContentLoaded
Benchmark value 25 exceeds gate value 20 for chrome browserify home mean domInteractive
Benchmark value 920 exceeds gate value 800 for chrome browserify home mean firstPaint
Benchmark value 278 exceeds gate value 10 for chrome browserify home mean backgroundConnect
Benchmark value 30 exceeds gate value 23 for chrome browserify home mean firstReactRender
Benchmark value 5 exceeds gate value 1 for chrome browserify home mean initialActions
Benchmark value 1091 exceeds gate value 830 for chrome browserify home mean loadScripts
Benchmark value 1805 exceeds gate value 1365 for chrome browserify home p95 uiStartup
Benchmark value 1539 exceeds gate value 1190 for chrome browserify home p95 load
Benchmark value 1528 exceeds gate value 1180 for chrome browserify home p95 domContentLoaded
Benchmark value 54 exceeds gate value 41 for chrome browserify home p95 domInteractive
Benchmark value 1530 exceeds gate value 1180 for chrome browserify home p95 firstPaint
Benchmark value 312 exceeds gate value 18 for chrome browserify home p95 backgroundConnect
Benchmark value 56 exceeds gate value 45 for chrome browserify home p95 firstReactRender
Benchmark value 22 exceeds gate value 1.2 for chrome browserify home p95 initialActions
Benchmark value 1263 exceeds gate value 940 for chrome browserify home p95 loadScripts
Benchmark value 3841 exceeds gate value 2192 for chrome webpack home mean uiStartup
Benchmark value 3027 exceeds gate value 1711 for chrome webpack home mean load
Benchmark value 3012 exceeds gate value 1704 for chrome webpack home mean domContentLoaded
Benchmark value 37 exceeds gate value 21 for chrome webpack home mean domInteractive
Benchmark value 277 exceeds gate value 199 for chrome webpack home mean firstPaint
Benchmark value 106 exceeds gate value 40 for chrome webpack home mean backgroundConnect
Benchmark value 12 exceeds gate value 7 for chrome webpack home mean initialActions
Benchmark value 3005 exceeds gate value 1699 for chrome webpack home mean loadScripts
Benchmark value 5450 exceeds gate value 2454 for chrome webpack home p95 uiStartup
Benchmark value 4181 exceeds gate value 2030 for chrome webpack home p95 load
Benchmark value 4171 exceeds gate value 2005 for chrome webpack home p95 domContentLoaded
Benchmark value 101 exceeds gate value 57 for chrome webpack home p95 domInteractive
Benchmark value 593 exceeds gate value 334 for chrome webpack home p95 firstPaint
Benchmark value 241 exceeds gate value 90 for chrome webpack home p95 backgroundConnect
Benchmark value 630 exceeds gate value 370 for chrome webpack home p95 firstReactRender
Benchmark value 38 exceeds gate value 7 for chrome webpack home p95 initialActions
Benchmark value 4165 exceeds gate value 1970 for chrome webpack home p95 loadScripts
Benchmark value 1458 exceeds gate value 1405 for firefox browserify home mean uiStartup
Benchmark value 1265 exceeds gate value 1245 for firefox browserify home mean load
Benchmark value 1265 exceeds gate value 1239 for firefox browserify home mean domContentLoaded
Benchmark value 26 exceeds gate value 25 for firefox browserify home mean backgroundConnect
Benchmark value 26 exceeds gate value 25 for firefox browserify home mean firstReactRender
Benchmark value 12 exceeds gate value 11 for firefox browserify home mean getState
Benchmark value 4 exceeds gate value 1 for firefox browserify home mean initialActions
Benchmark value 1244 exceeds gate value 1230 for firefox browserify home mean loadScripts
Benchmark value 12 exceeds gate value 9 for firefox browserify home mean setupStore
Benchmark value 1741 exceeds gate value 1660 for firefox browserify home p95 uiStartup
Benchmark value 276 exceeds gate value 195 for firefox browserify home p95 domInteractive
Benchmark value 39 exceeds gate value 24 for firefox browserify home p95 getState
Benchmark value 13 exceeds gate value 2 for firefox browserify home p95 initialActions
Benchmark value 58 exceeds gate value 27 for firefox browserify home p95 setupStore
Benchmark value 1799 exceeds gate value 1615 for firefox webpack home mean uiStartup
Benchmark value 1496 exceeds gate value 1380 for firefox webpack home mean load
Benchmark value 1496 exceeds gate value 1380 for firefox webpack home mean domContentLoaded
Benchmark value 33 exceeds gate value 26 for firefox webpack home mean backgroundConnect
Benchmark value 53 exceeds gate value 38 for firefox webpack home mean firstReactRender
Benchmark value 15 exceeds gate value 1 for firefox webpack home mean initialActions
Benchmark value 1471 exceeds gate value 1360 for firefox webpack home mean loadScripts
Benchmark value 29 exceeds gate value 13 for firefox webpack home mean setupStore
Benchmark value 2221 exceeds gate value 1935 for firefox webpack home p95 uiStartup
Benchmark value 1838 exceeds gate value 1660 for firefox webpack home p95 load
Benchmark value 1837 exceeds gate value 1660 for firefox webpack home p95 domContentLoaded
Benchmark value 302 exceeds gate value 156 for firefox webpack home p95 domInteractive
Benchmark value 70 exceeds gate value 49 for firefox webpack home p95 backgroundConnect
Benchmark value 65 exceeds gate value 50 for firefox webpack home p95 firstReactRender
Benchmark value 37 exceeds gate value 32 for firefox webpack home p95 getState
Benchmark value 41 exceeds gate value 2 for firefox webpack home p95 initialActions
Benchmark value 1794 exceeds gate value 1630 for firefox webpack home p95 loadScripts
Benchmark value 248 exceeds gate value 28 for firefox webpack home p95 setupStore
Sum of mean exceeds: 8082ms | Sum of p95 exceeds: 13871.8ms
Sum of all benchmark exceeds: 21953.8ms

Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 202 Bytes (0%)
  • ui: 819 Bytes (0.01%)
  • common: 124 Bytes (0%)

Gudahtt and others added 3 commits July 21, 2025 11:33
Add two buttons to the "Developer Options" settings page to test that
captured Sentry errors work correctly (one button for the UI, one for
the background).

We have two similar buttons already for unhandled errors, but not for
explicitly handled errors.

These will assist with manual testing for this bug: #34371
@Gudahtt Gudahtt force-pushed the add-capture-error-dev-buttons branch from 87a7d12 to 9091454 Compare July 21, 2025 14:03
@DDDDDanica
Copy link
Contributor

LGTM !

@metamaskbot
Copy link
Collaborator

Builds ready [9091454]
UI Startup Metrics (1289 ± 62 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyHomeuiStartup1289109814446213251418
load110495512716111451205
domContentLoaded109795012646111401200
domInteractive19146391742
firstPaint72998127044311061171
backgroundConnect2152022407218233
firstReactRender21154762131
getState11385111233
initialActions30627213
loadScripts889743105161931989
setupStore74223713
WebpackHomeuiStartup23721826275214824752547
load18821378221115619692167
domContentLoaded18701372220816119652161
domInteractive2112196241561
firstPaint1626164785179315
backgroundConnect43114686835281
firstReactRender1609034467182329
getState133264261323
initialActions13220234832
loadScripts18661368220316119622154
setupStore2372354516176
FirefoxBrowserifyHomeuiStartup15431361246917415961980
load1315116316499713521488
domContentLoaded1314116216499713521487
domInteractive1133956579105294
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect2915137162959
firstReactRender28216693056
getState163195351233
initialActions6120922320
loadScripts1291114816219613261456
setupStore15418232892
WebpackHomeuiStartup17391514232318018522119
load14691301202914715661769
domContentLoaded14681301202914715661769
domInteractive107654117293281
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect291978133265
firstReactRender534112495766
getState143258351226
initialActions7020021922
loadScripts14461273200314515461737
setupStore174262431040
Benchmark value 1289 exceeds gate value 1234 for chrome browserify home mean uiStartup
Benchmark value 1104 exceeds gate value 1070 for chrome browserify home mean load
Benchmark value 1097 exceeds gate value 1061 for chrome browserify home mean domContentLoaded
Benchmark value 215 exceeds gate value 10 for chrome browserify home mean backgroundConnect
Benchmark value 4 exceeds gate value 1 for chrome browserify home mean initialActions
Benchmark value 889 exceeds gate value 830 for chrome browserify home mean loadScripts
Benchmark value 1418 exceeds gate value 1365 for chrome browserify home p95 uiStartup
Benchmark value 1205 exceeds gate value 1190 for chrome browserify home p95 load
Benchmark value 1200 exceeds gate value 1180 for chrome browserify home p95 domContentLoaded
Benchmark value 43 exceeds gate value 41 for chrome browserify home p95 domInteractive
Benchmark value 233 exceeds gate value 18 for chrome browserify home p95 backgroundConnect
Benchmark value 13 exceeds gate value 1.2 for chrome browserify home p95 initialActions
Benchmark value 990 exceeds gate value 940 for chrome browserify home p95 loadScripts
Benchmark value 2373 exceeds gate value 2192 for chrome webpack home mean uiStartup
Benchmark value 1882 exceeds gate value 1711 for chrome webpack home mean load
Benchmark value 1871 exceeds gate value 1704 for chrome webpack home mean domContentLoaded
Benchmark value 44 exceeds gate value 40 for chrome webpack home mean backgroundConnect
Benchmark value 13 exceeds gate value 7 for chrome webpack home mean initialActions
Benchmark value 1866 exceeds gate value 1699 for chrome webpack home mean loadScripts
Benchmark value 2547 exceeds gate value 2454 for chrome webpack home p95 uiStartup
Benchmark value 2168 exceeds gate value 2030 for chrome webpack home p95 load
Benchmark value 2161 exceeds gate value 2005 for chrome webpack home p95 domContentLoaded
Benchmark value 61 exceeds gate value 57 for chrome webpack home p95 domInteractive
Benchmark value 282 exceeds gate value 90 for chrome webpack home p95 backgroundConnect
Benchmark value 32 exceeds gate value 7 for chrome webpack home p95 initialActions
Benchmark value 2154 exceeds gate value 1970 for chrome webpack home p95 loadScripts
Benchmark value 176 exceeds gate value 65 for chrome webpack home p95 setupStore
Benchmark value 1543 exceeds gate value 1405 for firefox browserify home mean uiStartup
Benchmark value 1315 exceeds gate value 1245 for firefox browserify home mean load
Benchmark value 1315 exceeds gate value 1239 for firefox browserify home mean domContentLoaded
Benchmark value 114 exceeds gate value 110 for firefox browserify home mean domInteractive
Benchmark value 30 exceeds gate value 25 for firefox browserify home mean backgroundConnect
Benchmark value 29 exceeds gate value 25 for firefox browserify home mean firstReactRender
Benchmark value 16 exceeds gate value 11 for firefox browserify home mean getState
Benchmark value 7 exceeds gate value 1 for firefox browserify home mean initialActions
Benchmark value 1291 exceeds gate value 1230 for firefox browserify home mean loadScripts
Benchmark value 16 exceeds gate value 9 for firefox browserify home mean setupStore
Benchmark value 1980 exceeds gate value 1660 for firefox browserify home p95 uiStartup
Benchmark value 294 exceeds gate value 195 for firefox browserify home p95 domInteractive
Benchmark value 56 exceeds gate value 55 for firefox browserify home p95 firstReactRender
Benchmark value 33 exceeds gate value 24 for firefox browserify home p95 getState
Benchmark value 20 exceeds gate value 2 for firefox browserify home p95 initialActions
Benchmark value 92 exceeds gate value 27 for firefox browserify home p95 setupStore
Benchmark value 1740 exceeds gate value 1615 for firefox webpack home mean uiStartup
Benchmark value 1469 exceeds gate value 1380 for firefox webpack home mean load
Benchmark value 1469 exceeds gate value 1380 for firefox webpack home mean domContentLoaded
Benchmark value 107 exceeds gate value 100 for firefox webpack home mean domInteractive
Benchmark value 30 exceeds gate value 26 for firefox webpack home mean backgroundConnect
Benchmark value 53 exceeds gate value 38 for firefox webpack home mean firstReactRender
Benchmark value 8 exceeds gate value 1 for firefox webpack home mean initialActions
Benchmark value 1447 exceeds gate value 1360 for firefox webpack home mean loadScripts
Benchmark value 17 exceeds gate value 13 for firefox webpack home mean setupStore
Benchmark value 2119 exceeds gate value 1935 for firefox webpack home p95 uiStartup
Benchmark value 1769 exceeds gate value 1660 for firefox webpack home p95 load
Benchmark value 1769 exceeds gate value 1660 for firefox webpack home p95 domContentLoaded
Benchmark value 281 exceeds gate value 156 for firefox webpack home p95 domInteractive
Benchmark value 65 exceeds gate value 49 for firefox webpack home p95 backgroundConnect
Benchmark value 66 exceeds gate value 50 for firefox webpack home p95 firstReactRender
Benchmark value 22 exceeds gate value 2 for firefox webpack home p95 initialActions
Benchmark value 1737 exceeds gate value 1630 for firefox webpack home p95 loadScripts
Benchmark value 40 exceeds gate value 28 for firefox webpack home p95 setupStore
Sum of mean exceeds: 1891ms | Sum of p95 exceeds: 2479.8ms
Sum of all benchmark exceeds: 4370.8ms

Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 202 Bytes (0%)
  • ui: 819 Bytes (0.01%)
  • common: 124 Bytes (0%)

@Gudahtt Gudahtt added this pull request to the merge queue Jul 21, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Jul 21, 2025
@davidmurdoch davidmurdoch added this pull request to the merge queue Jul 21, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Jul 21, 2025
@Gudahtt Gudahtt added this pull request to the merge queue Jul 21, 2025
Merged via the queue into main with commit 9a577c9 Jul 21, 2025
145 checks passed
@Gudahtt Gudahtt deleted the add-capture-error-dev-buttons branch July 21, 2025 23:29
@github-actions github-actions bot locked and limited conversation to collaborators Jul 21, 2025
@metamaskbot metamaskbot added the release-13.1.0 Issue or pull request that will be included in release 13.1.0 label Jul 21, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

release-13.1.0 Issue or pull request that will be included in release 13.1.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants