Skip to content

Conversation

@tuna1207
Copy link
Member

@tuna1207 tuna1207 commented Oct 31, 2025

Description

Fix subscription crypto approval screen loading flicker by using lastSelectedPaymentDetail instead of deducting from transaction approval amount

Open in GitHub Codespaces

Changelog

CHANGELOG entry: fix subscription crypto approval screen loading flicker

Related issues

Fixes:

Manual testing steps

  1. Go to shield plan screen
  2. Select crypto payment method
  3. Crypto approval transaction confirm screen should only show loading once

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

Use cached last-selected payment details and pricing to render the Shield crypto approval screen, removing approval-amount deduction logic and its tests.

  • Shield Approval UI:
    • Replace useShieldSubscriptionPricingFromTokenApproval with selector-driven data: read lastSelectedPaymentMethod, pricing, plans, and crypto payment method to derive productPrice and token info.
    • Compute approvalAmount via useMemo; simplify loading state (no async price deduction).
    • Pass productPrice and tokenSymbol to EstimatedChanges; retain BillingDetails when productPrice exists.
  • Hooks:
    • Remove useShieldSubscriptionPricingFromTokenApproval from useSubscriptionPricing.ts.
  • Tests:
    • Delete tests for the removed hook and mocks; update Shield approval tests to seed pricing and lastSelectedPaymentMethod in state and assert rendered pricing/trial details.

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

tuna1207 and others added 30 commits October 8, 2025 18:43
@metamaskbot
Copy link
Collaborator

📊 Page Load Benchmark Results

Current Commit: ddcfa60 | Date: 10/31/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.03s (±38ms) 🟡 | historical mean value: 1.04s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 717ms (±36ms) 🟢 | historical mean value: 725ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 76ms (±12ms) 🟢 | historical mean value: 76ms ⬆️ (historical data)
📈 Detailed Results
Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.03s 38ms 1.01s 1.31s 1.07s 1.31s
domContentLoaded 717ms 36ms 693ms 976ms 748ms 976ms
firstPaint 76ms 12ms 60ms 180ms 88ms 180ms
firstContentfulPaint 76ms 12ms 60ms 180ms 88ms 180ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms

Results generated automatically by MetaMask CI

@metamaskbot
Copy link
Collaborator

Builds ready [ddcfa60]
UI Startup Metrics (1273 ± 93 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup1273112215479313281456
load109096513728711361254
domContentLoaded108395213658711301246
domInteractive201472111844
firstPaint64193137043810911217
backgroundConnect23421735015236253
firstReactRender28185573244
getState2084372435
initialActions70428829
loadScripts8577141141868991020
setupStore1072631015
numNetworkReqs96337631
BrowserifyPower User HomeuiStartup23391859423972730604239
load1220960206137717022061
domContentLoaded1209953203736816942037
domInteractive311777184777
firstPaint1020175204858917022048
backgroundConnect291230926167266926
firstReactRender27243222832
getState19816731342219313
initialActions62276727
loadScripts960730163633014361636
setupStore1292841128
numNetworkReqs335194692198662692
WebpackStandard HomeuiStartup8527331113758691035
load63959092675639850
domContentLoaded63158391974634841
domInteractive15115671434
firstPaint19157904182190608
backgroundConnect24135382842
firstReactRender27177183234
getState1162031416
initialActions3012236
loadScripts62858190872632830
setupStore1061521213
numNetworkReqs96378832
WebpackPower User HomeuiStartup15351221230028815422300
load69557213341977191334
domContentLoaded64855611881526971188
domInteractive18123173031
firstPaint41372754260640754
backgroundConnect1072539212970392
firstReactRender25224042540
getState1354516527147165
initialActions14180242080
loadScripts64555411801506881180
setupStore13653141353
numNetworkReqs318188567135497567
FirefoxBrowserifyStandard HomeuiStartup14581256183710715091711
load1246109416128812921368
domContentLoaded1246109316128812911368
domInteractive1213545056133227
firstPaint------
backgroundConnect3925112134569
firstReactRender26215872544
getState74183713
initialActions3114239
loadScripts1221107615938712631348
setupStore1167571119
numNetworkReqs96317828
BrowserifyPower User HomeuiStartup28372359355936931363559
load14431285167310415121673
domContentLoaded14421284167210415111672
domInteractive18810634969260349
firstPaint------
backgroundConnect24052557150304557
firstReactRender42325884958
getState1485623538179235
initialActions1026114861
loadScripts13701224161510214591615
setupStore59123437868343
numNetworkReqs24916544387314443
WebpackStandard HomeuiStartup15911426215814716091933
load1364121717469914091601
domContentLoaded1364121617469914081601
domInteractive1053333057115258
firstPaint------
backgroundConnect45221752449101
firstReactRender302174132970
getState11420427819
initialActions51638414
loadScripts1337119917209413791544
setupStore167215231253
numNetworkReqs96337731
WebpackPower User HomeuiStartup30892530409043333524090
load17471372231125719382311
domContentLoaded17471371231125719362311
domInteractive1747848498240484
firstPaint------
backgroundConnect25294820162306820
firstReactRender48366595565
getState1438422340195223
initialActions17291231391
loadScripts16531320226022918172260
setupStore56131834784183
numNetworkReqs270158549106340549

@metamaskbot
Copy link
Collaborator

📊 Page Load Benchmark Results

Current Commit: aa69533 | Date: 11/1/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.03s (±41ms) 🟡 | historical mean value: 1.04s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 719ms (±37ms) 🟢 | historical mean value: 725ms ⬇️ (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.03s 41ms 1.01s 1.31s 1.07s 1.31s
domContentLoaded 719ms 37ms 698ms 986ms 749ms 986ms
firstPaint 76ms 11ms 60ms 164ms 88ms 164ms
firstContentfulPaint 76ms 11ms 60ms 164ms 88ms 164ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms

Results generated automatically by MetaMask CI

@metamaskbot
Copy link
Collaborator

Builds ready [aa69533]
UI Startup Metrics (1261 ± 82 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup1261109614348213261386
load108294612498011471200
domContentLoaded107694312417911411192
domInteractive19135591847
firstPaint58979123042610671185
backgroundConnect2262142597230237
firstReactRender27194862941
getState2287092642
initialActions60214816
loadScripts856727102278922974
setupStore1162331218
numNetworkReqs96338632
BrowserifyPower User HomeuiStartup21171758312653629443126
load1106912167228413861672
domContentLoaded1096906163928013641639
domInteractive291481215081
firstPaint85819116624609851662
backgroundConnect25121639655249396
firstReactRender24212712527
getState17914525831182258
initialActions121137326137
loadScripts865695140026011051400
setupStore1192541025
numNetworkReqs319194665180566665
WebpackStandard HomeuiStartup8537301098708721033
load63659091362648770
domContentLoaded62958290461641760
domInteractive15114971438
firstPaint18857893183192611
backgroundConnect23115592645
firstReactRender281771103236
getState1263951419
initialActions3014247
loadScripts62658089358639750
setupStore1062031214
numNetworkReqs96338832
WebpackPower User HomeuiStartup16961427231131221262311
load72462410421409001042
domContentLoaded67961185993809859
domInteractive19133783137
firstPaint403114941310632941
backgroundConnect13120432155335432
firstReactRender27224862748
getState15914620314159203
initialActions12158172158
loadScripts67460884590798845
setupStore20748132948
numNetworkReqs315169581146532581
FirefoxBrowserifyStandard HomeuiStartup14691305180010415291657
load1255112814697613001403
domContentLoaded1255112814697613001403
domInteractive1173429144130208
firstPaint------
backgroundConnect4326148204990
firstReactRender26215562645
getState9419719714
initialActions3214237
loadScripts1228110813987312701379
setupStore1175261116
numNetworkReqs96317727
BrowserifyPower User HomeuiStartup28812394405854130184058
load14851229183516415781835
domContentLoaded14841221183516415781835
domInteractive18410131880301318
firstPaint------
backgroundConnect2733912243155171224
firstReactRender443183134883
getState1385421942178219
initialActions13257182257
loadScripts13961180162912215001629
setupStore41113097035309
numNetworkReqs273157592138331592
WebpackStandard HomeuiStartup16261437236917016432043
load13961209186612314441670
domContentLoaded13961209186612314441670
domInteractive1093242861116189
firstPaint------
backgroundConnect49252393451133
firstReactRender312277123075
getState9413514915
initialActions7119726311
loadScripts13651192183111014111641
setupStore13769101334
numNetworkReqs96367729
WebpackPower User HomeuiStartup28692430414743331574147
load16611387202218118132022
domContentLoaded16601387202218118132022
domInteractive1658529672231296
firstPaint------
backgroundConnect20052526154337526
firstReactRender40315185051
getState1216722433130224
initialActions72358935
loadScripts16131339195517817581955
setupStore25944113644
numNetworkReqs258125510108311510

Base automatically changed from feat/handle-subscription-after-confirm to main November 4, 2025 06:08
@metamaskbot
Copy link
Collaborator

Builds ready [55fb0b6]
UI Startup Metrics (1242 ± 106 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup12421106171810612861472
load105389314019110961238
domContentLoaded104388013569310911233
domInteractive231486152159
firstPaint60082140741410121228
backgroundConnect24022035122240281
firstReactRender29185393248
getState21881102444
initialActions71436817
loadScripts814648111091860999
setupStore1162241219
numNetworkReqs1367419671
BrowserifyPower User HomeuiStartup21211812336540722713365
load1061905152218712651522
domContentLoaded1053897151718812561517
domInteractive301577214877
firstPaint53117912873689291287
backgroundConnect25022037537272375
firstReactRender30244353243
getState18415622921198229
initialActions1016515965
loadScripts815677114616210281146
setupStore1693682436
numNetworkReqs16110231283290312
WebpackStandard HomeuiStartup8256981171958331101
load60455592485592877
domContentLoaded59754890781586856
domInteractive161260101447
firstPaint21856927205209783
backgroundConnect251265142555
firstReactRender28175673336
getState1153541215
initialActions3113248
loadScripts59454689779583846
setupStore1163341217
numNetworkReqs1367619871
WebpackPower User HomeuiStartup14031219199024816961990
load683596924117815924
domContentLoaded659584898100766898
domInteractive301499276099
firstPaint39668902275602902
backgroundConnect72193469466346
firstReactRender29273722937
getState15811118621169186
initialActions31112411
loadScripts65458288696755886
setupStore1463082530
numNetworkReqs1669728170256281
FirefoxBrowserifyStandard HomeuiStartup15301323205412916031802
load1292113115758913661426
domContentLoaded1292113115748913661425
domInteractive1263732857134302
firstPaint------
backgroundConnect48291442153103
firstReactRender27225052841
getState84677916
initialActions51758513
loadScripts1262110715558813301395
setupStore157104141333
numNetworkReqs1267215757
BrowserifyPower User HomeuiStartup24802160309427127103094
load13751129176020616511760
domContentLoaded13751129175920616501759
domInteractive20190594159275594
firstPaint------
backgroundConnect12036405104199405
firstReactRender41305595155
getState1297317122140171
initialActions913081630
loadScripts13431109171519916181715
setupStore4861484169148
numNetworkReqs1536822365206223
WebpackStandard HomeuiStartup15441384221215715381894
load13181192163810713251575
domContentLoaded13181192163710713251574
domInteractive933532538103172
firstPaint------
backgroundConnect47201332559115
firstReactRender292176112968
getState10315117741
initialActions6120120323
loadScripts1288116315629613051515
setupStore166202221348
numNetworkReqs1367118768
WebpackPower User HomeuiStartup26842278303022528993030
load16391376186816017861868
domContentLoaded16391376186816017851868
domInteractive1615434696276346
firstPaint------
backgroundConnect933429866113298
firstReactRender45321001754100
getState1629032166200321
initialActions161136338136
loadScripts16011346184315317351843
setupStore331094244894
numNetworkReqs1756532382261323
📊 Page Load Benchmark Results

Current Commit: 55fb0b6 | Date: 11/4/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.03s (±39ms) 🟡 | historical mean value: 1.04s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 716ms (±36ms) 🟢 | historical mean value: 724ms ⬇️ (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.03s 39ms 1.00s 1.32s 1.05s 1.32s
domContentLoaded 716ms 36ms 695ms 985ms 737ms 985ms
firstPaint 76ms 13ms 60ms 192ms 88ms 192ms
firstContentfulPaint 76ms 13ms 60ms 192ms 88ms 192ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 68 Bytes (0%)
  • ui: -75 Bytes (0%)
  • common: 10 Bytes (0%)

@tuna1207 tuna1207 marked this pull request as ready for review November 4, 2025 06:56
@tuna1207 tuna1207 requested a review from a team as a code owner November 4, 2025 06:56
plan: RECURRING_INTERVALS.month,
paymentTokenAddress: '0x1234567890123456789012345678901234567890',
type: PAYMENT_TYPES.byCrypto,
};
Copy link

Choose a reason for hiding this comment

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

Bug: Mismatched Token Addresses Break Test Token Display

The test data has mismatched token addresses. The paymentTokenAddress in mockLastUsedPaymentDetail does not align with the token address defined in mockSubscriptionPricing. This causes selectedTokenPrice to be undefined, which means the test might not accurately reflect the component's intended behavior or display the correct token symbol.

Fix in Cursor Fix in Web

decodeResponse?.pending ||
!decimals ||
productPricePending;
const isLoading = decodeResponse?.pending || !decimals;
Copy link

Choose a reason for hiding this comment

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

Bug: Cross-Chain Token Price Mismatch and Selection Flaw

The selectedTokenPrice logic now flattens tokens across chains and matches only by address, risking incorrect token selection. This also creates a mismatch where selectedTokenPrice is derived from the last used payment token, but the EstimatedChanges component uses the current transaction's token, potentially displaying incorrect token details for the transaction.

Fix in Cursor Fix in Web

@chaitanyapotti chaitanyapotti changed the title feat: use last selected payment detail instead of deducting from approval amount feat: use last selected payment detail instead of deducing from approval amount Nov 4, 2025
@chaitanyapotti chaitanyapotti added this pull request to the merge queue Nov 4, 2025
@chaitanyapotti chaitanyapotti removed this pull request from the merge queue due to a manual request Nov 4, 2025
github-merge-queue bot pushed a commit that referenced this pull request Nov 4, 2025
…val amount (#37409)

<!--
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**

<!--
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?
-->

Fix subscription crypto approval screen loading flicker by using
lastSelectedPaymentDetail instead of deducting from transaction approval
amount

[![Open in GitHub
Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/37409?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: fix subscription crypto approval screen loading flicker

## **Related issues**

Fixes:

## **Manual testing steps**

1. Go to shield plan screen
2. Select crypto payment method
3. Crypto approval transaction confirm screen should only show loading
once

## **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**

- [x] 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).
- [x] I've completed the PR template to the best of my ability
- [x] I’ve included tests if applicable
- [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] 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**

- [x] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [x] 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]
> Use cached last-selected payment method to render Shield crypto
approval pricing and token, removing the deduction-from-approval logic
and updating tests.
> 
> - **Confirmations UI (Shield crypto approval)**:
> - Derives `productPrice` and token info from cached
`lastSelectedPaymentMethod` and pricing (`useSubscriptionPricing`,
`useSubscriptionProductPlans`, `useSubscriptionPaymentMethods`).
> - Computes `approvalAmount` via decoded data + asset `decimals`,
simplifies loading state, and passes `productPrice`/`tokenSymbol` to
child components.
> - **Hooks**:
> - Removes `useShieldSubscriptionPricingFromTokenApproval` and
associated imports/logic from `useSubscriptionPricing`.
> - **Tests**:
> - Updates `shield-subscription-approve.test.tsx` to mock pricing and
`lastSelectedPaymentMethod`; verifies monthly pricing/trial and UI
sections.
> - Cleans up `useSubscriptionPricing.test.ts` by removing tests for the
deleted hook; retains tests for pricing, product plans, and payment
methods.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
55fb0b6. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: Chaitanya Potti <[email protected]>
@metamaskbot
Copy link
Collaborator

Builds ready [0602d99]
UI Startup Metrics (1211 ± 97 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup1211106614319712751399
load103492112138410861193
domContentLoaded102689312068510831186
domInteractive2114104141857
firstPaint5499412164059971183
backgroundConnect23121331615233251
firstReactRender27184563040
getState21885112839
initialActions7083101019
loadScripts80366997883857956
setupStore1162841220
numNetworkReqs1367419670
BrowserifyPower User HomeuiStartup20321696290935320272909
load1052934141918111981419
domContentLoaded1041908141318211901413
domInteractive281663175163
firstPaint8419514344009801434
backgroundConnect25322831119261311
firstReactRender29253733137
getState1797126140207261
initialActions73317831
loadScripts80768011691748861169
setupStore13102951329
numNetworkReqs15510031781197317
WebpackStandard HomeuiStartup8306911291938371050
load604549106283600814
domContentLoaded596542104680592795
domInteractive16124881438
firstPaint21761894209196723
backgroundConnect251169132856
firstReactRender3017127133449
getState1061931215
initialActions4127459
loadScripts593539103477590784
setupStore1163951323
numNetworkReqs1367219870
WebpackPower User HomeuiStartup12781144186120713661861
load641564921112756921
domContentLoaded61855487692697876
domInteractive241377194577
firstPaint39673879256571879
backgroundConnect671726379172263
firstReactRender26243012730
getState14711216014155160
initialActions30184318
loadScripts61455286689686866
setupStore1462782427
numNetworkReqs1439727152194271
FirefoxBrowserifyStandard HomeuiStartup15071308205013315561792
load1269113215559413231488
domContentLoaded1268113215559413221488
domInteractive1173741859117259
firstPaint------
backgroundConnect4729143205491
firstReactRender27226152840
getState74203715
initialActions6219819414
loadScripts1240111115348812851418
setupStore15873121450
numNetworkReqs1266515756
BrowserifyPower User HomeuiStartup24312090328135026873281
load13171104174519816031745
domContentLoaded13171104174519816021745
domInteractive20487618175340618
firstPaint------
backgroundConnect962530983173309
firstReactRender492985175485
getState12910220324129203
initialActions1721073019107
loadScripts12841086169418514751694
setupStore3251173541117
numNetworkReqs1356533584231335
WebpackStandard HomeuiStartup16301425242918716732152
load13801215180611414231601
domContentLoaded13801215180611414221600
domInteractive1063136146120166
firstPaint------
backgroundConnect51222203353138
firstReactRender30237793043
getState11417923740
initialActions51517426
loadScripts13491198170510314011539
setupStore187252271455
numNetworkReqs1367217765
WebpackPower User HomeuiStartup26922342331529829283315
load16211322203722018672037
domContentLoaded16201321203622018672036
domInteractive18951568167391568
firstPaint------
backgroundConnect1243333586188335
firstReactRender44325895558
getState1376821743188217
initialActions61236923
loadScripts15821294199420818181994
setupStore25974204474
numNetworkReqs1376434285216342
📊 Page Load Benchmark Results

Current Commit: 0602d99 | Date: 11/5/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.04s (±38ms) 🟡 | historical mean value: 1.04s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 724ms (±35ms) 🟢 | historical mean value: 727ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 77ms (±12ms) 🟢 | historical mean value: 77ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.04s 38ms 1.02s 1.32s 1.06s 1.32s
domContentLoaded 724ms 35ms 705ms 983ms 743ms 983ms
firstPaint 77ms 12ms 60ms 188ms 88ms 188ms
firstContentfulPaint 77ms 12ms 60ms 188ms 88ms 188ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 68 Bytes (0%)
  • ui: -75 Bytes (0%)
  • common: 10 Bytes (0%)

@metamaskbot
Copy link
Collaborator

Builds ready [efacdee]
UI Startup Metrics (1232 ± 116 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup12321073205311612831393
load1053932178010511011210
domContentLoaded1046924175810410931190
domInteractive221492151867
firstPaint63979124940510291166
backgroundConnect2322172699234250
firstReactRender27184573243
getState2176492438
initialActions70418727
loadScripts8227011511101871962
setupStore1162541220
numNetworkReqs1367419669
BrowserifyPower User HomeuiStartup20181761311932721923119
load1047891163821912931638
domContentLoaded1038881162922012851629
domInteractive291578194278
firstPaint721157163447610171634
backgroundConnect24922627112258271
firstReactRender29254653146
getState18815528529196285
initialActions63205620
loadScripts807657136621010511366
setupStore1293051330
numNetworkReqs1549723555223235
WebpackStandard HomeuiStartup8697321329928871049
load626569102175621791
domContentLoaded618562100271614759
domInteractive181287121545
firstPaint221611006211203737
backgroundConnect281283153164
firstReactRender3218103123741
getState1153031316
initialActions41315518
loadScripts61456098869612748
setupStore1365561427
numNetworkReqs1367219869
WebpackPower User HomeuiStartup12661143172717412701727
load650569884118793884
domContentLoaded632559833105776833
domInteractive241280194280
firstPaint30982837278584837
backgroundConnect58112417542241
firstReactRender26233222632
getState14810518121164181
initialActions21123112
loadScripts628557822101766822
setupStore1252782327
numNetworkReqs1419419944191199
FirefoxBrowserifyStandard HomeuiStartup15571345207913716231858
load1307114216229813761502
domContentLoaded1307114216229813751501
domInteractive1263845865126301
firstPaint------
backgroundConnect51231672558105
firstReactRender29236562943
getState9411611916
initialActions62839516
loadScripts1278112116039513391458
setupStore177218221543
numNetworkReqs1266315758
BrowserifyPower User HomeuiStartup25162198309129428403091
load14071196186821116471868
domContentLoaded14061195186721116471867
domInteractive24081646207530646
firstPaint------
backgroundConnect11434456114192456
firstReactRender412966115166
getState14510022932170229
initialActions13196231796
loadScripts13721175183220815931832
setupStore3861213860121
numNetworkReqs1306123966172239
WebpackStandard HomeuiStartup16691467243119416882214
load14031235183811014591641
domContentLoaded14031235183811014581641
domInteractive993229839111154
firstPaint------
backgroundConnect56212523764160
firstReactRender31248083345
getState13417524846
initialActions51547415
loadScripts13701216174910214291559
setupStore207151281498
numNetworkReqs1367218766
WebpackPower User HomeuiStartup24652149290625127452906
load14801241172314316281723
domContentLoaded14801241172314316281723
domInteractive1334036194221361
firstPaint------
backgroundConnect963240090117400
firstReactRender412993154693
getState1247227247120272
initialActions15282231682
loadScripts14471222168813515651688
setupStore4271404270140
numNetworkReqs1375529876220298
📊 Page Load Benchmark Results

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

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.04s (±40ms) 🟡 | historical mean value: 1.04s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 729ms (±37ms) 🟢 | historical mean value: 728ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 78ms (±13ms) 🟢 | historical mean value: 78ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.04s 40ms 1.02s 1.34s 1.07s 1.34s
domContentLoaded 729ms 37ms 705ms 997ms 752ms 997ms
firstPaint 78ms 13ms 64ms 200ms 88ms 200ms
firstContentfulPaint 78ms 13ms 64ms 200ms 88ms 200ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 68 Bytes (0%)
  • ui: -75 Bytes (0%)
  • common: 10 Bytes (0%)

@chaitanyapotti chaitanyapotti added this pull request to the merge queue Nov 5, 2025
Merged via the queue into main with commit 2a0ba7c Nov 5, 2025
173 checks passed
@chaitanyapotti chaitanyapotti deleted the fix/flicker-subscription-crypto-approval branch November 5, 2025 04:13
@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

area-shield release-13.9.0 Issue or pull request that will be included in release 13.9.0 size-M team-onboarding Onboarding team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants