Skip to content

Conversation

@FrederikBolding
Copy link
Member

@FrederikBolding FrederikBolding commented Jan 28, 2026

Description

Allow queueing of snap_dialog (the non-legacy type) by adding it to the ApprovalController configuration.

This allows Snaps to queue multiple dialogs in the same way that EVM flows do. This also impacts Solana, Bitcoin and Tron.

Open in GitHub Codespaces

Changelog

CHANGELOG entry: Added support for queueing non-EVM confirmations

Related issues

https://consensyssoftware.atlassian.net/browse/WPC-36

Manual testing steps

  1. Go to https://metamask.github.io/test-dapp-multichain/latest/
  2. Connect with Solana
  3. Select "signMessage" below and click "Invoke Method" a couple of times
  4. Multiple confirmations should now be queued

Note

Allows snap_dialog (non-legacy) confirmations to be queued like other flows.

  • Adds DIALOG_APPROVAL_TYPES.default to typesExcludedFromRateLimiting in approval-controller-init.ts
  • Imports DIALOG_APPROVAL_TYPES to support the new exclusion

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

@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Jan 28, 2026

✨ Files requiring CODEOWNER review ✨

@MetaMask/confirmations (1 files, +4 -0)
  • 📁 app/
    • 📁 scripts/
      • 📁 controller-init/
        • 📁 confirmations/
          • 📄 approval-controller-init.ts +4 -0

@metamaskbot metamaskbot added the INVALID-PR-TEMPLATE PR's body doesn't match template label Jan 28, 2026
@FrederikBolding FrederikBolding marked this pull request as ready for review January 28, 2026 13:56
@FrederikBolding FrederikBolding requested a review from a team as a code owner January 28, 2026 13:56
@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Jan 28, 2026

Builds ready [2bcbbe9]
UI Startup Metrics (1403 ± 119 ms)
PlatformBuildTypePageMetricTest Title (ms)Persona (ms)Mean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--14031152171911914791620
load--1177962144411312531387
domContentLoaded--1170956143811212451372
domInteractive--2917118192583
firstPaint--161721174124215305
backgroundConnect--25323031716257288
firstReactRender--21125572435
initialActions--107114
loadScripts--934724121211310081139
setupStore--1676081931
numNetworkReqs--211573161569
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--25681504774095026884420
load--1191998181314712761453
domContentLoaded--1170981180214312491398
domInteractive--36191902536104
firstPaint--211771688205246340
backgroundConnect--55129131434296361370
firstReactRender--25166882840
initialActions--104113
loadScripts--92375015271309951147
setupStore--1556281929
numNetworkReqs--1155523344139206
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--84768511941069151056
load--708600101594783917
domContentLoaded--703596100794777909
domInteractive--251590182381
firstPaint--1086232455140215
backgroundConnect--40182013043116
firstReactRender--16104871832
initialActions--104112
loadScripts--700594100593770907
setupStore--1263251222
numNetworkReqs--221588181574
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--1289855216623714681664
load--72462710641067391007
domContentLoaded--7136211056107729999
domInteractive--3719187273698
firstPaint--157671000123162442
backgroundConnect--17313359088159443
firstReactRender--22173232328
initialActions--102111
loadScripts--7106191048105727990
setupStore--1253441417
numNetworkReqs--1284730055160251
19--------
FirefoxBrowserifyStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--14211101189818415301819
load--1142950158012612251357
domContentLoaded--1141949158012612241356
domInteractive--773322149117194
firstPaint--------
backgroundConnect--61232014480164
firstReactRender--12104041216
initialActions--102122
loadScripts--1107933140810611791275
setupStore--125119131035
numNetworkReqs--231285181976
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--27672064702961429043494
load--13051101241020913451726
domContentLoaded--13051101241020913451725
domInteractive--14253837114146351
firstPaint--------
backgroundConnect--3331301482259316940
firstReactRender--22147272431
initialActions--203123
loadScripts--12561069237217313021543
setupStore--197201056226300670
numNetworkReqs--88372854495200
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--16931333254720417982130
load--14391215203912915121684
domContentLoaded--14391215203913015121684
domInteractive--913127646111161
firstPaint--------
backgroundConnect--782622950117178
firstReactRender--15115851519
initialActions--103122
loadScripts--13981198191910814561590
setupStore--1941783411130
numNetworkReqs--231289181879
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--29672241494949332313933
load--15741259346934816752344
domContentLoaded--15731259346934816742343
domInteractive--1343240083170347
firstPaint--------
backgroundConnect--42712016473246111065
firstReactRender--21155862430
initialActions--103122
loadScripts--15271240341633916342318
setupStore--15610796192211610
numNetworkReqs--89382704890206
19--------
📊 Page Load Benchmark Results

Current Commit: 2bcbbe9 | Date: 1/28/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.04s (±38ms) 🟡 | historical mean value: 1.03s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 724ms (±36ms) 🟢 | historical mean value: 717ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 76ms (±10ms) 🟢 | historical mean value: 76ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.04s 38ms 1.01s 1.33s 1.06s 1.33s
domContentLoaded 724ms 36ms 702ms 993ms 746ms 993ms
firstPaint 76ms 10ms 64ms 164ms 88ms 164ms
firstContentfulPaint 76ms 10ms 64ms 164ms 88ms 164ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 160 Bytes (0%)
  • ui: 2.15 KiB (0.03%)
  • common: 581 Bytes (0.01%)

@FrederikBolding FrederikBolding added this pull request to the merge queue Jan 29, 2026
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Jan 29, 2026
@FrederikBolding FrederikBolding added this pull request to the merge queue Jan 29, 2026
Merged via the queue into main with commit 78513ff Jan 29, 2026
194 of 195 checks passed
@FrederikBolding FrederikBolding deleted the fb/allow-queueing-snap-dialogs branch January 29, 2026 12:26
@github-actions github-actions bot locked and limited conversation to collaborators Jan 29, 2026
@metamaskbot metamaskbot added the release-13.17.0 Issue or pull request that will be included in release 13.17.0 label Jan 29, 2026
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.17.0 Issue or pull request that will be included in release 13.17.0 size-XS team-core-platform Core Platform team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants