Skip to content

Conversation

@hjetpoluru
Copy link
Contributor

@hjetpoluru hjetpoluru commented Jan 6, 2026

Description

This PR is to refactor e2e signature flows

Open in GitHub Codespaces

Changelog

CHANGELOG entry: null

Related issues

Fixes:
https://consensyssoftware.atlassian.net/browse/MMQA-533

Manual testing steps

  1. Go to this page...

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.

Note

Focuses on test-only refactors to simplify and standardize confirmation UIs and signature flows.

  • Normalizes imports by removing redesign/ and legacy/ segments, switching to unified pages/confirmations/* modules and fixing relative paths
  • Adds reusable helpers in sign.flow for signTypedData, signTypedDataV3, and signTypedDataV4; updates hardware-wallet and metrics specs to use them and ensures scroll-to-bottom where required
  • Cleans up old dapp methods for typed data signing and migrates specs across JSON-RPC, multichain, snaps, request-queuing, transactions, and settings to the new page objects
  • Minor assertions/flow tweaks in tests (e.g., network/account checks, event verifications) without changing app logic

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

@github-actions
Copy link
Contributor

github-actions bot commented Jan 6, 2026

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-qa QA team label Jan 6, 2026
@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Jan 6, 2026

✨ Files requiring CODEOWNER review ✨

🫰 @MetaMask/core-platform (1 files, +1 -1)
  • 📁 test/
    • 📁 e2e/
      • 📁 flask/
        • 📁 snaps/
          • 📄 test-snap-protocol.spec.ts +1 -1

🧪 @MetaMask/qa (16 files, +87 -23)
  • 📁 test/
    • 📁 e2e/
      • 📁 page-objects/
        • 📁 flows/
          • 📄 encrypt-decrypt.flow.ts +2 -2
          • 📄 send-transaction.flow.ts +1 -1
          • 📄 sign.flow.ts +67 -3
        • 📁 pages/
          • 📁 confirmations/
            • 📄 accountDetailsModal.ts +2 -2
            • 📄 add-network-confirmations.ts +1 -1
            • 📄 add-token-confirmations.ts +1 -1
            • 📄 alert-modal.ts +1 -1
            • 📄 batch-confirmation.ts +1 -1
            • 📄 confirmation.ts +2 -2
            • 📄 connect-account-confirmation.ts +1 -1
            • 📄 decrypt-message-confirmation.ts +1 -1
            • 📄 deploy-confirmation.ts +2 -2
            • 📄 erc20-approve-transaction-confirmation.ts +1 -1
            • 📄 gas-fee-modal.ts +2 -2
            • 📄 gas-fee-token-modal.ts +1 -1
            • 📄 get-encryption-key-confirmation.ts +1 -1

👨‍🔧 @MetaMask/wallet-integrations (6 files, +9 -9)
  • 📁 test/
    • 📁 e2e/
      • 📁 flask/
        • 📁 multichain-api/
          • 📁 evm/
            • 📄 wallet_createSession.spec.ts +1 -1
            • 📄 wallet_invokeMethod.spec.ts +3 -3
            • 📄 wallet_revokeSession.spec.ts +1 -1
            • 📄 wallet_sessionChanged.spec.ts +1 -1
          • 📁 non-evm/
            • 📄 wallet_invokeMethod.spec.ts +2 -2
            • 📄 testHelpers.ts +1 -1

@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Jan 6, 2026

Builds ready [5bb74d3]
UI Startup Metrics (1299 ± 104 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup12991065158010413581502
load108788213749811471221
domContentLoaded108188013699811421213
domInteractive2815131222390
firstPaint149631108113186267
backgroundConnect21920024510225238
firstReactRender1593451725
getState3918103144766
initialActions107112
loadScripts8696731158989301004
setupStore1374051523
numNetworkReqs171176151164
BrowserifyPower User HomeuiStartup------
load------
domContentLoaded------
domInteractive------
firstPaint------
backgroundConnect------
firstReactRender------
getState------
initialActions------
loadScripts------
setupStore------
numNetworkReqs------
WebpackStandard HomeuiStartup793653101580857937
load64557582269688778
domContentLoaded63956981869683772
domInteractive241597172171
firstPaint1125932560149268
backgroundConnect285134293798
firstReactRender14102531520
getState311399164161
initialActions105111
loadScripts63656781068681770
setupStore1153861225
numNetworkReqs181176171170
WebpackPower User HomeuiStartup------
load------
domContentLoaded------
domInteractive------
firstPaint------
backgroundConnect------
firstReactRender------
getState------
initialActions------
loadScripts------
setupStore------
numNetworkReqs------
FirefoxBrowserifyStandard HomeuiStartup13531077248322314341681
load1092883226918311551288
domContentLoaded1091882226818311551288
domInteractive8031114811698167
firstPaint------
backgroundConnect50163714753131
firstReactRender1284141220
getState11694101124
initialActions103112
loadScripts1061868225317411231215
setupStore144143181043
numNetworkReqs20981201478
BrowserifyPower User HomeuiStartup25691532364453529633304
load1744998277252621772548
domContentLoaded1743997277152621772547
domInteractive903394711481296
firstPaint------
backgroundConnect4262411484089701116
firstReactRender18115972428
getState1075535248119175
initialActions203122
loadScripts1422977252943919422356
setupStore705106817960205
numNetworkReqs69211843671170
WebpackStandard HomeuiStartup16571371227619717842100
load13631161193113814381632
domContentLoaded13631161193113814381632
domInteractive862923547117197
firstPaint------
backgroundConnect62202464477165
firstReactRender17118291827
getState2272123317105
initialActions103123
loadScripts13261098181912613771562
setupStore2452494217142
numNetworkReqs19986201477
WebpackPower User HomeuiStartup27981786378754031913475
load21221189305152125172781
domContentLoaded21221188305152125172776
domInteractive882989111683369
firstPaint------
backgroundConnect3313111843333831100
firstReactRender19126082131
getState1016325340106205
initialActions203123
loadScripts18741172285348423202619
setupStore3042063637112
numNetworkReqs68251813476159
📊 Page Load Benchmark Results

Current Commit: 5bb74d3 | Date: 1/6/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.03s (±37ms) 🟡 | historical mean value: 1.05s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 720ms (±35ms) 🟢 | historical mean value: 729ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 76ms (±10ms) 🟢 | historical mean value: 77ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.03s 37ms 1.01s 1.31s 1.06s 1.31s
domContentLoaded 720ms 35ms 697ms 991ms 745ms 991ms
firstPaint 76ms 10ms 60ms 156ms 84ms 156ms
firstContentfulPaint 76ms 10ms 60ms 156ms 84ms 156ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 58 Bytes (0%)
  • ui: 0 Bytes (0%)
  • common: 20 Bytes (0%)

@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Jan 7, 2026

Builds ready [408f65f]
UI Startup Metrics (1251 ± 112 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup12511005152611213191451
load1050846128610011161226
domContentLoaded1043841128110011051220
domInteractive241598182077
firstPaint2105912622411861067
backgroundConnect20218023211208225
firstReactRender1383651624
getState351663104253
initialActions102112
loadScripts8496461089999121025
setupStore1272841322
numNetworkReqs181184181569
BrowserifyPower User HomeuiStartup17281388226516318222051
load1070892133610911631251
domContentLoaded1058889132910811441244
domInteractive3117132232793
firstPaint171681245126211262
backgroundConnect24420055756254316
firstReactRender14113331522
getState17112324828189225
initialActions104112
loadScripts84268411061059261022
setupStore15667101438
numNetworkReqs66532062063107
WebpackStandard HomeuiStartup803650114996847991
load64457384872671817
domContentLoaded63956783871666810
domInteractive2515106182172
firstPaint1046131052116208
backgroundConnect2751573237115
firstReactRender15102431622
getState301367123853
initialActions103112
loadScripts63656582970664801
setupStore1264781334
numNetworkReqs171177171169
WebpackPower User HomeuiStartup1205912175423514141679
load692593103490716876
domContentLoaded685585101889712870
domInteractive30161282525106
firstPaint1186129057151256
backgroundConnect45754810125391
firstReactRender16132421620
getState14311863152146183
initialActions102011
loadScripts682583100487709860
setupStore14104371434
numNetworkReqs89542764697165
FirefoxBrowserifyStandard HomeuiStartup16051246223119817301940
load12721052195014113301483
domContentLoaded12711051195014113301482
domInteractive923535656121207
firstPaint------
backgroundConnect892471588127203
firstReactRender15105661625
getState186160241543
initialActions103122
loadScripts1211102916299412671360
setupStore204329371561
numNetworkReqs19988181471
BrowserifyPower User HomeuiStartup25291508412358629303340
load17311015273056822332578
domContentLoaded17311014272956822332577
domInteractive90334358293312
firstPaint------
backgroundConnect3152611523483861110
firstReactRender2011122132429
getState1025529535116155
initialActions204123
loadScripts1508998251749220512393
setupStore2653384126106
numNetworkReqs76521872997134
WebpackStandard HomeuiStartup16931383240320718182163
load13901191196013914541631
domContentLoaded13901191196013914541631
domInteractive903221642120184
firstPaint------
backgroundConnect73193465899199
firstReactRender15112741725
getState2151903217112
initialActions103123
loadScripts13471100193612413951556
setupStore3042064520176
numNetworkReqs20985191477
WebpackPower User HomeuiStartup25001608354547928903086
load19051177284546923222492
domContentLoaded19041177284546923212492
domInteractive9232120613376284
firstPaint------
backgroundConnect243251031279270989
firstReactRender19135572133
getState85592233183174
initialActions205123
loadScripts17211162258740320752337
setupStore40592912823129
numNetworkReqs71431453081139
📊 Page Load Benchmark Results

Current Commit: 408f65f | Date: 1/7/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.06s (±45ms) 🟡 | historical mean value: 1.04s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 738ms (±41ms) 🟢 | historical mean value: 726ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 79ms (±11ms) 🟢 | historical mean value: 77ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.06s 45ms 1.02s 1.37s 1.09s 1.37s
domContentLoaded 738ms 41ms 706ms 1.04s 763ms 1.04s
firstPaint 79ms 11ms 60ms 160ms 88ms 160ms
firstContentfulPaint 79ms 11ms 60ms 160ms 88ms 160ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 58 Bytes (0%)
  • ui: 0 Bytes (0%)
  • common: 20 Bytes (0%)

@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Jan 7, 2026

Builds ready [75240d8]
UI Startup Metrics (1254 ± 95 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup1254104015429513181381
load105386613448911111196
domContentLoaded104686413388811001190
domInteractive251594192288
firstPaint150641101113187274
backgroundConnect21319525110218239
firstReactRender1493841622
getState351463104056
initialActions106113
loadScripts840656113288899980
setupStore1252941421
numNetworkReqs181180181173
BrowserifyPower User HomeuiStartup16951408237616217731992
load1044863151112011251273
domContentLoaded1035856149511911201250
domInteractive2917130222594
firstPaint167671271156200415
backgroundConnect23019751446231280
firstReactRender15113631521
getState16712429231184236
initialActions103112
loadScripts82566412541149051038
setupStore1665591535
numNetworkReqs65531321664112
WebpackStandard HomeuiStartup809662105586853977
load65758291275683808
domContentLoaded65257690374677802
domInteractive261692192281
firstPaint1116231355141226
backgroundConnect246133233574
firstReactRender15113341626
getState3615133194665
initialActions105112
loadScripts64857489973675798
setupStore1374681430
numNetworkReqs171175171168
WebpackPower User HomeuiStartup12851013198018713791666
load7846371086111902979
domContentLoaded7776311074110895971
domInteractive35191603029119
firstPaint15269913109178322
backgroundConnect89867717071598
firstReactRender17132621822
getState15313220314158187
initialActions102011
loadScripts7746291071108886963
setupStore16105191443
numNetworkReqs65511291763117
FirefoxBrowserifyStandard HomeuiStartup13601049265321214521755
load1090900227916311451271
domContentLoaded1089899227916311451271
domInteractive7431119111789135
firstPaint------
backgroundConnect52182064657178
firstReactRender1393741323
getState126105131225
initialActions102012
loadScripts1059886217614911121183
setupStore13484121141
numNetworkReqs19977191475
BrowserifyPower User HomeuiStartup25541519428260629923309
load1755985280756222412570
domContentLoaded1754985280756222402569
domInteractive86333917491298
firstPaint------
backgroundConnect3822312224148931155
firstReactRender21126092546
getState995725731106147
initialActions208123
loadScripts1436963242342619582300
setupStore2952344419105
numNetworkReqs755017329104131
WebpackStandard HomeuiStartup15491287204918316441944
load12931093157011113531509
domContentLoaded12931093156911113521509
domInteractive71281773792144
firstPaint------
backgroundConnect55182143964136
firstReactRender15115151522
getState2081602715107
initialActions103122
loadScripts12611080154610313181473
setupStore164106161449
numNetworkReqs19978181473
WebpackPower User HomeuiStartup26341556355154130883302
load19721116279349824032635
domContentLoaded19721115279349824032634
domInteractive71304247560282
firstPaint------
backgroundConnect2951511543293351074
firstReactRender21126692545
getState1006139747111192
initialActions218123
loadScripts17401093262341721912351
setupStore3649901141888
numNetworkReqs73461613269156
📊 Page Load Benchmark Results

Current Commit: 75240d8 | Date: 1/7/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.06s (±40ms) 🟡 | historical mean value: 1.04s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 738ms (±37ms) 🟢 | historical mean value: 724ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 80ms (±14ms) 🟢 | historical mean value: 78ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.06s 40ms 1.03s 1.35s 1.09s 1.35s
domContentLoaded 738ms 37ms 715ms 1.01s 764ms 1.01s
firstPaint 80ms 14ms 60ms 208ms 88ms 208ms
firstContentfulPaint 80ms 14ms 60ms 208ms 88ms 208ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 1.75 KiB (0.04%)
  • ui: -2.66 KiB (-0.03%)
  • common: 3.91 KiB (0.04%)

@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Jan 7, 2026

Builds ready [cdec316]
UI Startup Metrics (1321 ± 129 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup13211065165712914181535
load1109861134811811821321
domContentLoaded1103857133811711751313
domInteractive2715109192481
firstPaint162671087116198312
backgroundConnect2191992579224237
firstReactRender1495251523
getState3819116144459
initialActions107112
loadScripts89166111311179651106
setupStore1273241321
numNetworkReqs171176171170
BrowserifyPower User HomeuiStartup18131453237618319442132
load1042874142111511121258
domContentLoaded1033869141011310991247
domInteractive2917118222590
firstPaint161661218152201339
backgroundConnect25419868293243514
firstReactRender14112321520
getState18914231330212237
initialActions104111
loadScripts81866411821098791016
setupStore1774581737
numNetworkReqs66522122362113
WebpackStandard HomeuiStartup805663104679847986
load64658185561662802
domContentLoaded64157784360656796
domInteractive2616105192287
firstPaint1246259681156279
backgroundConnect276177293490
firstReactRender16112841823
getState351574144660
initialActions104112
loadScripts63857483458653787
setupStore1363871534
numNetworkReqs181184181171
WebpackPower User HomeuiStartup1209953181818512521655
load692589109681711864
domContentLoaded685582107980705859
domInteractive30171412723110
firstPaint12660874101142281
backgroundConnect927651138123553
firstReactRender16132111718
getState15513619611162176
initialActions101011
loadScripts682579106879703852
setupStore1483971337
numNetworkReqs66532022462127
FirefoxBrowserifyStandard HomeuiStartup13911106234420614841807
load1113933215215911831345
domContentLoaded1113933215215911831345
domInteractive7532120211985167
firstPaint------
backgroundConnect58201974680151
firstReactRender12102331318
getState136128161226
initialActions102122
loadScripts1077920213814811281267
setupStore195248331357
numNetworkReqs19986191375
BrowserifyPower User HomeuiStartup26391516429558730813365
load1733989269957823002531
domContentLoaded1732989269857823002529
domInteractive933395311588336
firstPaint------
backgroundConnect3732214014334531219
firstReactRender19114752127
getState1146726337126187
initialActions3134438
loadScripts1427961251245119602277
setupStore295286423289
numNetworkReqs75541512883144
WebpackStandard HomeuiStartup15561273204417116481927
load13071100182812613761582
domContentLoaded13071100182812613761581
domInteractive802817838112143
firstPaint------
backgroundConnect63212554967186
firstReactRender14112831524
getState16873121645
initialActions102022
loadScripts12721080173111413051554
setupStore194215321577
numNetworkReqs20986201478
WebpackPower User HomeuiStartup27441663572661431713412
load20651121513059624552651
domContentLoaded20641121513059624542650
domInteractive10728336334171200
firstPaint------
backgroundConnect3552211883814091159
firstReactRender21128282229
getState1177026837125193
initialActions3165727
loadScripts17841106510756722462446
setupStore2742434021103
numNetworkReqs73511682976142
📊 Page Load Benchmark Results

Current Commit: cdec316 | Date: 1/7/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.02s (±37ms) 🟡 | historical mean value: 1.04s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 710ms (±35ms) 🟢 | historical mean value: 724ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 76ms (±11ms) 🟢 | historical mean value: 78ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.02s 37ms 998ms 1.29s 1.05s 1.29s
domContentLoaded 710ms 35ms 690ms 974ms 737ms 974ms
firstPaint 76ms 11ms 60ms 172ms 84ms 172ms
firstContentfulPaint 76ms 11ms 60ms 172ms 84ms 172ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 1.75 KiB (0.04%)
  • ui: -2.66 KiB (-0.03%)
  • common: 3.91 KiB (0.04%)

@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Jan 12, 2026

Builds ready [a941738]
UI Startup Metrics (1281 ± 96 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--1281102215289613421421
load--106286513249011261165
domContentLoaded--105686213149011181159
domInteractive--281598202584
firstPaint--179651119164193307
backgroundConnect--21619226513222247
firstReactRender--16103961830
getState--371897144258
initialActions--105112
loadScripts--848669111389914954
setupStore--1273351420
numNetworkReqs--171177161165
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--19501643256320120562406
load--1052886163113110661339
domContentLoaded--1039881162113110551322
domInteractive--35181412633114
firstPaint--197701348187239390
backgroundConnect--25620564394240562
firstReactRender--23175262534
getState--17814329328191235
initialActions--104112
loadScripts--82468313911278261113
setupStore--19115291941
numNetworkReqs--58371332461127
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--810668113683858972
load--65558386666684786
domContentLoaded--65057786065678778
domInteractive--251486172278
firstPaint--1195935163160257
backgroundConnect--2861493335116
firstReactRender--16103041722
getState--36152453342136
initialActions--103112
loadScripts--64757585163675768
setupStore--1274471227
numNetworkReqs--181183181169
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--1399988215529616541922
load--67958999384690880
domContentLoaded--66958398884678874
domInteractive--35171452834120
firstPaint--14564835101180292
backgroundConnect--82760616224540
firstReactRender--22173632428
getState--15113225920157180
initialActions--106111
loadScripts--66658097983675865
setupStore--1665381541
numNetworkReqs--993824048136205
19--------
FirefoxBrowserifyStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--13091062210218914151733
load--1049882181012811231239
domContentLoaded--1048881181012911231239
domInteractive--55301733178129
firstPaint--------
backgroundConnect--51172124570149
firstReactRender--1292221216
getState--176411421141
initialActions--108122
loadScripts--1019864177911710901184
setupStore--145141201241
numNetworkReqs--19977191474
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--24651924393538225683275
load--12401005254625512441840
domContentLoaded--12401004254625512441840
domInteractive--1143647592114366
firstPaint--------
backgroundConnect--11019960114128294
firstReactRender--231593102533
getState--26055927221335770
initialActions--208123
loadScripts--1197985251923712021695
setupStore--1248955170106566
numNetworkReqs--60282264475164
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--16921378316024618032188
load--14111163288520414871666
domContentLoaded--14111163288520414861666
domInteractive--101301470146109233
firstPaint--------
backgroundConnect--62172824674155
firstReactRender--16122831723
getState--208163241851
initialActions--103122
loadScripts--13731149281219114281609
setupStore--195307341558
numNetworkReqs--19979181472
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--29101854646780428604665
load--16461242369255916662986
domContentLoaded--16461242369256016662986
domInteractive--11132594105107263
firstPaint--------
backgroundConnect--1883816322801661051
firstReactRender--261780102947
getState--31677905243487811
initialActions--207123
loadScripts--15481224350645816072723
setupStore--1118777149104480
numNetworkReqs--58292024849192
19--------
📊 Page Load Benchmark Results

Current Commit: a941738 | Date: 1/12/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.05s (±44ms) 🟡 | historical mean value: 1.04s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 729ms (±40ms) 🟢 | historical mean value: 729ms ⬇️ (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 44ms 1.01s 1.37s 1.08s 1.37s
domContentLoaded 729ms 40ms 703ms 1.03s 746ms 1.03s
firstPaint 77ms 15ms 60ms 208ms 88ms 208ms
firstContentfulPaint 77ms 15ms 60ms 208ms 88ms 208ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 58 Bytes (0%)
  • ui: 0 Bytes (0%)
  • common: 20 Bytes (0%)

@hjetpoluru hjetpoluru added this pull request to the merge queue Jan 12, 2026
@hjetpoluru hjetpoluru removed this pull request from the merge queue due to a manual request Jan 12, 2026
@hjetpoluru hjetpoluru added this pull request to the merge queue Jan 12, 2026
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to no response for status checks Jan 13, 2026
@hjetpoluru hjetpoluru added this pull request to the merge queue Jan 13, 2026
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to no response for status checks Jan 13, 2026
@hjetpoluru hjetpoluru added this pull request to the merge queue Jan 13, 2026
github-merge-queue bot pushed a commit that referenced this pull request Jan 13, 2026
<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

This PR is to refactor e2e signature flows

<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
2. What is the improvement/solution?
-->

[![Open in GitHub
Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/39053?quickstart=1)

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry: null

## **Related issues**

Fixes:
https://consensyssoftware.atlassian.net/browse/MMQA-533

## **Manual testing steps**

1. Go to this page...
2.
3.

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<!-- [screenshots/recordings] -->

### **After**

<!-- [screenshots/recordings] -->

## **Pre-merge author checklist**

- [ ] I've followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
Extension Coding
Standards](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've completed the PR template to the best of my ability
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

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

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Consolidates E2E confirmation page objects and updates tests
accordingly.
> 
> - Replaces `confirmations/redesign/*` and `confirmations/legacy/*`
imports with unified `page-objects/pages/confirmations/*` across
multichain, JSON-RPC, snaps, hardware, request-queuing, network, send,
tokens, PPOM, and settings suites
> - Fixes relative import paths in confirmation page objects (e.g.,
`Driver`, `RawLocator`, i18n helpers) and moves files accordingly
> - Adds reusable non-snap signature helpers `signTypedData`,
`signTypedDataV3`, `signTypedDataV4` in `sign.flow`, updates tests to
use them, and ensures `clickScrollToBottom` for V3/V4
> - Removes redundant in-dapp signTypedData methods from `TestDapp` and
adjusts tests to use confirmation page objects/utilities
> - Minor e2e tweaks: updated selectors/locators, network modal usages,
and confirmation classes (e.g., batch, gas-fee token/modal)
> 
> Scope: test-only refactor; no app logic changes.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
a941738. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: Howard Braham <[email protected]>
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Jan 13, 2026
@hjetpoluru hjetpoluru added this pull request to the merge queue Jan 13, 2026
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to no response for status checks Jan 13, 2026
Copy link
Contributor

@LeVinhGithub LeVinhGithub left a comment

Choose a reason for hiding this comment

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

lgtm

@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Jan 13, 2026

Builds ready [2efe99a]
UI Startup Metrics (1259 ± 97 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--1259100015279713261389
load--105484313078911131192
domContentLoaded--104883813028911071185
domInteractive--2714129222284
firstPaint--178641148175196312
backgroundConnect--21219124310216236
firstReactRender--16103951826
getState--33176194052
initialActions--106114
loadScripts--844652110588900982
setupStore--1273851422
numNetworkReqs--171178161163
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--19421588268523320462417
load--1035904143712310471328
domContentLoaded--1022893142112310371316
domInteractive--35171392435101
firstPaint--201711439191235389
backgroundConnect--266204749120235619
firstReactRender--22167272427
getState--17613172960185217
initialActions--105112
loadScripts--81068712001188221110
setupStore--1665861728
numNetworkReqs--59381372361121
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--793647110586845968
load--64156496473693770
domContentLoaded--63655995873687765
domInteractive--2514130212182
firstPaint--1056037963125241
backgroundConnect--2951183339111
firstReactRender--16113751627
getState--3314140213861
initialActions--105112
loadScripts--63255794871685757
setupStore--1063141120
numNetworkReqs--181181181174
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--1360992219126615281903
load--67759295284685894
domContentLoaded--66858794384674888
domInteractive--34171262533106
firstPaint--1356634167178274
backgroundConnect--101763118924570
firstReactRender--22173532428
getState--14712824818152174
initialActions--102111
loadScripts--66458593482672878
setupStore--15104471639
numNetworkReqs--933523247133217
19--------
FirefoxBrowserifyStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--14691125232123215712050
load--1154952191017112111411
domContentLoaded--1153946191017112111411
domInteractive--66321543492140
firstPaint--------
backgroundConnect--63212335677207
firstReactRender--14103951424
getState--1761522713104
initialActions--103122
loadScripts--1114936186815611521294
setupStore--13469111139
numNetworkReqs--19979181470
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--25551920505367825114300
load--1286988279341612552590
domContentLoaded--1286988279241612542589
domInteractive--132341006153113415
firstPaint--------
backgroundConnect--166241391262123969
firstReactRender--22156782329
getState--25969902209343713
initialActions--217123
loadScripts--1218963264333112331939
setupStore--15511780205127704
numNetworkReqs--60311924167169
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--15021248196716115941843
load--12711105165010813421460
domContentLoaded--12701105165010813421460
domInteractive--712720543100149
firstPaint--------
backgroundConnect--54172064049153
firstReactRender--14102631623
getState--158117131530
initialActions--103122
loadScripts--1236107115619512981407
setupStore--164125191462
numNetworkReqs--19981191375
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--29051946659890929914694
load--16461121514273815423099
domContentLoaded--16461115514273815413099
domInteractive--177293307458117451
firstPaint--------
backgroundConnect--1962613192981691186
firstReactRender--2615250252556
getState--28970976227443785
initialActions--206123
loadScripts--15341083512266314622963
setupStore--95670013883501
numNetworkReqs--59281933980147
19--------
📊 Page Load Benchmark Results

Current Commit: 2efe99a | Date: 1/13/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.04s (±45ms) 🟡 | historical mean value: 1.05s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 721ms (±41ms) 🟢 | historical mean value: 733ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 75ms (±13ms) 🟢 | historical mean value: 77ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.04s 45ms 1.00s 1.35s 1.08s 1.35s
domContentLoaded 721ms 41ms 695ms 1.01s 751ms 1.01s
firstPaint 75ms 13ms 56ms 184ms 88ms 184ms
firstContentfulPaint 75ms 13ms 56ms 184ms 88ms 184ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 58 Bytes (0%)
  • ui: 0 Bytes (0%)
  • common: 20 Bytes (0%)

@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Jan 13, 2026

Builds ready [dd21376]
UI Startup Metrics (1267 ± 93 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--1267103014619313431401
load--105386912118111161155
domContentLoaded--104786412058111111150
domInteractive--2615101202290
firstPaint--156641040109192299
backgroundConnect--21219129616215241
firstReactRender--1710145141730
getState--361996144173
initialActions--106112
loadScripts--84266399680906945
setupStore--1254461223
numNetworkReqs--171180171167
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--18731390251020819892333
load--98887415221129991251
domContentLoaded--97687115141129861239
domInteractive--33171792932111
firstPaint--176651285131210341
backgroundConnect--300200669147463631
firstReactRender--22157072431
getState--16913427828185220
initialActions--104112
loadScripts--76966713021117761038
setupStore--1865091740
numNetworkReqs--59372072857129
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--789651105879832944
load--63756691469674781
domContentLoaded--63156290869668773
domInteractive--2515123212084
firstPaint--1065833255141225
backgroundConnect--3051203248104
firstReactRender--15103441621
getState--3215136213869
initialActions--104112
loadScripts--62855989867665770
setupStore--1255391235
numNetworkReqs--181177181172
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--1364983219729415891927
load--670594100287672887
domContentLoaded--66158899687664880
domInteractive--35171693232132
firstPaint--1346036370191279
backgroundConnect--96765319118576
firstReactRender--22163442430
getState--14913126016157167
initialActions--105111
loadScripts--65858598785661870
setupStore--1584671636
numNetworkReqs--1003723850139226
19--------
FirefoxBrowserifyStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--14021051228922515231835
load--1117899196516511961422
domContentLoaded--1117899196516511951422
domInteractive--72302444397164
firstPaint--------
backgroundConnect--59183185367181
firstReactRender--13104141321
getState--145113171133
initialActions--102112
loadScripts--1080884193914711421356
setupStore--163238301243
numNetworkReqs--19983191475
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--266918829715100925574852
load--12851003701364212622043
domContentLoaded--12851003701264212622043
domInteractive--175345310526119399
firstPaint--------
backgroundConnect--126331133183113273
firstReactRender--2515147162533
getState--26726881209353793
initialActions--217123
loadScripts--1229983698361511991613
setupStore--1577809200170650
numNetworkReqs--60302804949200
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--15581284197515516211879
load--13191117163010413781540
domContentLoaded--13191117163010413781538
domInteractive--922819839129145
firstPaint--------
backgroundConnect--53211793756156
firstReactRender--15112731622
getState--187143221554
initialActions--102022
loadScripts--1286110116059313321476
setupStore--185175241664
numNetworkReqs--19982181471
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--28941933508979029064699
load--15281154316548415582933
domContentLoaded--15281154316448415582933
domInteractive--1023039980105346
firstPaint--------
backgroundConnect--1642812382581421129
firstReactRender--2616115152763
getState--300811026249507835
initialActions--206123
loadScripts--14361136298436915052570
setupStore--96864912685418
numNetworkReqs--58292004160176
19--------
📊 Page Load Benchmark Results

Current Commit: dd21376 | Date: 1/13/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.04s (±54ms) 🟡 | historical mean value: 1.05s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 730ms (±51ms) 🟢 | historical mean value: 734ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 76ms (±11ms) 🟢 | historical mean value: 77ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.04s 54ms 1.01s 1.32s 1.09s 1.32s
domContentLoaded 730ms 51ms 699ms 1.01s 780ms 1.01s
firstPaint 76ms 11ms 60ms 176ms 84ms 176ms
firstContentfulPaint 76ms 11ms 60ms 176ms 84ms 176ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 58 Bytes (0%)
  • ui: 0 Bytes (0%)
  • common: 20 Bytes (0%)

@hjetpoluru hjetpoluru added this pull request to the merge queue Jan 13, 2026
Merged via the queue into main with commit c46e310 Jan 13, 2026
337 of 339 checks passed
@hjetpoluru hjetpoluru deleted the refactor-signature-e2e-test branch January 13, 2026 14:54
@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 Jan 13, 2026
@github-actions github-actions bot locked and limited conversation to collaborators Jan 13, 2026
@metamaskbot metamaskbot added the release-13.15.0 Issue or pull request that will be included in release 13.15.0 label Jan 13, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

no-changelog no-changelog Indicates no external facing user changes, therefore no changelog documentation needed release-13.15.0 Issue or pull request that will be included in release 13.15.0 size-M skip-e2e-quality-gate team-qa QA team

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

9 participants