Skip to content

Conversation

@jeffsmale90
Copy link
Contributor

@jeffsmale90 jeffsmale90 commented Sep 23, 2025

Description

This PR adds @metamask/gator-permissions-snaps and @metamask/permissions-kernel-snap as preinstalled snaps in flask.

It also enables the Gator Permissions feature with GATOR_PERMISSIONS_SNAP env variable, and adds the gator-permissions build feature.

Open in GitHub Codespaces

Changelog

CHANGELOG entry: Adds EIP-7715 Readable Permissions to MetaMask flask, allowing dapps to call wallet_requestExecutionPermissions

Related issues

Manual testing steps

Call wallet_requestExecutionPermissions with appropriate args, or use the Delegation Toolkit's experimental action to request a permission. This will allow the user to modify and / or approve the permission, but signing will fail until #36054 is merged.

Screenshots/Recordings

Before

After

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.

@github-actions
Copy link
Contributor

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.

@metamaskbot metamaskbot added the team-delegation MetaMask Delegation Team label Sep 23, 2025
@metamaskbot
Copy link
Collaborator

metamaskbot commented Sep 23, 2025

✨ Files requiring CODEOWNER review ✨

🫰 @MetaMask/core-platform (2 files, +16 -0)
  • 📁 app/
    • 📁 scripts/
      • 📁 constants/
        • 📄 snaps.ts +12 -0
  • 📁 shared/
    • 📁 lib/
      • 📁 snaps/
        • 📄 snaps.ts +4 -0

🧩 @MetaMask/extension-devs (1 files, +2 -2)
  • 📁 lavamoat/
    • 📁 build-system/
      • 📄 policy.json +2 -2

📜 @MetaMask/policy-reviewers (1 files, +2 -2)
  • 📁 lavamoat/
    • 📁 build-system/
      • 📄 policy.json +2 -2

Tip

Follow the policy review process outlined in the LavaMoat Policy Review Process doc before expecting an approval from Policy Reviewers.


🔗 @MetaMask/supply-chain (1 files, +2 -2)
  • 📁 lavamoat/
    • 📁 build-system/
      • 📄 policy.json +2 -2

@jeffsmale90 jeffsmale90 force-pushed the feat/preinstall_gator_snaps branch from e56c792 to 44ba350 Compare September 23, 2025 22:27
@jeffsmale90 jeffsmale90 changed the title WIP first try at pre-installing snaps Preinstall EIP-7715 Gator Permissions snaps in Flask Sep 23, 2025
- set up a new build feature 'gator-permissions'
- add 'gator-permissions' to flask build type
- add preinstall artifacts to snap constants
- add gator permissions snaps to preinstalled snaps constant
@jeffsmale90 jeffsmale90 force-pushed the feat/preinstall_gator_snaps branch from 44ba350 to 1ac2b2d Compare September 23, 2025 22:44
@jeffsmale90 jeffsmale90 changed the title Preinstall EIP-7715 Gator Permissions snaps in Flask feat: preinstall EIP-7715 Gator Permissions snaps in Flask Sep 23, 2025
- APPLE_FLASK_CLIENT_ID
- GOOGLE_CLIENT_ID_REF: GOOGLE_FLASK_CLIENT_ID
- APPLE_CLIENT_ID_REF: APPLE_FLASK_CLIENT_ID
- GATOR_PERMISSIONS_ENABLED: true
Copy link
Member

Choose a reason for hiding this comment

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

Is the environment variable needed? Ideally we can just use code fences.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yeah, I wasn't aware of the ability to use fences when we initially introduced the feature!

We are aiming to get this into the flask release cut tomorrow. I'd be happy if we can accept both the env var and the fence, and open a second PR to replace all checks on the env var to use the fence instead.

WDYT?

Copy link
Member

Choose a reason for hiding this comment

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

Sounds good to me!

@socket-security
Copy link

socket-security bot commented Sep 24, 2025

@socket-security
Copy link

socket-security bot commented Sep 24, 2025

Warning

MetaMask internal reviewing guidelines:

  • Do not ignore-all
  • Each alert has instructions on how to review if you don't know what it means. If lost, ask your Security Liaison or the supply-chain group
  • Copy-paste ignore lines for specific packages or a group of one kind with a note on what research you did to deem it safe.
    @SocketSecurity ignore npm/PACKAGE@VERSION
Action Severity Alert  (click "▶" to expand/collapse)
Warn Low
zod@3.25.76 is a AI-detected potential code anomaly.

Notes: No explicit network exfiltration, reverse shell, or credential theft is present in this fragment. However, the code assembles and compiles arbitrary code via the Function constructor and invokes passed-in functions immediately (twice). That behavior constitutes a strong dangerous primitive (arbitrary code execution) which can be abused if any inputs (strings or args) are attacker-controlled. Treat this module as risky in threat models where inputs are not fully trusted; review call sites and sanitize/validate inputs or avoid dynamic evaluation.

Confidence: 1.00

Severity: 0.60

From: yarn.locknpm/zod@3.25.76

ℹ Read more on: This package | This alert | What is an AI-detected potential code anomaly?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: An AI system found a low-risk anomaly in this package. It may still be fine to use, but you should check that it is safe before proceeding.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/zod@3.25.76. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Ignoring alerts on:

  • @metamask/gator-permissions-snap@0.3.0

View full report

@MoMannn
Copy link
Contributor

MoMannn commented Sep 24, 2025

@SocketSecurity ignore @metamask/gator-permissions-snap@0.3.0 This is package that we produce and uses fetch for some API calls.

@MoMannn MoMannn marked this pull request as ready for review September 24, 2025 13:04
@MoMannn MoMannn requested review from a team as code owners September 24, 2025 13:04
cursor[bot]

This comment was marked as outdated.

@metamaskbot
Copy link
Collaborator

📊 Page Load Benchmark Results

Current Commit: cea9a62 | Date: 9/24/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.04s (±69ms) 🟡 | historical mean value: 1.06s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 726ms (±67ms) 🟢 | historical mean value: 744ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 76ms (±12ms) 🟢 | historical mean value: 81ms ⬇️ (historical data)
📈 Detailed Results
Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.04s 69ms 995ms 1.30s 1.25s 1.30s
domContentLoaded 726ms 67ms 689ms 985ms 931ms 985ms
firstPaint 76ms 12ms 56ms 180ms 88ms 180ms
firstContentfulPaint 76ms 12ms 56ms 180ms 88ms 180ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms

Results generated automatically by MetaMask CI

@metamaskbot
Copy link
Collaborator

Builds ready [cea9a62]
UI Startup Metrics (1193 ± 72 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyHomeuiStartup1193105814587212411316
load102891812006910781147
domContentLoaded102291211916810721143
domInteractive17134261636
firstPaint671135116941210461141
backgroundConnect2091972506211217
firstReactRender24184252537
getState145126131531
initialActions607712513
loadScripts81971398467870940
setupStore95223914
WebpackHomeuiStartup1183923142111512601338
load996760124110910751118
domContentLoaded991756123810910701114
domInteractive17135791440
firstPaint1616631361202267
backgroundConnect17104271831
firstReactRender36335633641
getState64132712
initialActions62194914
loadScripts988754123510910671111
setupStore86152912
FirefoxBrowserifyHomeuiStartup14041232190213614891671
load1208107514489312851374
domContentLoaded1207107514489312841373
domInteractive1013535358107248
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect3018130153246
firstReactRender29235053241
getState9322022624
initialActions5018319315
loadScripts1186106114299112651348
setupStore11510115935
WebpackHomeuiStartup16001389216717217141946
load13621186182414414831622
domContentLoaded13621186182414414831621
domInteractive1043231757103293
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect31214563541
firstReactRender45365754855
getState8315916718
initialActions511521738
loadScripts13391161180714614611600
setupStore126163181027
Benchmark value 209 exceeds gate value 10 for chrome browserify home mean backgroundConnect
Benchmark value 25 exceeds gate value 23 for chrome browserify home mean firstReactRender
Benchmark value 6 exceeds gate value 1 for chrome browserify home mean initialActions
Benchmark value 218 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 941 exceeds gate value 940 for chrome browserify home p95 loadScripts
Benchmark value 14 exceeds gate value 7 for chrome webpack home p95 initialActions
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 6 exceeds gate value 1 for firefox browserify home mean initialActions
Benchmark value 12 exceeds gate value 9 for firefox browserify home mean setupStore
Benchmark value 1671 exceeds gate value 1660 for firefox browserify home p95 uiStartup
Benchmark value 248 exceeds gate value 195 for firefox browserify home p95 domInteractive
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 105 exceeds gate value 100 for firefox webpack home mean domInteractive
Benchmark value 32 exceeds gate value 26 for firefox webpack home mean backgroundConnect
Benchmark value 46 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 1946 exceeds gate value 1935 for firefox webpack home p95 uiStartup
Benchmark value 293 exceeds gate value 156 for firefox webpack home p95 domInteractive
Benchmark value 55 exceeds gate value 50 for firefox webpack home p95 firstReactRender
Benchmark value 8 exceeds gate value 2 for firefox webpack home p95 initialActions
Sum of mean exceeds: 248ms | Sum of p95 exceeds: 463.8ms
Sum of all benchmark exceeds: 711.8ms

Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 126 Bytes (0%)
  • ui: 0 Bytes (0%)
  • common: 2.78 KiB (0.04%)

@MoMannn MoMannn requested a review from Mrtenz September 24, 2025 14:31
@metamaskbot
Copy link
Collaborator

📊 Page Load Benchmark Results

Current Commit: dda9782 | Date: 9/24/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.04s (±70ms) 🟡 | historical mean value: 1.06s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 728ms (±68ms) 🟢 | historical mean value: 743ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 75ms (±12ms) 🟢 | historical mean value: 80ms ⬇️ (historical data)
📈 Detailed Results
Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.04s 70ms 996ms 1.31s 1.25s 1.31s
domContentLoaded 728ms 68ms 685ms 993ms 932ms 993ms
firstPaint 75ms 12ms 60ms 172ms 84ms 172ms
firstContentfulPaint 75ms 12ms 60ms 172ms 84ms 172ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms

Results generated automatically by MetaMask CI

@metamaskbot
Copy link
Collaborator

Builds ready [dda9782]
UI Startup Metrics (1207 ± 65 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyHomeuiStartup1207105713476512541307
load104091811655610841132
domContentLoaded103391111615610781123
domInteractive18145271738
firstPaint685138116041410631136
backgroundConnect2142022386217227
firstReactRender26185272844
getState1253661425
initialActions50808616
loadScripts82671695455867918
setupStore952731015
WebpackHomeuiStartup1150916138811012221283
load967754120410310281107
domContentLoaded962751119910410221102
domInteractive15124671437
firstPaint1526435760173288
backgroundConnect16107071628
firstReactRender35325433640
getState74223712
initialActions62194815
loadScripts959748119610310191099
setupStore86182914
FirefoxBrowserifyHomeuiStartup13971227170711014841613
load1212107315469012841348
domContentLoaded1211107315459012841348
domInteractive1043431755109237
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect3019110133346
firstReactRender30234863241
getState63405613
initialActions41879410
loadScripts1189105215258812611330
setupStore11512314934
WebpackHomeuiStartup16541436227816117721933
load14061212171314215181653
domContentLoaded14061211171314215181652
domInteractive1133434361112301
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect34218694045
firstReactRender48388365257
getState7310210717
initialActions512182149
loadScripts13801186168514314971632
setupStore1062841121
Benchmark value 214 exceeds gate value 10 for chrome browserify home mean backgroundConnect
Benchmark value 26 exceeds gate value 23 for chrome browserify home mean firstReactRender
Benchmark value 6 exceeds gate value 1 for chrome browserify home mean initialActions
Benchmark value 228 exceeds gate value 18 for chrome browserify home p95 backgroundConnect
Benchmark value 16 exceeds gate value 1.2 for chrome browserify home p95 initialActions
Benchmark value 15 exceeds gate value 7 for chrome webpack home p95 initialActions
Benchmark value 31 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 5 exceeds gate value 1 for firefox browserify home mean initialActions
Benchmark value 11 exceeds gate value 9 for firefox browserify home mean setupStore
Benchmark value 237 exceeds gate value 195 for firefox browserify home p95 domInteractive
Benchmark value 10 exceeds gate value 2 for firefox browserify home p95 initialActions
Benchmark value 34 exceeds gate value 27 for firefox browserify home p95 setupStore
Benchmark value 1654 exceeds gate value 1615 for firefox webpack home mean uiStartup
Benchmark value 1406 exceeds gate value 1380 for firefox webpack home mean load
Benchmark value 1406 exceeds gate value 1380 for firefox webpack home mean domContentLoaded
Benchmark value 113 exceeds gate value 100 for firefox webpack home mean domInteractive
Benchmark value 35 exceeds gate value 26 for firefox webpack home mean backgroundConnect
Benchmark value 49 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 1381 exceeds gate value 1360 for firefox webpack home mean loadScripts
Benchmark value 301 exceeds gate value 156 for firefox webpack home p95 domInteractive
Benchmark value 57 exceeds gate value 50 for firefox webpack home p95 firstReactRender
Benchmark value 9 exceeds gate value 2 for firefox webpack home p95 initialActions
Benchmark value 1632 exceeds gate value 1630 for firefox webpack home p95 loadScripts
Sum of mean exceeds: 379ms | Sum of p95 exceeds: 450.8ms
Sum of all benchmark exceeds: 829.8ms

Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 58 Bytes (0%)
  • ui: 0 Bytes (0%)
  • common: 2.71 KiB (0.03%)

@github-actions github-actions bot added size-S and removed size-M labels Sep 24, 2025
@metamaskbot
Copy link
Collaborator

📊 Page Load Benchmark Results

Current Commit: 4f42907 | Date: 9/24/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.04s (±69ms) 🟡 | historical mean value: 1.06s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 731ms (±68ms) 🟢 | historical mean value: 743ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 76ms (±13ms) 🟢 | historical mean value: 79ms ⬇️ (historical data)
📈 Detailed Results
Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.04s 69ms 1.00s 1.31s 1.25s 1.31s
domContentLoaded 731ms 68ms 691ms 990ms 933ms 990ms
firstPaint 76ms 13ms 60ms 192ms 84ms 192ms
firstContentfulPaint 76ms 13ms 60ms 192ms 84ms 192ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms

Results generated automatically by MetaMask CI

@metamaskbot
Copy link
Collaborator

Builds ready [4f42907]
UI Startup Metrics (1203 ± 70 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyHomeuiStartup1203106014377012521323
load103692511866310841136
domContentLoaded103091711766310791127
domInteractive17134661636
firstPaint731139118140110641133
backgroundConnect2112002335214219
firstReactRender25185272840
getState1357591629
initialActions40435613
loadScripts82572097161872925
setupStore962631014
WebpackHomeuiStartup1160924142911812381334
load974760124511110541145
domContentLoaded970755124111110471140
domInteractive16124681441
firstPaint1526142166179294
backgroundConnect16113561529
firstReactRender36336553653
getState74203711
initialActions62254814
loadScripts967753123811110371138
setupStore86202913
FirefoxBrowserifyHomeuiStartup14211201183912214851669
load1228105716348712821364
domContentLoaded1227105716338712821364
domInteractive1043236755114227
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect37183984433119
firstReactRender29234853142
getState53213613
initialActions4041549
loadScripts1200103913527512571314
setupStore14420025969
WebpackHomeuiStartup16321405230717717202011
load13761186175914214651671
domContentLoaded13761186175814214651671
domInteractive1113436067102295
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect33226593948
firstReactRender48386465162
getState73788713
initialActions8116826411
loadScripts13521155173514314371652
setupStore1163141121
Benchmark value 212 exceeds gate value 10 for chrome browserify home mean backgroundConnect
Benchmark value 26 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 220 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 14 exceeds gate value 7 for chrome webpack home p95 initialActions
Benchmark value 1422 exceeds gate value 1405 for firefox browserify home mean uiStartup
Benchmark value 37 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 4 exceeds gate value 1 for firefox browserify home mean initialActions
Benchmark value 15 exceeds gate value 9 for firefox browserify home mean setupStore
Benchmark value 1669 exceeds gate value 1660 for firefox browserify home p95 uiStartup
Benchmark value 227 exceeds gate value 195 for firefox browserify home p95 domInteractive
Benchmark value 119 exceeds gate value 70 for firefox browserify home p95 backgroundConnect
Benchmark value 9 exceeds gate value 2 for firefox browserify home p95 initialActions
Benchmark value 69 exceeds gate value 27 for firefox browserify home p95 setupStore
Benchmark value 1632 exceeds gate value 1615 for firefox webpack home mean uiStartup
Benchmark value 111 exceeds gate value 100 for firefox webpack home mean domInteractive
Benchmark value 34 exceeds gate value 26 for firefox webpack home mean backgroundConnect
Benchmark value 49 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 2011 exceeds gate value 1935 for firefox webpack home p95 uiStartup
Benchmark value 1671 exceeds gate value 1660 for firefox webpack home p95 load
Benchmark value 1671 exceeds gate value 1660 for firefox webpack home p95 domContentLoaded
Benchmark value 295 exceeds gate value 156 for firefox webpack home p95 domInteractive
Benchmark value 62 exceeds gate value 50 for firefox webpack home p95 firstReactRender
Benchmark value 11 exceeds gate value 2 for firefox webpack home p95 initialActions
Benchmark value 1652 exceeds gate value 1630 for firefox webpack home p95 loadScripts
Sum of mean exceeds: 306ms | Sum of p95 exceeds: 639.8ms
Sum of all benchmark exceeds: 945.8ms

Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 58 Bytes (0%)
  • ui: -133 Bytes (0%)
  • common: 2.71 KiB (0.03%)

@metamaskbot
Copy link
Collaborator

📊 Page Load Benchmark Results

Current Commit: f9f1a97 | Date: 9/24/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.05s (±73ms) 🟡 | historical mean value: 1.06s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 737ms (±70ms) 🟢 | historical mean value: 742ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 77ms (±15ms) 🟢 | historical mean value: 77ms ⬇️ (historical data)
📈 Detailed Results
Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.05s 73ms 1.00s 1.35s 1.28s 1.35s
domContentLoaded 737ms 70ms 694ms 1.02s 952ms 1.02s
firstPaint 77ms 15ms 60ms 212ms 88ms 212ms
firstContentfulPaint 77ms 15ms 60ms 212ms 88ms 212ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms

Results generated automatically by MetaMask CI

@metamaskbot
Copy link
Collaborator

Builds ready [f9f1a97]
UI Startup Metrics (1106 ± 71 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyHomeuiStartup110699414547111431221
load9398311222619701044
domContentLoaded9288141214619611030
domInteractive18134991644
firstPaint72317110593339581037
backgroundConnect18617129820187215
firstReactRender26145283042
getState13482121435
initialActions40224613
loadScripts752643103560785860
setupStore962541017
WebpackHomeuiStartup1145923136310112131311
load95475711599510171081
domContentLoaded94975311549510131076
domInteractive16126191441
firstPaint1566440959184265
backgroundConnect16103561829
firstReactRender37339873744
getState74203712
initialActions62194815
loadScripts94675111519510101074
setupStore96212915
FirefoxBrowserifyHomeuiStartup13951228183911314561634
load1203107314328112681341
domContentLoaded1202107214328112671341
domInteractive1053435059106245
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect3418146203579
firstReactRender29244553143
getState738710617
initialActions4116349
loadScripts1177105414088012421315
setupStore11510115939
WebpackHomeuiStartup15961376190513416801874
load13621157165512414571589
domContentLoaded13621156165512414571588
domInteractive1033434462102298
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect28195463341
firstReactRender47336065158
getState6316269
initialActions309135
loadScripts13401136163312414311567
setupStore126146201020
Benchmark value 187 exceeds gate value 10 for chrome browserify home mean backgroundConnect
Benchmark value 26 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 44 exceeds gate value 41 for chrome browserify home p95 domInteractive
Benchmark value 216 exceeds gate value 18 for chrome browserify home p95 backgroundConnect
Benchmark value 35 exceeds gate value 33 for chrome browserify home p95 getState
Benchmark value 13 exceeds gate value 1.2 for chrome browserify home p95 initialActions
Benchmark value 15 exceeds gate value 7 for chrome webpack home p95 initialActions
Benchmark value 34 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 4 exceeds gate value 1 for firefox browserify home mean initialActions
Benchmark value 12 exceeds gate value 9 for firefox browserify home mean setupStore
Benchmark value 245 exceeds gate value 195 for firefox browserify home p95 domInteractive
Benchmark value 79 exceeds gate value 70 for firefox browserify home p95 backgroundConnect
Benchmark value 9 exceeds gate value 2 for firefox browserify home p95 initialActions
Benchmark value 39 exceeds gate value 27 for firefox browserify home p95 setupStore
Benchmark value 104 exceeds gate value 100 for firefox webpack home mean domInteractive
Benchmark value 29 exceeds gate value 26 for firefox webpack home mean backgroundConnect
Benchmark value 47 exceeds gate value 38 for firefox webpack home mean firstReactRender
Benchmark value 3 exceeds gate value 1 for firefox webpack home mean initialActions
Benchmark value 298 exceeds gate value 156 for firefox webpack home p95 domInteractive
Benchmark value 58 exceeds gate value 50 for firefox webpack home p95 firstReactRender
Benchmark value 5 exceeds gate value 2 for firefox webpack home p95 initialActions
Sum of mean exceeds: 222ms | Sum of p95 exceeds: 453.8ms
Sum of all benchmark exceeds: 675.8ms

Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 58 Bytes (0%)
  • ui: -1.81 KiB (-0.03%)
  • common: 2.71 KiB (0.03%)

@MoMannn MoMannn requested a review from Mrtenz September 24, 2025 16:40
@metamaskbot
Copy link
Collaborator

📊 Page Load Benchmark Results

Current Commit: 02859e4 | Date: 9/24/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.05s (±86ms) 🟡 | historical mean value: 1.05s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 739ms (±83ms) 🟢 | historical mean value: 739ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 76ms (±14ms) 🟢 | historical mean value: 77ms ⬇️ (historical data)
📈 Detailed Results
Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.05s 86ms 1.01s 1.37s 1.34s 1.37s
domContentLoaded 739ms 83ms 696ms 1.05s 1.02s 1.05s
firstPaint 76ms 14ms 56ms 200ms 88ms 200ms
firstContentfulPaint 76ms 14ms 56ms 200ms 88ms 200ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms

Results generated automatically by MetaMask CI

@metamaskbot
Copy link
Collaborator

Builds ready [02859e4]
UI Startup Metrics (1236 ± 49 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyHomeuiStartup1236111113974912691320
load106698012004610961143
domContentLoaded106097411944510891136
domInteractive18145681741
firstPaint65688120742710731129
backgroundConnect2542392747258266
firstReactRender25174962838
getState1453771731
initialActions60778615
loadScripts81273193445842884
setupStore1053141117
WebpackHomeuiStartup1176921191413912561326
load988754167813210581136
domContentLoaded984751167413210521133
domInteractive16125191442
firstPaint1676392099186264
backgroundConnect16104061828
firstReactRender36334833644
getState64182712
initialActions62144814
loadScripts981749166413110501131
setupStore86242912
FirefoxBrowserifyHomeuiStartup1372117416779914221548
load1188102813567712481320
domContentLoaded1188102813557712481319
domInteractive963226743103216
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect3218113173480
firstReactRender28235963042
getState63425612
initialActions51598413
loadScripts1163101013387412181293
setupStore12510014944
WebpackHomeuiStartup15951388218117217041922
load13581172167014414681632
domContentLoaded13571171166914414681631
domInteractive1103234268100309
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect31208093545
firstReactRender47385645055
getState8315116613
initialActions511891945
loadScripts13351148165114414471611
setupStore1062631016
Benchmark value 1236 exceeds gate value 1234 for chrome browserify home mean uiStartup
Benchmark value 254 exceeds gate value 10 for chrome browserify home mean backgroundConnect
Benchmark value 26 exceeds gate value 23 for chrome browserify home mean firstReactRender
Benchmark value 6 exceeds gate value 1 for chrome browserify home mean initialActions
Benchmark value 42 exceeds gate value 41 for chrome browserify home p95 domInteractive
Benchmark value 266 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 14 exceeds gate value 7 for chrome webpack home p95 initialActions
Benchmark value 33 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 5 exceeds gate value 1 for firefox browserify home mean initialActions
Benchmark value 12 exceeds gate value 9 for firefox browserify home mean setupStore
Benchmark value 216 exceeds gate value 195 for firefox browserify home p95 domInteractive
Benchmark value 80 exceeds gate value 70 for firefox browserify home p95 backgroundConnect
Benchmark value 13 exceeds gate value 2 for firefox browserify home p95 initialActions
Benchmark value 44 exceeds gate value 27 for firefox browserify home p95 setupStore
Benchmark value 110 exceeds gate value 100 for firefox webpack home mean domInteractive
Benchmark value 31 exceeds gate value 26 for firefox webpack home mean backgroundConnect
Benchmark value 47 exceeds gate value 38 for firefox webpack home mean firstReactRender
Benchmark value 5 exceeds gate value 1 for firefox webpack home mean initialActions
Benchmark value 309 exceeds gate value 156 for firefox webpack home p95 domInteractive
Benchmark value 55 exceeds gate value 50 for firefox webpack home p95 firstReactRender
Benchmark value 5 exceeds gate value 2 for firefox webpack home p95 initialActions
Sum of mean exceeds: 301ms | Sum of p95 exceeds: 489.8ms
Sum of all benchmark exceeds: 790.8ms

Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 58 Bytes (0%)
  • ui: -1.81 KiB (-0.03%)
  • common: 2.71 KiB (0.04%)

@jeffsmale90 jeffsmale90 added this pull request to the merge queue Sep 24, 2025
Merged via the queue into main with commit 0a2c425 Sep 24, 2025
149 checks passed
@jeffsmale90 jeffsmale90 deleted the feat/preinstall_gator_snaps branch September 24, 2025 19:07
@github-actions github-actions bot locked and limited conversation to collaborators Sep 24, 2025
@metamaskbot metamaskbot added the release-13.5.0 Issue or pull request that will be included in release 13.5.0 label Sep 24, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

release-13.5.0 Issue or pull request that will be included in release 13.5.0 size-S team-delegation MetaMask Delegation Team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants