Skip to content

Conversation

@gauthierpetetin
Copy link
Contributor

@gauthierpetetin gauthierpetetin commented Nov 24, 2025

Description

The diff we observe in this stable sync PR comes from these PRs, which were merged to main AFTER the 13.11.0 release cut, but were cherry-picked into 13.10.1:

Open in GitHub Codespaces

Changelog

CHANGELOG entry: null

Related issues

Fixes:

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

Applies a patch to normalize account casing in token balance updates, removes MV3 "tabs" permission while adding it for tests, updates the changelog, and wires the yarn patch.

  • Assets/Controllers:
    • Patch @metamask/assets-controllers TokenBalancesController (dist/*.cjs|mjs) to write balances under lower-cased account keys and only update when changed.
  • Build/Manifest:
    • Remove tabs from MV3 app/manifest/v3/_base.json permissions.
    • Update manifest transform (development/webpack/.../ManifestPlugin/helpers.ts) to always add tabs permission for --test builds (no MV2 check) and keep dev/test manifest key injection.
  • Changelog:
    • Add 13.10.1 section with fixes and correct comparison links.
  • Dependencies:
    • Switch @metamask/assets-controllers to a Yarn patch in package.json; update yarn.lock accordingly.

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

metamaskbot and others added 10 commits November 21, 2025 06:59
…m fetching list of all accounts balances (#38098)

- fix: cp-13.10.1 prevent account list from fetching list of all
accounts balances (#38065)

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

prevent token list from fetching balances for all accounts

<!--
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/38065?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: prevent token list from fetching balances for all
accounts

## **Related issues**

Fixes:

## **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]
> Pass `platform: 'extension'` to `TokenBalancesController` and switch
the hook’s `updateBalancesFoAccounts` flag to `false`, updating tests
accordingly.
> 
> - **Controllers**:
> - `TokenBalancesControllerInit` now passes `platform: 'extension'`
when constructing `TokenBalancesController`.
>   - Updated test to assert `platform: 'extension'` is provided.
> - **UI Hooks**:
> - `useAssetsUpdateAllAccountBalances` switches
`updateBalancesFoAccounts(enabledChainIds, false)` (from `true`).
> - Updated related tests to expect the new boolean argument and
re-render behavior.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
6236adc. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->


[b5eaa85](b5eaa85)

Co-authored-by: Salim TOUBAL <salim.toubal@outlook.com>
<!--
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**

fix: dapp-swap comparison fiat rate fetching for native tokens

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

## **Related issues**

Fixes: MetaMask/MetaMask-planning#6327

## **Manual testing steps**

1. Trigger swap including native tokens
2. Check that fait conversion in metrics is correct

## **Screenshots/Recordings**
TODO

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

- [ ] 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]
> Fetch fiat rates only for non-native tokens in the dapp-swap
comparison hook to correctly handle native assets.
> 
> - **Hooks**:
> - Update
`ui/pages/confirmations/hooks/transactions/dapp-swap-comparison/useDappSwapUSDValues.ts`
to filter out native addresses from `tokenAddresses` before calling
`fetchTokenExchangeRates('usd', ...)`, avoiding fiat rate requests for
native tokens.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
7ff0f9b. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
…ol native token (#38136)

- fix: cp-13.10.1 dapp swap fix conversion rate for pol native token
(#38102)

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

Fix conversion rate for POL native token.

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

## **Related issues**

Fixes: https://github.com/MetaMask/MetaMask-planning/issues/6327

## **Manual testing steps**

1. Trigger swap including POL native token
2. Check that metrics are recorded correctly and dapp-swap UI shows
correct values

## **Screenshots/Recordings**
TODO

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

- [ ] 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]
> Fixes USD rate lookup for Polygon native token by mapping native
address to `0x0000000000000000000000000000000000001010` and adds tests.
> 
> - **Hooks**:
> - Update
`ui/pages/confirmations/hooks/transactions/dapp-swap-comparison/useDappSwapUSDValues.ts`
to adjust fiat rate fetching:
> - When `chainId === CHAIN_IDS.POLYGON`, map the native asset address
to the rate from `0x0000000000000000000000000000000000001010`.
> - Wrap rate fetching in an async function to inject the
Polygon-specific mapping.
> - **Tests**:
>   - Enhance `useDappSwapUSDValues.test.ts`:
> - Allow `runHook` to accept custom `tokenAddresses` and
`mockConfirmation`.
> - Add Polygon-specific test asserting correct fiat rates for native
POL (`0x...0000`) and `0x0000000000000000000000000000000000001010`.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
c7fe193. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->


[0aa98dc](0aa98dc)

Co-authored-by: Jyoti Puri <jyotipuri@gmail.com>
…solve missing balance state (#38140)

- fix: cp-13.10.1 patch TokenBalancesController to resolve missing
balance state (#38126)

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

[![Open in GitHub

Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/38126?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 missing native token balances in wallet balance

## **Related issues**

Fixes: #38114

## **Manual testing steps**

Onboard or existing user with AccountsAPI enabled
1. Go to a network with native + erc tokens
2. Notice aggregated wallet balance - it should have both native + erc
tokens aggregated together for the balance.

## **Screenshots/Recordings**

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

### **Before**

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

### **After**

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

https://www.loom.com/share/aeccc8e3cef4479da0e9d44fc5ebf4fa

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

- [ ] 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]
> Patches `TokenBalancesController` to use lowercase account addresses
for balance reads/writes and wires the patched
`@metamask/assets-controllers@88.0.0` via Yarn patch.
> 
> - **Assets Controllers Patch
(`@metamask/assets-controllers@88.0.0`)**:
> - Normalize `account` to lowercase in `TokenBalancesController` when
reading/updating `d.tokenBalances` (cjs/mjs builds), ensuring balance
updates are applied.
> - **Dependencies**:
> - Switch `@metamask/assets-controllers` in `package.json` to a Yarn
patch source and add patched entry in `yarn.lock`.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
75c9d95. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->


[a2fe8c4](a2fe8c4)

Co-authored-by: Prithpal Sooriya <prithpal.sooriya@gmail.com>
This PR updates the change log for 13.10.1. (Hotfix - no test plan
generated.)

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Updates CHANGELOG with 13.10.1 fixes and adjusts version comparison
links.
> 
> - **Documentation** (`CHANGELOG.md`):
>   - **Add `13.10.1` – Fixed**:
>     - Prevent token list from fetching balances for all accounts.
>     - Correct dapp-swap comparison fiat rate for native tokens.
>     - Fix conversion rate for POL native token in dapp-swap.
>     - Remove unnecessary extension permission.
>     - Restore missing native token balances in wallet balance.
>   - **Links**:
>     - Update `[Unreleased]` compare link to start from `v13.10.1`.
>     - Add `[13.10.1]` compare link to `v13.10.0...v13.10.1`.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
b15b274. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: metamaskbot <metamaskbot@users.noreply.github.com>
Co-authored-by: Gauthier Petetin <gauthierpetetin@hotmail.com>
…ew warnings cp-13.10.1 (#38146)

- fix: Remove `tabs` permission to avoid new warnings cp-13.10.1
(#38075)

## **Description**

The recent addition of the `tabs` permission will result in new
permission warnings upon update, which is extremely disruptive and is
something we'd never do except as a last resort.

The permission wasn't actually needed, and has been removed. This
removal uncovered a bug in our Webpack build (the `tabs` permission was
erroneously only added for MV2 test builds, but we need it for MV3 test
builds as well), which has been fixed.

[![Open in GitHub

Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/38075?quickstart=1)

## **Changelog**

CHANGELOG entry: Remove unnecessary extension permission

## **Related issues**

N/A

## **Manual testing steps**

Test that the sidepanel still works in general. Particularly with dapp
confirmations, and the "Connected status" indicator, and current
selected dapp.

## **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).
- [ ] 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**

- [ ] 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]
> Removes the `tabs` permission from the MV3 base manifest.
> 
> - **Manifest (MV3)**:
> - Update `app/manifest/v3/_base.json` to remove `permissions` entry
`tabs`.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
7778231. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->


[bba4201](bba4201)

Co-authored-by: Mark Stacey <mark.stacey@consensys.net>
@github-actions
Copy link
Contributor

CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes.

@metamaskbot metamaskbot added the team-extension-platform Extension Platform team label Nov 24, 2025
"notifications",
"scripting",
"storage",
"tabs",
Copy link
Contributor Author

Choose a reason for hiding this comment

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

All changes in this file come from this PR #38075, which was not included in 13.11.0, but was cherry-picked in 13.10.1.

…nce state (#38126)

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

[![Open in GitHub
Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/38126?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 missing native token balances in wallet balance

## **Related issues**

Fixes: #38114

## **Manual testing steps**

Onboard or existing user with AccountsAPI enabled
1. Go to a network with native + erc tokens
2. Notice aggregated wallet balance - it should have both native + erc
tokens aggregated together for the balance.

## **Screenshots/Recordings**

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

### **Before**

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

### **After**

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

https://www.loom.com/share/aeccc8e3cef4479da0e9d44fc5ebf4fa

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

- [ ] 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]
> Patches `TokenBalancesController` to use lowercase account keys when
reading/writing `tokenBalances`, and wires the patch via a Yarn patched
dependency for `@metamask/assets-controllers@89.0.1`.
> 
> - **Assets Controllers Patch**:
> - Normalize `account` to lowercase in `TokenBalancesController`
(`dist/TokenBalancesController.{cjs,mjs}`) when checking and setting
`d.tokenBalances[account][chainId][tokenAddress]`.
> - **Build/Deps**:
> - Apply Yarn patch for `@metamask/assets-controllers@89.0.1` via
`package.json` and update lockfile to reference the patched package.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
d4370d9. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
@@ -0,0 +1,48 @@
diff --git a/dist/TokenBalancesController.cjs b/dist/TokenBalancesController.cjs
Copy link
Contributor Author

Choose a reason for hiding this comment

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

All changes in this file come from this PR #38126, which was not included in 13.11.0, but was cherry-picked in 13.10.1.

"@metamask/announcement-controller": "^8.0.0",
"@metamask/approval-controller": "^8.0.0",
"@metamask/assets-controllers": "^89.0.1",
"@metamask/assets-controllers": "patch:@metamask/assets-controllers@npm%3A89.0.1#~/.yarn/patches/@metamask-assets-controllers-npm-89.0.1-02fa7acd54.patch",
Copy link
Contributor Author

Choose a reason for hiding this comment

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

All changes in this file come from this PR #38126, which was not included in 13.11.0, but was cherry-picked in 13.10.1.

linkType: hard

"@metamask/assets-controllers@npm:^89.0.1":
"@metamask/assets-controllers@npm:89.0.1":
Copy link
Contributor Author

Choose a reason for hiding this comment

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

All changes in this file come from this PR #38126, which was not included in 13.11.0, but was cherry-picked in 13.10.1.

chloeYue
chloeYue previously approved these changes Nov 24, 2025
@metamaskbot
Copy link
Collaborator

Builds ready [2d124e1]
UI Startup Metrics (1242 ± 112 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup12421079155911213241466
load1056892132310111351196
domContentLoaded1049888131810011301187
domInteractive231381162071
firstPaint49384135042310311193
backgroundConnect21219426512218232
firstReactRender27186493048
getState331678113656
initialActions105112
loadScripts844683110097929978
setupStore1063441018
numNetworkReqs1257721576
BrowserifyPower User HomeuiStartup18131564262817919062132
load96885617171529551386
domContentLoaded95685017091529421377
domInteractive35152394226142
firstPaint5249717394089091382
backgroundConnect21519625010219235
firstReactRender80411321991120
getState16612823326183221
initialActions106113
loadScripts75565714901517401168
setupStore1995492342
numNetworkReqs1426729753181283
WebpackStandard HomeuiStartup806708106373850956
load60054686461607770
domContentLoaded59554285760603763
domInteractive231385171876
firstPaint24972759168241619
backgroundConnect1153261227
firstReactRender29206463338
getState291389123746
initialActions103111
loadScripts59254084959601752
setupStore1262851523
numNetworkReqs1257720571
WebpackPower User HomeuiStartup14071214182015115321670
load6625801072106665937
domContentLoaded6535721066106655929
domInteractive35171843432119
firstPaint257841084173256636
backgroundConnect1373141620
firstReactRender7943112148796
getState14712320416153180
initialActions102112
loadScripts6505701056104653921
setupStore1894992135
numNetworkReqs1506831757190294
FirefoxBrowserifyStandard HomeuiStartup12321089155610412941466
load104093013218311021184
domContentLoaded103892813218311001184
domInteractive65312344682178
firstPaint------
backgroundConnect3923173264088
firstReactRender22183652235
getState105769922
initialActions102012
loadScripts101791312457710781158
setupStore1156071024
numNetworkReqs1156315656
BrowserifyPower User HomeuiStartup22961902286019124252586
load1092928153514311091460
domContentLoaded1091922153414311091459
domInteractive11835550113108464
firstPaint------
backgroundConnect932745371107234
firstReactRender76361392085121
getState22761810200268676
initialActions2132326
loadScripts1053910150913110691434
setupStore17011743191249599
numNetworkReqs905417334123158
WebpackStandard HomeuiStartup14081261181811214521694
load1200106415089212531416
domContentLoaded1200106415089212531415
domInteractive55271973477132
firstPaint------
backgroundConnect3818120184383
firstReactRender26194042835
getState126117141021
initialActions103122
loadScripts1177105014488512301361
setupStore1164371031
numNetworkReqs1156516663
WebpackPower User HomeuiStartup26342064328128628533170
load13801070187219815341791
domContentLoaded13801069186319815341791
domInteractive1102849698107399
firstPaint------
backgroundConnect1002744371113296
firstReactRender79381862189117
getState28068916243469773
initialActions41549228
loadScripts13391052181519014731716
setupStore82556910487365
numNetworkReqs906018634116158
📊 Page Load Benchmark Results

Current Commit: 2d124e1 | Date: 11/24/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.04s (±77ms) 🟡 | historical mean value: 1.04s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 725ms (±85ms) 🟢 | historical mean value: 723ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 91ms (±152ms) 🟢 | historical mean value: 78ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.04s 77ms 1.01s 1.74s 1.06s 1.74s
domContentLoaded 725ms 85ms 698ms 1.52s 735ms 1.52s
firstPaint 91ms 152ms 60ms 1.60s 88ms 1.60s
firstContentfulPaint 91ms 152ms 60ms 1.60s 88ms 1.60s
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms


if (args.test && args.manifest_version === 2) {
// test builds need "tabs" permission for switchToWindowWithTitle in MV2
if (args.test) {
Copy link
Contributor Author

Choose a reason for hiding this comment

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

All changes in this file come from this PR #38075, which was not included in 13.11.0, but was cherry-picked in 13.10.1.

@metamaskbot
Copy link
Collaborator

Builds ready [39ceeb2]
UI Startup Metrics (1239 ± 103 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup12391078157710313131401
load105489513389611171206
domContentLoaded104889013329511101199
domInteractive241484182080
firstPaint58088135943110641206
backgroundConnect21419924710218239
firstReactRender29185383446
getState341882114154
initialActions102112
loadScripts842691112793902987
setupStore1163041219
numNetworkReqs1257720573
BrowserifyPower User HomeuiStartup19281639276918120352194
load1033920183215510221430
domContentLoaded1017909182315410071423
domInteractive36172213732143
firstPaint48410515383639361070
backgroundConnect23421427413240263
firstReactRender82431451790104
getState17713427927195223
initialActions104112
loadScripts80269915771527831204
setupStore20106692339
numNetworkReqs1416930551181229
WebpackStandard HomeuiStartup76667799467797922
load58453683160585746
domContentLoaded57953282359582740
domInteractive231287171875
firstPaint25878751179280599
backgroundConnect1153071528
firstReactRender27184063236
getState261282103239
initialActions103112
loadScripts57753081658580728
setupStore1162841322
numNetworkReqs1257720573
WebpackPower User HomeuiStartup13931122191914814951611
load658576111599657909
domContentLoaded648571110999644900
domInteractive33161473028120
firstPaint278101958190301681
backgroundConnect1474651620
firstReactRender7842104148797
getState15012421418157191
initialActions103011
loadScripts645568110097642891
setupStore19852112247
numNetworkReqs1506730754188292
FirefoxBrowserifyStandard HomeuiStartup12121068174812212541458
load101691512837510601174
domContentLoaded101491112837610561173
domInteractive54331633168134
firstPaint------
backgroundConnect38221802638118
firstReactRender22175062236
getState11617117918
initialActions103122
loadScripts99490111936910331146
setupStore12581121037
numNetworkReqs1256817763
BrowserifyPower User HomeuiStartup23821885309423925692770
load1123960165113911281414
domContentLoaded1121960165013911271413
domInteractive1203452697127375
firstPaint------
backgroundConnect942946662113217
firstReactRender81391732290118
getState28836885238435801
initialActions209227
loadScripts1089940162313610961391
setupStore1198798155101531
numNetworkReqs915921434125157
WebpackStandard HomeuiStartup15051319216215215451822
load12781096190112013341490
domContentLoaded12771096190012013331489
domInteractive67272294680180
firstPaint------
backgroundConnect4320172204777
firstReactRender312176113363
getState136183191145
initialActions102122
loadScripts12511080176111013041451
setupStore13586121139
numNetworkReqs1256617664
WebpackPower User HomeuiStartup26422034331124827983154
load13561134197918213521793
domContentLoaded13551134197918213511793
domInteractive1063054010497359
firstPaint------
backgroundConnect1003055067114220
firstReactRender80361311791110
getState27772882218398772
initialActions41681038
loadScripts13181116190617213101747
setupStore93563212391384
numNetworkReqs87512014278192
📊 Page Load Benchmark Results

Current Commit: 39ceeb2 | Date: 11/24/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.03s (±42ms) 🟡 | historical mean value: 1.03s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 717ms (±59ms) 🟢 | historical mean value: 720ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 87ms (±124ms) 🟢 | historical mean value: 78ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.03s 42ms 1.00s 1.36s 1.05s 1.36s
domContentLoaded 717ms 59ms 690ms 1.26s 734ms 1.26s
firstPaint 87ms 124ms 60ms 1.32s 88ms 1.32s
firstContentfulPaint 87ms 124ms 60ms 1.32s 88ms 1.32s
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms

@gauthierpetetin gauthierpetetin merged commit 39d8616 into release/13.11.0 Nov 24, 2025
171 of 173 checks passed
@gauthierpetetin gauthierpetetin deleted the sync-v13.11.0-with-stable branch November 24, 2025 15:23
@github-actions github-actions bot locked and limited conversation to collaborators Nov 24, 2025
@metamaskbot metamaskbot added the release-13.11.0 Issue or pull request that will be included in release 13.11.0 label Nov 28, 2025
@metamaskbot
Copy link
Collaborator

No release label on PR. Adding release label release-13.11.0 on PR, as PR was added to branch 13.11.0 when release was cut.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

extension-delivery release-13.11.0 Issue or pull request that will be included in release 13.11.0 team-extension-platform Extension Platform team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants