Skip to content

feat: Gator Permissions Revocation#37209

Merged
jeffsmale90 merged 26 commits intomainfrom
feat/add-revocation-flow
Nov 5, 2025
Merged

feat: Gator Permissions Revocation#37209
jeffsmale90 merged 26 commits intomainfrom
feat/add-revocation-flow

Conversation

@hanzel98
Copy link
Contributor

@hanzel98 hanzel98 commented Oct 26, 2025

Overview

This PR adds a complete revocation flow for gator permissions, including delegation status checking and transaction handling.

Key Changes

1. Enhanced Gator Permissions Controller

  • Added delegation status checking: New isDelegationDisabled function to check if a delegation is already disabled on-chain
  • Improved error handling: Better error messages and logging for debugging
  • Enhanced API: Updated fetchAndUpdateGatorPermissions to accept optional parameters for filtering

2. Background API Integration

  • Added call method: New API method in metamask-controller.js to handle eth_call requests
  • Network client integration: Proper routing of RPC calls through the network controller
  • Messenger configuration: Added TransactionController:transactionConfirmed event to allowed events

3. Delegation Utilities

  • New delegation functions: Added encodeDisabledDelegationsCheck and decodeDisabledDelegationsResult for on-chain delegation status checking
  • Enhanced delegation handling: Better support for checking delegation states

4. Revocation Flow Improvements

  • Smart revocation logic: Automatically detects if delegation is already disabled and handles accordingly
  • Transaction management: Proper handling of disable transactions and pending revocations
  • Better user experience: More informative logging and error handling

Changelog

CHANGELOG entry: Enabled revocation flow of advance permissions

Technical Details

Files Modified:

  • app/scripts/metamask-controller.js: Added call method for RPC requests
  • app/scripts/controller-init/messengers/gator-permissions/gator-permissions-controller-messenger.ts: Added transaction confirmed event
  • ui/store/controller-actions/gator-permissions-controller.ts: Enhanced with delegation checking and improved API
  • ui/hooks/gator-permissions/useRevokeGatorPermissions.ts: Added delegation status checking
  • shared/lib/delegation/delegation.ts: New delegation utility functions

Key Features:

  1. On-chain delegation checking: Verifies if delegation is already disabled before creating transactions
  2. Improved error handling: Better debugging and user feedback
  3. Enhanced API flexibility: Support for parameterized permission fetching
  4. Transaction flow optimization: Smarter handling of revocation scenarios

Testing

  • All existing functionality preserved
  • New delegation checking logic tested
  • Error handling improved with better logging

Note

Adds full Gator permissions revocation flow with on-chain disabled checks, background/controller APIs, UI hooks, and config/policy updates.

  • Gator Permissions Controller/API:
    • Expose api methods: addPendingRevocation, submitRevocation, and parameterized fetchAndUpdateGatorPermissions.
    • Add background handler checkDelegationDisabled via metamask-controller.js (performs eth_call), and wire to NetworkController.
    • Messenger now delegates TransactionController events: transactionConfirmed, transactionFailed, transactionDropped.
  • UI:
    • useRevokeGatorPermissions: resolve network client per permission, pre-check on-chain disabled state, call addPendingRevocation/submitRevocation, handle batch revocations (filter already-disabled), and navigate on pending confirmation.
    • useGatorPermissions: call fetchAndUpdateGatorPermissions({ isRevoked: false }).
    • Header navbar: handle intermediate Gator Permissions page before Sites.
    • Controller actions: add addPendingRevocation, submitRevocation, checkDelegationDisabled; update fetchAndUpdateGatorPermissions to accept params.
  • Shared utils:
    • Add encodeDisabledDelegationsCheck and decodeDisabledDelegationsResult for disabledDelegations(bytes32) calls.
  • Config/Build:
    • Enable GATOR_PERMISSIONS_REVOCATION_ENABLED for Flask build.
    • LavaMoat policy: allow setTimeout/clearTimeout for @metamask/gator-permissions-controller.
    • Bump @metamask/gator-permissions-controller to ^0.4.0 (lockfile updated); update @metamask/shield-controller.
  • Tests/State:
    • Update tests and snapshots; add pendingRevocations to state shape; e2e navigation adjusted.

Written by Cursor Bugbot for commit 233483c. This will update automatically on new commits. Configure here.

@github-actions
Copy link
Contributor

github-actions bot commented Oct 26, 2025

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 Oct 26, 2025
cursor[bot]

This comment was marked as outdated.

@hanzel98
Copy link
Contributor Author

I have read the CLA Document and I hereby sign the CLA

@hanzel98 hanzel98 changed the title feat: Add gator permissions revocation flow Add Gator Permissions Revocation Flow Oct 26, 2025
@hanzel98
Copy link
Contributor Author

Right now the actions is failing because the gator-permissions-controller needs to be updated
image

There are 2 dependencies

Base automatically changed from feat/add-review-gator-permissions-page to main October 28, 2025 17:49
@hanzel98 hanzel98 requested a review from a team as a code owner October 28, 2025 17:49
@hanzel98 hanzel98 marked this pull request as draft November 4, 2025 03:24
@jeffsmale90 jeffsmale90 force-pushed the feat/add-revocation-flow branch from caae5e5 to d86abc2 Compare November 5, 2025 08:50
@socket-security
Copy link

socket-security bot commented Nov 5, 2025

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updated@​metamask/​shield-controller@​1.1.0 ⏵ 1.2.098 +110076 +195 +1100
Updated@​metamask/​gator-permissions-controller@​0.3.0 ⏵ 0.4.09910085 +393 +1100

View full report

@jeffsmale90 jeffsmale90 changed the title Add Gator Permissions Revocation Flow feat: Gator Permissions Revocation Nov 5, 2025
hanzel98 and others added 5 commits November 5, 2025 21:55
- @metamask/gator-permissios-controller
- @metamask/signature-controller
- @metamask/permissions-kernel-controller
- @metamask/shielf-controller
@jeffsmale90 jeffsmale90 force-pushed the feat/add-revocation-flow branch from d86abc2 to cda6628 Compare November 5, 2025 08:55
@metamaskbot
Copy link
Collaborator

Builds ready [cda6628]
UI Startup Metrics (1234 ± 98 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup1234109216359812711438
load105492913468810911254
domContentLoaded104792013378610821245
domInteractive211489122054
firstPaint67799134142810491246
backgroundConnect2332182869236249
firstReactRender27185992850
getState2175292637
initialActions50465713
loadScripts8217061089848561002
setupStore1162741220
numNetworkReqs1367319670
BrowserifyPower User HomeuiStartup19081641307641821463076
load946799155721811781557
domContentLoaded937791153421411691534
domInteractive251378174278
firstPaint68922415693878411569
backgroundConnect19417424419203244
firstReactRender26234042840
getState18615029639197296
initialActions52102610
loadScripts75262613192009341319
setupStore16843102643
numNetworkReqs16810031790294317
WebpackStandard HomeuiStartup8787421255918811041
load637580102780636804
domContentLoaded628574100576629788
domInteractive181295121540
firstPaint214621009202208760
backgroundConnect271177152865
firstReactRender321994113643
getState1162631318
initialActions4123359
loadScripts62557199474626777
setupStore1252841318
numNetworkReqs1367319870
WebpackPower User HomeuiStartup14071207201025414972010
load70859011121598331112
domContentLoaded68157910881378001088
domInteractive271478215078
firstPaint4397310913186521091
backgroundConnect62113018192301
firstReactRender29254442844
getState15311117320166173
initialActions613710337
loadScripts67657610761347881076
setupStore1172761327
numNetworkReqs1609426258198262
FirefoxBrowserifyStandard HomeuiStartup14391244177111414931701
load1225107715048912801394
domContentLoaded1224107715048912801393
domInteractive1163632955121246
firstPaint------
backgroundConnect4326108155077
firstReactRender25214542635
getState84719719
initialActions31142311
loadScripts1198105914828712471371
setupStore156185211234
numNetworkReqs1266215756
BrowserifyPower User HomeuiStartup25382154368041128343680
load13851196168416215781684
domContentLoaded13851196168416215781684
domInteractive23892585183477585
firstPaint------
backgroundConnect12829438126196438
firstReactRender392887144087
getState1327721933138219
initialActions101103247103
loadScripts13401143164115715271641
setupStore4363387738338
numNetworkReqs1386733490220334
WebpackStandard HomeuiStartup15861422214715016011954
load13491191165610413911593
domContentLoaded13491190165610413911592
domInteractive1023134448108190
firstPaint------
backgroundConnect48251412353108
firstReactRender29227693038
getState10416117924
initialActions50749325
loadScripts1319116816119713661515
setupStore186246291271
numNetworkReqs1266716765
WebpackPower User HomeuiStartup27082397355132727443551
load15691371187813616661878
domContentLoaded15691371187813516651878
domInteractive18387462128335462
firstPaint------
backgroundConnect1115433775165337
firstReactRender443361105461
getState14110224044145240
initialActions11244131844
loadScripts15261347183013616241830
setupStore51102366168236
numNetworkReqs16464332100246332
📊 Page Load Benchmark Results

Current Commit: cda6628 | Date: 11/5/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 979ms (±63ms) 🟢 | historical mean value: 1.03s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 683ms (±59ms) 🟢 | historical mean value: 719ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 74ms (±11ms) 🟢 | historical mean value: 78ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 979ms 63ms 942ms 1.24s 1.20s 1.24s
domContentLoaded 683ms 59ms 653ms 940ms 882ms 940ms
firstPaint 74ms 11ms 60ms 168ms 84ms 168ms
firstContentfulPaint 74ms 11ms 60ms 168ms 84ms 168ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 494 Bytes (0.01%)
  • ui: 967 Bytes (0.01%)
  • common: 3.61 KiB (0.04%)

@metamaskbot
Copy link
Collaborator

Builds ready [edb9b9c]
UI Startup Metrics (1207 ± 93 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup1207106516589312391369
load102691613237410611158
domContentLoaded101988313137410531151
domInteractive211487141859
firstPaint5567312193969991103
backgroundConnect23121531713236257
firstReactRender26185373043
getState22777112641
initialActions806210833
loadScripts795653106674834930
setupStore1162541119
numNetworkReqs1367519672
BrowserifyPower User HomeuiStartup19981743268434824262684
load1053884165721813141657
domContentLoaded1044878164021512971640
domInteractive281580194780
firstPaint81622416694269641669
backgroundConnect24122328116246281
firstReactRender28244852848
getState17916121517191215
initialActions539269
loadScripts814662137820310511378
setupStore1293051230
numNetworkReqs1427326079247260
WebpackStandard HomeuiStartup8287061118808321024
load60055690066598775
domContentLoaded59355088263592761
domInteractive161270101440
firstPaint20557872196176717
backgroundConnect261271143056
firstReactRender29186193445
getState1062131216
initialActions3129349
loadScripts59054887260589751
setupStore1253551224
numNetworkReqs1367819871
WebpackPower User HomeuiStartup13501158195825315131958
load663571938120756938
domContentLoaded636559901102693901
domInteractive251372194272
firstPaint428136940243583940
backgroundConnect68123488965348
firstReactRender27253222832
getState15011017620164176
initialActions41205420
loadScripts63155788999682889
setupStore1263191331
numNetworkReqs1106822555162225
FirefoxBrowserifyStandard HomeuiStartup14021230194013814441691
load1193106714938712381367
domContentLoaded1193106714938712381367
domInteractive1033635044107183
firstPaint------
backgroundConnect43251522445103
firstReactRender24194052537
getState12419327930
initialActions41244311
loadScripts1164104514708012031329
setupStore13674101230
numNetworkReqs1367719773
BrowserifyPower User HomeuiStartup24922054323832926023238
load13781206172116315091721
domContentLoaded13771206172116315091721
domInteractive21798647182366647
firstPaint------
backgroundConnect12640403115257403
firstReactRender403078124778
getState13210718924140189
initialActions1911563718156
loadScripts13431179169216214251692
setupStore4171514555151
numNetworkReqs1636531783242317
WebpackStandard HomeuiStartup16111409212313516711947
load13721220163310214541566
domContentLoaded13711220163310214541566
domInteractive1023223433112178
firstPaint------
backgroundConnect4820128215295
firstReactRender312392143075
getState84568718
initialActions51286324
loadScripts1342119415569614241532
setupStore166118181454
numNetworkReqs1366716763
WebpackPower User HomeuiStartup25362204329832827973298
load15271282189418717231894
domContentLoaded15261281189318717231893
domInteractive17037565148286565
firstPaint------
backgroundConnect1003031172157311
firstReactRender393063104963
getState1409634065141340
initialActions913091830
loadScripts14841261185117116931851
setupStore34101073779107
numNetworkReqs1385631388232313
📊 Page Load Benchmark Results

Current Commit: edb9b9c | Date: 11/5/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.05s (±72ms) 🟡 | historical mean value: 1.04s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 732ms (±68ms) 🟢 | historical mean value: 723ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 75ms (±9ms) 🟢 | historical mean value: 79ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.05s 72ms 1.01s 1.33s 1.26s 1.33s
domContentLoaded 732ms 68ms 696ms 997ms 934ms 997ms
firstPaint 75ms 9ms 60ms 152ms 84ms 152ms
firstContentfulPaint 75ms 9ms 60ms 152ms 84ms 152ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 494 Bytes (0.01%)
  • ui: 967 Bytes (0.01%)
  • common: 3.61 KiB (0.04%)

@MoMannn
Copy link
Member

MoMannn commented Nov 5, 2025

@metamaskbot update-policies

@metamaskbot metamaskbot added the INVALID-PR-TEMPLATE PR's body doesn't match template label Nov 5, 2025
@metamaskbot
Copy link
Collaborator

Policies updated.
👀 Please review the diff for suspicious new powers.

🧠 Learn how: https://lavamoat.github.io/guides/policy-diff/#what-to-look-for-when-reviewing-a-policy-diff

@github-project-automation github-project-automation bot moved this to Needs dev review in PR review queue Nov 5, 2025
@metamaskbot
Copy link
Collaborator

Builds ready [74114e7]
UI Startup Metrics (1202 ± 99 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup1202106416149912551393
load102486313828910851169
domContentLoaded101885713768910801159
domInteractive201480131759
firstPaint61788123339710021170
backgroundConnect22921431912230249
firstReactRender24185772443
getState21863102539
initialActions50304611
loadScripts795640113289856938
setupStore1053041121
numNetworkReqs1367619671
BrowserifyPower User HomeuiStartup19921767278632123902786
load1029916140815912271408
domContentLoaded1022910140115912181401
domInteractive271464175064
firstPaint59520412523929431252
backgroundConnect24022728013248280
firstReactRender27243733037
getState17716120516191205
initialActions52123812
loadScripts79368811551549791155
setupStore1393661236
numNetworkReqs1187324971219249
WebpackStandard HomeuiStartup8417141217968371092
load61355793480608859
domContentLoaded60555091677601844
domInteractive16127591437
firstPaint18660921181186583
backgroundConnect251281142966
firstReactRender29185483443
getState1163741217
initialActions4119359
loadScripts60254890575599833
setupStore1263751327
numNetworkReqs1367619870
WebpackPower User HomeuiStartup13111139196626214521966
load644576902108728902
domContentLoaded62756586598695865
domInteractive221355154155
firstPaint352100869241578869
backgroundConnect691827481143274
firstReactRender25232912629
getState14710516319158163
initialActions113123
loadScripts62256285595685855
setupStore116297929
numNetworkReqs1116522658170226
FirefoxBrowserifyStandard HomeuiStartup14941295190812215401747
load1266111314648013251401
domContentLoaded1266111214648013251401
domInteractive1223536462129288
firstPaint------
backgroundConnect5026249305489
firstReactRender27214952741
getState11418025717
initialActions41193410
loadScripts1236106614127913011370
setupStore1256981319
numNetworkReqs1165814851
BrowserifyPower User HomeuiStartup25492258332228828143322
load14221234187920016441879
domContentLoaded14221233187920016441879
domInteractive22196549174506549
firstPaint------
backgroundConnect11230388104143388
firstReactRender443091144991
getState1418027145178271
initialActions11151151051
loadScripts13801209176918916171769
setupStore4952456450245
numNetworkReqs1316422662209226
WebpackStandard HomeuiStartup16011438213113716341920
load1365120216099614331567
domContentLoaded1365120216099614331567
domInteractive1013225737109182
firstPaint------
backgroundConnect48221732553109
firstReactRender292377102943
getState10421722716
initialActions6116016424
loadScripts1334118515739314061501
setupStore14778121334
numNetworkReqs1266916764
WebpackPower User HomeuiStartup26522257375937827313759
load15431284188416417151884
domContentLoaded15431283188416417151884
domInteractive17637424127349424
firstPaint------
backgroundConnect883125168103251
firstReactRender41305684756
getState1277824239143242
initialActions2722646417264
loadScripts15121262185716116751857
setupStore2981112850111
numNetworkReqs1336730691247306
📊 Page Load Benchmark Results

Current Commit: 74114e7 | Date: 11/5/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.06s (±38ms) 🟡 | historical mean value: 1.04s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 738ms (±36ms) 🟢 | historical mean value: 723ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 79ms (±10ms) 🟢 | historical mean value: 77ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.06s 38ms 1.04s 1.34s 1.07s 1.34s
domContentLoaded 738ms 36ms 715ms 997ms 752ms 997ms
firstPaint 79ms 10ms 68ms 168ms 88ms 168ms
firstContentfulPaint 79ms 10ms 68ms 168ms 88ms 168ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 1.42 KiB (0.03%)
  • ui: 822 Bytes (0.01%)
  • common: 3.62 KiB (0.04%)

hanzel98 and others added 5 commits November 5, 2025 10:44
…rPermissions

When revoking an already-disabled permission, the hook returns null and setTransactionId(null?.id) sets transactionId to undefined. The useEffect hook now checks that transactionId is defined before attempting navigation to avoid calling navigateToId(undefined).
@MoMannn MoMannn moved this from Needs dev review to Has approvals, needs CODEOWNER in PR review queue Nov 5, 2025
@metamaskbot
Copy link
Collaborator

Builds ready [5baf41d]
UI Startup Metrics (1175 ± 97 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup1175101514609712511369
load100186912899210701157
domContentLoaded99484412709110611146
domInteractive201469111851
firstPaint6258312933939921129
backgroundConnect20318829912206221
firstReactRender25174882841
getState2074482535
initialActions60315715
loadScripts799635106890866948
setupStore1173041220
numNetworkReqs1367519671
BrowserifyPower User HomeuiStartup19891767270332522782703
load1037903152019612901520
domContentLoaded1029895151119412831511
domInteractive281572195272
firstPaint76618715224309711522
backgroundConnect23422427111240271
firstReactRender26243222632
getState18116123021203230
initialActions427147
loadScripts803676127918810491279
setupStore1091311213
numNetworkReqs1207125676250256
WebpackStandard HomeuiStartup8306941187908411087
load60655495879598849
domContentLoaded59954894176592820
domInteractive161157101449
firstPaint23257944230207819
backgroundConnect241270132956
firstReactRender29176183437
getState1153341216
initialActions41345421
loadScripts59654593074590810
setupStore1152431215
numNetworkReqs1367620872
WebpackPower User HomeuiStartup13131162183821314241838
load657584977116716977
domContentLoaded639573930102700930
domInteractive241362174662
firstPaint33462708211589708
backgroundConnect55102777453277
firstReactRender27242912829
getState15011117119161171
initialActions31113411
loadScripts63457192099689920
setupStore1262881328
numNetworkReqs1076621854168218
FirefoxBrowserifyStandard HomeuiStartup15001302202212515381779
load1269111015788513181403
domContentLoaded1268111015778513181403
domInteractive1203638057134249
firstPaint------
backgroundConnect4325113145270
firstReactRender26224852742
getState84769721
initialActions4129349
loadScripts1244109415078112911374
setupStore1366181326
numNetworkReqs1266815858
BrowserifyPower User HomeuiStartup23902102293623125162936
load13541137167917415761679
domContentLoaded13541136167917415761679
domInteractive20977604177460604
firstPaint------
backgroundConnect874030967114309
firstReactRender403066114866
getState14810420332182203
initialActions11156161556
loadScripts13241115163617215491636
setupStore24977212477
numNetworkReqs1286931682180316
WebpackStandard HomeuiStartup16031381216815416181971
load1364120116359914171605
domContentLoaded1364120116359914161604
domInteractive963219030108167
firstPaint------
backgroundConnect49231422653122
firstReactRender302276103065
getState84739716
initialActions7121722325
loadScripts1332118415779213831530
setupStore167223251269
numNetworkReqs1367418766
WebpackPower User HomeuiStartup25412224295024627852950
load15381249188219316501882
domContentLoaded15381249188119216491881
domInteractive16234501135281501
firstPaint------
backgroundConnect853020754125207
firstReactRender40325484954
getState1559426155199261
initialActions722061220
loadScripts15061231184018416261840
setupStore3081403733140
numNetworkReqs1275424869207248
📊 Page Load Benchmark Results

Current Commit: 5baf41d | Date: 11/5/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.04s (±44ms) 🟡 | historical mean value: 1.02s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 724ms (±41ms) 🟢 | historical mean value: 710ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 79ms (±14ms) 🟢 | historical mean value: 76ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.04s 44ms 1.01s 1.39s 1.07s 1.39s
domContentLoaded 724ms 41ms 701ms 1.05s 750ms 1.05s
firstPaint 79ms 14ms 64ms 204ms 92ms 204ms
firstContentfulPaint 79ms 14ms 64ms 204ms 92ms 204ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 1.42 KiB (0.03%)
  • ui: 854 Bytes (0.01%)
  • common: 3.62 KiB (0.04%)

Copy link
Contributor

@jeffsmale90 jeffsmale90 left a comment

Choose a reason for hiding this comment

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

Looks great!

Copy link
Contributor

@davidmurdoch davidmurdoch left a comment

Choose a reason for hiding this comment

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

Policy file changes look good.

As does the metamask-controller.js integration.

I didn't review beyond those domains.

@jeffsmale90 jeffsmale90 enabled auto-merge November 5, 2025 18:16
@metamaskbot
Copy link
Collaborator

Builds ready [233483c]
UI Startup Metrics (1242 ± 92 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup1242108114889212861444
load106593012608411181225
domContentLoaded105892512548311131210
domInteractive2214139181856
firstPaint64487126143410841218
backgroundConnect2322182789235246
firstReactRender26174572942
getState2076992335
initialActions71377825
loadScripts833709102382886991
setupStore1172841122
numNetworkReqs1367620673
BrowserifyPower User HomeuiStartup19501698263029822872630
load1026900146917512391469
domContentLoaded1016894144417112341444
domInteractive271564174964
firstPaint64917414784249521478
backgroundConnect2372202559240255
firstReactRender28245882758
getState17215420512182205
initialActions62265526
loadScripts789669120816710061208
setupStore1192951129
numNetworkReqs1207225576249255
WebpackStandard HomeuiStartup8637341274988761073
load625561102484619850
domContentLoaded617555100481613826
domInteractive171265101543
firstPaint210571009208205787
backgroundConnect271268143464
firstReactRender30186183638
getState1172031316
initialActions4122358
loadScripts61355399378611815
setupStore1263451419
numNetworkReqs1367219871
WebpackPower User HomeuiStartup13451130194028817391940
load652573887110787887
domContentLoaded635561850101752850
domInteractive221356153456
firstPaint20273769156229769
backgroundConnect651022473169224
firstReactRender26242812728
getState14710616218158162
initialActions20102410
loadScripts63155984097742840
setupStore1262682326
numNetworkReqs1136922859168228
FirefoxBrowserifyStandard HomeuiStartup14361256191813214971716
load12211083166710612911414
domContentLoaded12201083166610612911414
domInteractive1143542165117236
firstPaint------
backgroundConnect4126137164867
firstReactRender25214642640
getState9417918715
initialActions41193413
loadScripts11961066163010212631386
setupStore1273761328
numNetworkReqs1266915857
BrowserifyPower User HomeuiStartup24442096316230826003162
load13431126171219314991712
domContentLoaded13421125171219314981712
domInteractive18048567150342567
firstPaint------
backgroundConnect11228398108185398
firstReactRender402978124878
getState1457421436177214
initialActions15174231374
loadScripts12991107164417914201644
setupStore3561233453123
numNetworkReqs1336631485194314
WebpackStandard HomeuiStartup16181415217615116651937
load13771212177611214201608
domContentLoaded13761212177611214201607
domInteractive1023123437120171
firstPaint------
backgroundConnect50252673253121
firstReactRender292382102940
getState9414414813
initialActions41325315
loadScripts13451195170010513991563
setupStore14788131341
numNetworkReqs1366917866
WebpackPower User HomeuiStartup27252294372443430953724
load15991353200122018162001
domContentLoaded15981353200122018152001
domInteractive21878631206472631
firstPaint------
backgroundConnect1123928887189288
firstReactRender39316474064
getState1387923146193231
initialActions11187201187
loadScripts15591321194020717711940
setupStore4191424581142
numNetworkReqs13266320103290320
📊 Page Load Benchmark Results

Current Commit: 233483c | Date: 11/5/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.05s (±44ms) 🟡 | historical mean value: 1.02s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 729ms (±39ms) 🟢 | historical mean value: 713ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 77ms (±13ms) 🟢 | historical mean value: 76ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.05s 44ms 1.01s 1.37s 1.07s 1.37s
domContentLoaded 729ms 39ms 701ms 1.00s 747ms 1.00s
firstPaint 77ms 13ms 60ms 184ms 84ms 184ms
firstContentfulPaint 77ms 13ms 60ms 184ms 84ms 184ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 1.42 KiB (0.03%)
  • ui: 854 Bytes (0.01%)
  • common: 3.62 KiB (0.04%)

Copy link
Member

@seaona seaona left a comment

Choose a reason for hiding this comment

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

QA changes LGMT

@github-project-automation github-project-automation bot moved this from Has approvals, needs CODEOWNER to Review finalised - Ready to be merged in PR review queue Nov 5, 2025
@jeffsmale90 jeffsmale90 added this pull request to the merge queue Nov 5, 2025
Merged via the queue into main with commit e1d6e32 Nov 5, 2025
326 of 329 checks passed
@github-project-automation github-project-automation bot moved this from Review finalised - Ready to be merged to Merged, Closed or Archived in PR review queue Nov 5, 2025
@jeffsmale90 jeffsmale90 deleted the feat/add-revocation-flow branch November 5, 2025 20:02
@github-actions github-actions bot locked and limited conversation to collaborators Nov 5, 2025
@metamaskbot metamaskbot added the release-13.9.0 Issue or pull request that will be included in release 13.9.0 label Nov 5, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

INVALID-PR-TEMPLATE PR's body doesn't match template release-13.9.0 Issue or pull request that will be included in release 13.9.0 size-M team-delegation MetaMask Delegation Team

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

6 participants