Skip to content

Conversation

@metamaskbot
Copy link
Collaborator

@metamaskbot metamaskbot commented Aug 19, 2025

🚀 v13.2.0 Testing & Release Quality Process

Hi Team,
As part of our new MetaMask Release Quality Process, here’s a quick overview of the key processes, testing strategies, and milestones to ensure a smooth and high-quality deployment.


📋 Key Processes

Testing Strategy

  • Developer Teams:
    Conduct regression and exploratory testing for your functional areas, including automated and manual tests for critical workflows.
  • QA Team:
    Focus on exploratory testing across the wallet, prioritize high-impact areas, and triage any Sentry errors found during testing.
  • Customer Success Team:
    Validate new functionalities and provide feedback to support release monitoring.

GitHub Signoff

  • Each team must sign off on the Release Candidate (RC) via GitHub by the end of the validation timeline (Tuesday EOD PT).
  • Ensure all tests outlined in the Testing Plan are executed, and any identified issues are addressed.

Issue Resolution

  • Resolve all Release Blockers (Sev0 and Sev1) by Tuesday EOD PT.
  • For unresolved blockers, PRs may be reverted, or feature flags disabled to maintain release quality and timelines.

Cherry-Picking Criteria

  • Only critical fixes meeting outlined criteria will be cherry-picked.
  • Developers must ensure these fixes are thoroughly reviewed, tested, and merged by Tuesday EOD PT.

🗓️ Timeline and Milestones

  1. Today (Friday): Begin Release Candidate validation.
  2. Tuesday EOD PT: Finalize RC with all fixes and cherry-picks.
  3. Wednesday: Buffer day for final checks.
  4. Thursday: Submit release to app stores and begin rollout to 1% of users.
  5. Monday: Scale deployment to 10%.
  6. Tuesday: Full rollout to 100%.

✅ Signoff Checklist

Each team is responsible for signing off via GitHub. Use the checkbox below to track signoff completion:

Team sign-off checklist

  • Accounts
  • Confirmations
  • Design System
  • Extension Platform
  • Network Enablement
  • New Networks
  • Snaps Platform
  • Swaps and Bridge
  • Transactions
  • Wallet API Platform
  • Wallet Framework
  • Web3Auth

This process is a major step forward in ensuring release stability and quality. Let’s stay aligned and make this release a success! 🚀

Feel free to reach out if you have questions or need clarification.

Many thanks in advance

Reference

huggingbot and others added 30 commits August 1, 2025 08:50
<!--
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 removes password strength analytics tracking from wallet setup
flows. The password strength metric was being tracked in various events
(WalletCreated, WalletImported, PasswordChanged) but is no longer
needed, so this refactoring removes these analytics properties.

**Changes include:**
- Removed `password_strength` property from WalletCreated analytics
event
- Removed `password_strength` property from WalletImported analytics
event
- Removed `password_strength` property from PasswordChanged analytics
event
- Removed `getPasswordStrengthCategory` utility function and associated
tests
- Updated corresponding e2e tests to remove password strength assertions


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

## **Changelog**

CHANGELOG entry: null

## **Related issues**

Fixes:

## **Manual testing steps**

1. Create a new wallet and verify onboarding flow works without password
strength validation
2. Import an existing wallet and confirm the process completes
successfully
3. Change password in Settings > Security and verify the functionality
works as expected
4. Verify that no password strength metrics are being tracked in
telemetry events

## **Screenshots/Recordings**

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

### **Before**

<!-- Password strength was being calculated and tracked in metrics -->

### **After**

<!-- Password strength calculation and tracking removed -->

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

---------

Co-authored-by: Chaitanya Potti <[email protected]>
<!--
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 deflakes the `onStart` lifecycle hook test by removing a race
condition.

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

## **Related issues**

Fixes: #34767

## **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.
<!--
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 bumps `@metamask/profile-sync-controller` from `^22.0.0` to
`^23.0.0`.
It also removes a patch that is now unnecessary due to [this core
PR](MetaMask/core#6211) being merged

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

## **Manual testing steps**

1. No manual testing steps

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

The Sentry library is setup in a dedicated `sentry-install.js` script
that is run before our main bundles. However, it was still present in
our main bundles because of a log utility that was imported from a
module used by `sentry-install.js`.

The log utility has been moved to a shared function to ensure that the
bulk of the `sentry-install.js` code is not redundantly included in the
main bundles as well. This also helps prevent regressions on
#34371 by ensuring
any accidental re-introduction of the Sentry library in the main bundle
is highlighted by a LavaMoat policy change.

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

## **Changelog**

CHANGELOG entry: null

## **Related issues**

Relates to #34371

## **Manual testing steps**

The LavaMoat policy change is evidence that this worked.

You could also inspect the bundles from the test builds to ensure Sentry
is gone.

## **Screenshots/Recordings**

N/A

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

Master sync to main

PS: Probably not important, but please note that this PR was generated
by skipping pre-commit hook with `--no-verify` command, as explained in
this [Slack
thread](https://consensys.slack.com/archives/C06GX49NHTP/p1754041090905729).

PS: Ask a repo admin to enable merge commits (don't "Squash and Merge").

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

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

---------

Co-authored-by: metamaskbot <[email protected]>
Co-authored-by: Danica Shen <[email protected]>
Co-authored-by: runway-github[bot] <73448015+runway-github[bot]@users.noreply.github.com>
Co-authored-by: Nidhi Kumari <[email protected]>
Co-authored-by: Lwin <[email protected]>
Co-authored-by: Lionell Briones <[email protected]>
Co-authored-by: Tuna <[email protected]>
Co-authored-by: hunty <[email protected]>
Co-authored-by: Micaela Estabillo <[email protected]>
Co-authored-by: Mark Stacey <[email protected]>
Co-authored-by: Prithpal Sooriya <[email protected]>
Co-authored-by: salimtb <[email protected]>
Co-authored-by: AugmentedMode <[email protected]>
Co-authored-by: augmentedmode <[email protected]>
Co-authored-by: lwin <[email protected]>
Co-authored-by: Chaitanya Potti <[email protected]>
Co-authored-by: himanshuchawla009 <[email protected]>
Co-authored-by: Prithpal Sooriya <[email protected]>
Co-authored-by: António Regadas <[email protected]>
Co-authored-by: Maarten Zuidhoorn <[email protected]>
Co-authored-by: Gustavo Antunes <[email protected]>
Co-authored-by: Hassan Malik <[email protected]>
Co-authored-by: SteP-n-s <[email protected]>
Co-authored-by: Vinicius Stevam <[email protected]>
Co-authored-by: imblue <[email protected]>
Co-authored-by: imblue-dabadee <[email protected]>
Co-authored-by: Charly Chevalier <[email protected]>
Co-authored-by: Mathieu Artu <[email protected]>
Co-authored-by: Shane T <[email protected]>
## **Description**

#33834 broke the webpack build on Windows, this fixes it by using
OS-independent path separators

## **Changelog**

CHANGELOG entry: null

<!--## **Related issues**
## **Manual testing steps**
## **Screenshots/Recordings**
## **Pre-merge author checklist**
## **Pre-merge reviewer checklist**-->

---------

Co-authored-by: Howard Braham <[email protected]>
Fixes flaky test by removing an unnecessary balance-check that was
racing against API calls in the background, causing the test to
sometimes fail.

<!--

## **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/34793?quickstart=1)

## **Changelog**



CHANGELOG entry:

## **Related issues**

Fixes:

## **Manual testing steps**

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

## **Screenshots/Recordings**

### **Before**

### **After**

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

The OAuth IDs were missing from the bundle script, and the QuickNode
URLs were missing from both the bundle script and the build workflow.
Additionally, a few extraneous environment variables were present in
both the bundle script and workflows.

The list of environment variables needed in both the bundle script and
the build workflow is now clearly marked as requiring synchronization,
which should help prevent future mistakes like this. Additionally,
extranous environment variables have been removed.

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

## **Changelog**

CHANGELOG entry: N/A

## **Related issues**

Fixes #34792

## **Manual testing steps**

I discovered the missing variables by testing our bundle script (only
available to the release team). I compared the bundle it created to the
one on the Release page on GitHub by unzipping both, then using these
commands:

```
> mtree -c -k sha256digest -p ./metamask-firefox-12.23.1-build > compare.mtree
> mtree -p ./metamask-firefox-12.23.1-official < compare.mtree
background-2.js changed
        SHA-256 expected 5cf730754fbd1e69caa6e2ce8f52cfc7a20b320571e35918577b9b5edb3eca6d found 5bfc371d8deb07b146231e614965b91b94efe9c74070d58e36eb15d38f159e55
```

This told me that `background-2.js` had changed. I then formatted
`background-2.js` from both bundles using Prettier, then compared then
using `code --diff`. This revealed the only difference was that these
two environment variables were missing.

## **Screenshots/Recordings**

N/A

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

---------

Co-authored-by: Norbert Elter <[email protected]>
<!--
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**

Bump @metamask/multichain-api-client to
[v0.6.5](https://github.com/MetaMask/multichain-api-client/releases/tag/v0.6.5)

<!--
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/34783?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:

## **Related issues**

Fixes: #33509

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

Updated workflows for creating release PRs to avoid confusion.

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

## **Related issues**

Fixes: https://consensyssoftware.atlassian.net/browse/INFRA-2772

## **Manual testing steps**

## **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 Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/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-mobile/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.

---------

Co-authored-by: Gauthier Petetin <[email protected]>
Co-authored-by: Gauthier Petetin <[email protected]>
## **Description**

The policy override has been updated to correct the identifier for
`@ethersproject/random`. The ID changed to start with `ethers`, which
resulted in the override not being applied correctly. This resulted in
this console message every time the wallet started: `WARNING: Missing
strong random number source`.

The warning should no longer appear upon startup.

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

## **Changelog**

CHANGELOG entry: Remove misleading console warning

## **Related issues**

Fixes #21926

## **Manual testing steps**

1. Install the extension
2. Open the background process DevTools
3. Ensure the warning is no longer present.

## **Screenshots/Recordings**

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

### **Before**

<img width="1500" height="334" alt="Screenshot 2025-08-01 at 17 55 18"
src="https://github.com/user-attachments/assets/0a75c136-8ed6-40ee-a9e9-1ad93dc15bc7"
/>

### **After**

<img width="1251" height="319" alt="Screenshot 2025-08-01 at 18 46 05"
src="https://github.com/user-attachments/assets/e1994d09-5448-47c0-ac78-755576b76109"
/>

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

---------

Co-authored-by: MetaMask Bot <[email protected]>
I accidentally removed comments from `.yarnrc.yml` in
#33463

This PR restores them.

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


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

## **Changelog**


CHANGELOG entry:

## **Related issues**

Fixes:

## **Manual testing steps**

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

## **Screenshots/Recordings**

### **Before**

### **After**

## **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.
-->
…d (metrics) (#34406)

<!--
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 prevents an unhandled exception when attempting to retrieve the
account type for metrics while the wallet is locked.
Once error happens set the `account_type` to `error`.

<!--
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/34406?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: #31261

## **Manual testing steps**

1. Perform a tx
2. Before is confirmed, lock the wallet
3. Wait
4. Error should not happen

## **Screenshots/Recordings**


[log_error.webm](https://github.com/user-attachments/assets/8ad21c45-47a8-42df-a6eb-cddb7ef75805)

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

- [ ] 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.
<!--
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?
-->

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

This PR fix hiding "Estimate changes changed" alert from wallet
initiated transactions.

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

## **Manual testing steps**

1. Try using send flow as it's seen in the issue
2. "Estimate changes changed" alert shouldn't appear in the confirmation
as transaction wallet initiated.

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

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

The E2E tests using the onboarding fixture would consistently show a
background console error about metadata being missing for the
`skipDeepLinkInterstitial` property because it was accidentally added to
the root of the `PreferencesController` state object rather than in the
`preferences` object. It shouldn't really have been in the state fixture
at all because the fixture's schema is meant to match migration version
74, which is quite old.

The error was resolved by removing the property.

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

## **Changelog**

CHANGELOG entry: null

## **Related issues**

This error was introduced in
#33634

## **Manual testing steps**

1. Start any E2E test that uses the onboarding fixture, and examine the
background console during the test. Perhaps easiest by throwing an error
in the test and using `yarn test:e2e:single --leave-running --browser
chrome [test]`

## **Screenshots/Recordings**

N/A

## **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.
## **Description**
Skip a flaky test for now.

There are some other skipped tests in this test file, so I've created a
ticket to fix and enable them.

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

## **Changelog**

CHANGELOG entry: null

## **Related issues**

Fixes: #34766 

## **Manual testing steps**

1. Run `yarn test:e2e:single
test/e2e/tests/smart-transactions/smart-transactions.spec.ts --browser
chrome --leave-running`
2. It will pass now

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

Signed-off-by: dan437 <[email protected]>
… support (#34733)

<!--
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 updates the logic for detecting gas station support by consuming
the new feature flag introduced by the Transactions team. This flag
indicates whether gas station is supported on a given chain

<!--
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/34733?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: MetaMask/MetaMask-planning#5377

## **Manual testing steps**

1. Go to test dapp
2. in the section `EIP 5792`  
3. Click on `GET CAPABILITIES`
4. Confirm with
`https://tx-sentinel-ethereum-mainnet.api.cx.metamask.io/networks`

1. Go to test dapp (requires tokens to use as gas)
2. in the section `EIP 5792`  
3. Click on `SEND CALLS`
4. Select a different token and send the tx

## **Screenshots/Recordings**

[Uploading supported.webm…]()

[Screencast from 2025-07-30
14-50-49.webm](https://github.com/user-attachments/assets/d4510855-a3f2-49c1-9796-35eea117024c)

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

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

Remove policy override entries for dependencies we no longer use, or for
variants that have since been consolidated.

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

## **Changelog**

CHANGELOG entry: null

## **Related issues**

N/A

## **Manual testing steps**

N/A

## **Screenshots/Recordings**

N/A

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

---------

Co-authored-by: MetaMask Bot <[email protected]>
#34837)

## **Description**

The purpose of this change is to fix the "Create Release Pull Request"
Github action by aligning on [metamask-mobile
implementation](https://github.com/MetaMask/metamask-mobile/blob/main/.github/workflows/create-release-pr.yml#L12-L14),
which seems to work by passing a tag instead of a branch name to
github-tools:
- [Successful job on Mobile
repo](https://github.com/MetaMask/metamask-mobile/actions/runs/16660661504/job/47156804696)
✅

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

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

- [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.
## Version Bump After Release

This PR bumps the main branch version from 13.1.0 to 13.2.0 after
cutting the release branch.

### Why this is needed:
- **Nightly builds**: Each nightly build needs to be one minor version
ahead of the current release candidate
- **Version conflicts**: Prevents conflicts between nightlies and
release candidates
- **Platform alignment**: Maintains version alignment between MetaMask
mobile and extension
- **Update systems**: Ensures nightlies are accepted by app stores and
browser update systems

### What changed:
- Version bumped from `13.1.0` to `13.2.0`
- Platform: `extension`
- Files updated by `set-semvar-version.sh` script

### Next steps:
This PR should be **manually reviewed and merged by the release
manager** to maintain proper version flow.

### Related:
- Release version: 13.1.0
- Release branch: Version-v13.1.0
- Platform: extension
- Test mode: false

---
*This PR was automatically created by the
`create-platform-release-pr.sh` script.*

Co-authored-by: [email protected] <[email protected]>
…ferent network` (#34834)

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

The spec fails with this error:

```
Error: SyntaxError: Unexpected end of JSON input
  at fet…ipeoacjioc/js-u.a2b8643f36c2c6f1fc00.js:15544:20), Unexpected end of JSON input
    at withFixtures (test/e2e/helpers.js:320:13)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async Context.<anonymous> (test/e2e/tests/settings/address-book.spec.ts:62:5)
```

The problem is that we are missing a mock for tokens, which then results
in that request going to the catch all mock which returns a 200 with
empty data. Then when trying to parse the empty data the wallet throws
the error.

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

## **Related issues**

Fixes: #34802

## **Manual testing steps**

1. `yarn test:e2e:single --browser chrome
test/e2e/tests/settings/address-book.spec.ts --leave-running=true`

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

- [ ] 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.
…age to edit eth value, baseFee, priorityFee and gas limit - 1559 V2` (#34854)

<!--
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**
The send edit specs start a send flow right after login in. The problem
is that if we initiate a transaction before the balance has loaded, the
`Continue` button is never enabled, no matter how much we wait on the
Confirmation screen.
This is a known bug on the wallet side (see
[here](#24639)).

To mitigate this on the spec side, we should wait for the balance to
load before starting any transaction.

<img width="1673" height="241" alt="Screenshot from 2025-08-05 08-30-20"
src="https://github.com/user-attachments/assets/054d54c0-9ea9-42c2-bb27-30ef990fc9e1"
/>


<img width="1050" height="812" alt="test-failure-screenshot-1"
src="https://github.com/user-attachments/assets/2f7bdff3-fac3-45ba-9ead-a3c4cc75f7f5"
/>

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

## **Related issues**

Fixes: #34853

## **Manual testing steps**

1. `yarn test:e2e:single --browser chrome
test/e2e/tests/transaction/send-edit.spec.js --leave-running=true`

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

- [ ] 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.
…ted balance when "Current Network" is selected` (#34856)

<!--
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 test uses an anti-pattern that we should avoid.
See more context on this issue here:
#19870

There's a work being done to avoid this as a lint rule, but it hasn't
been finished yet

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

## **Related issues**

Fixes: #34798

## **Manual testing steps**

1. `yarn test:e2e:single --browser chrome
test/e2e/tests/multichain/aggregated-balances.spec.ts
--leave-running=true`

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

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

Bumps Bitcoin Snap to latest.

[![Open in GitHub
Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/34741?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/NWNT-230

## **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.
…Typescript and POM (#34696)

## **Description**

Migrate the following e2e test spec file to Typescript and Page object
modal:

`test/e2e/tests/request-queuing/dapp1-send-dapp2-signTypedData.spec.js`

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

## **Related issues**

Fixes:
[MMQA-748](https://consensyssoftware.atlassian.net/browse/MMQA-748?atlOrigin=eyJpIjoiMzQ4MjhlZGJhOGMyNDc2YmE2ZGQ2NzIwOWU2ZTY0MmYiLCJwIjoiaiJ9)

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


[MMQA-748]:
https://consensyssoftware.atlassian.net/browse/MMQA-748?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
[MMQA-748]:
https://consensyssoftware.atlassian.net/browse/MMQA-748?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ

---------

Co-authored-by: sleepytanya <[email protected]>
…#34857)

## **Description**

Handle errors thrown by `handleSnapRequest` in `SnapInterfaceContext` to
avoid unhandled errors caught by Sentry.

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

## **Changelog**

CHANGELOG entry:null

## **Related issues**

Fixes: #22286

## **Manual testing steps**

1. Have a test snap that triggers an error when clicking a button in a
home-page
2. Click the button
3. Look at the UI console to ensure the good error is thrown

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

---------

Co-authored-by: Maarten Zuidhoorn <[email protected]>
…4594)

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

This PR aims to fix `transactionType` for bridge and swaps transactions
metrics when STX is enabled.

Please see recordings that it correctly triggers events and adds defined
values for `transactionType` for metrics.

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

## **Related issues**

Fixes: MetaMask/MetaMask-planning#5354 and
MetaMask/MetaMask-planning#5353

## **Manual testing steps**

N/A

## **Screenshots/Recordings**

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

### **Before**

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

### **After**


https://github.com/user-attachments/assets/04df6735-847e-4267-86ff-0e990a59fe17


https://github.com/user-attachments/assets/31c7f590-e4a8-403f-8509-a42483fe97c3



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

The `withFixtures` helper function has been updated to shut down test
servers in parallel rather than one-at-a-time. Any shutdown errors are
logged, then the first error is re-thrown.

Potentially this could obscure the underlying test error (if there was
one), but this seems like an acceptable tradeoff for ensuring bugs in
the shutdown code are discovered and prioritized.

This change has two main benefits:
* It ensures we attempt to shut down _all_ servers, even when one
shutdown attempt fails
* It speeds up the shutdown process

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

## **Changelog**

CHANGELOG entry: null

## **Related issues**

N/A

## **Manual testing steps**

N/A

## **Screenshots/Recordings**

N/A

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

The change to turn backup and sync on by default conflicted with the
`yarn start:with-state` command, because it would automatically sync
with the remote state of the SRP and overwrite what you just did.

This PR turns off backup and sync if you're using `yarn
start:with-state`.

Future plans are to make this work with power user E2E tests.

## **Changelog**

CHANGELOG entry: null

## **Related issues**

Fixes: MetaMask/MetaMask-planning#5451

<!--## **Manual testing steps**
## **Screenshots/Recordings**
## **Pre-merge author checklist**
## **Pre-merge reviewer checklist**-->
@metamaskbot
Copy link
Collaborator Author

Builds ready [3340f70]
UI Startup Metrics (1168 ± 74 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyHomeuiStartup1168105414367412241300
load98884312167510411126
domContentLoaded98083512107610331118
domInteractive17145061726
firstPaint5868111233929771093
backgroundConnect21620135419217231
firstReactRender20124652231
getState1353571627
initialActions30274410
loadScripts77363799274828910
setupStore95657916
WebpackHomeuiStartup22111633261917922782548
load16781202194314517441891
domContentLoaded16711198193314417391882
domInteractive181294151457
firstPaint1696135154196277
backgroundConnect3013336332767
firstReactRender1778640388164376
getState2643036311260
initialActions5215269
loadScripts16671195192114317361870
setupStore216307491325
FirefoxBrowserifyHomeuiStartup1301112915408613651465
load111998813156511641238
domContentLoaded111998813156511641238
domInteractive1053226545116225
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect291764103257
firstReactRender24205162344
getState826910627
initialActions30465313
loadScripts109897312886411441203
setupStore835810734
WebpackHomeuiStartup15521345205913616201823
load12981121162611713841539
domContentLoaded12971120162611713841538
domInteractive1023128650104242
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect291998103342
firstReactRender52407275565
getState932861126
initialActions6119222314
loadScripts12761103160511713641516
setupStore1046181124
Benchmark value 216 exceeds gate value 10 for chrome browserify home mean backgroundConnect
Benchmark value 4 exceeds gate value 1 for chrome browserify home mean initialActions
Benchmark value 231 exceeds gate value 18 for chrome browserify home p95 backgroundConnect
Benchmark value 10 exceeds gate value 1.2 for chrome browserify home p95 initialActions
Benchmark value 2212 exceeds gate value 2192 for chrome webpack home mean uiStartup
Benchmark value 2549 exceeds gate value 2454 for chrome webpack home p95 uiStartup
Benchmark value 376 exceeds gate value 370 for chrome webpack home p95 firstReactRender
Benchmark value 260 exceeds gate value 195 for chrome webpack home p95 getState
Benchmark value 9 exceeds gate value 7 for chrome webpack home p95 initialActions
Benchmark value 29 exceeds gate value 25 for firefox browserify home mean backgroundConnect
Benchmark value 3 exceeds gate value 1 for firefox browserify home mean initialActions
Benchmark value 225 exceeds gate value 195 for firefox browserify home p95 domInteractive
Benchmark value 27 exceeds gate value 24 for firefox browserify home p95 getState
Benchmark value 13 exceeds gate value 2 for firefox browserify home p95 initialActions
Benchmark value 34 exceeds gate value 27 for firefox browserify home p95 setupStore
Benchmark value 102 exceeds gate value 100 for firefox webpack home mean domInteractive
Benchmark value 29 exceeds gate value 26 for firefox webpack home mean backgroundConnect
Benchmark value 52 exceeds gate value 38 for firefox webpack home mean firstReactRender
Benchmark value 6 exceeds gate value 1 for firefox webpack home mean initialActions
Benchmark value 242 exceeds gate value 156 for firefox webpack home p95 domInteractive
Benchmark value 65 exceeds gate value 50 for firefox webpack home p95 firstReactRender
Benchmark value 14 exceeds gate value 2 for firefox webpack home p95 initialActions
Sum of mean exceeds: 259ms | Sum of p95 exceeds: 553.8ms
Sum of all benchmark exceeds: 812.8ms

…nners (#35485)

- fix: cp-13.2.0 Launchdarkly flag added carousel-banners (#35447)

<!--
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?
-->
Added a LaunchDarkly flag to disable/enable carousel banners completely.

Thread for the request here:
https://consensys.slack.com/archives/C09ARN5362F/p1755701853276849
Flag here:

https://app.launchdarkly.com/projects/metamask-client-config-api-extension/flags/carousel-banners/targeting?env=beta-dev&env=beta-prod&env=main-dev&env=production&env=flask-prod&env=test&env=beta-rc&env=flask-dev&env=flask-qa&selected-env=main-dev

[![Open in GitHub

Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/35447?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:

## **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**
<img width="819" height="798" alt="Screenshot 2025-08-27 at 11 12 53 PM"

src="https://github.com/user-attachments/assets/87bf714a-569b-4893-90fc-795739161fe0"
/>

### **After**
<img width="807" height="749" alt="Screenshot 2025-08-27 at 11 10 08 PM"

src="https://github.com/user-attachments/assets/34cda8ca-93c1-49ff-ac9d-8ca79a92d5d1"
/>

<!-- [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.
[98b2323](98b2323)

---------

Co-authored-by: Marci McBride <[email protected]>
Co-authored-by: Marci McBride <[email protected]>
Co-authored-by: seaona <[email protected]>
Co-authored-by: Gauthier Petetin <[email protected]>
@metamaskbot
Copy link
Collaborator Author

Builds ready [11e75ce]
UI Startup Metrics (1139 ± 71 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyHomeuiStartup1139101414037111751284
load98985912597710281137
domContentLoaded98085112537810201129
domInteractive17133841728
firstPaint66914811343779931094
backgroundConnect2152022438219233
firstReactRender2414135172347
getState1152861325
initialActions30345316
loadScripts773646103777813918
setupStore85203914
WebpackHomeuiStartup21321621263922122532537
load16451261199917117281912
domContentLoaded16381254198817017231895
domInteractive2011133211488
firstPaint1846145872218354
backgroundConnect3315360463053
firstReactRender1858738697176380
getState3353017411278
initialActions5215268
loadScripts16331248197516817181883
setupStore2673036213292
FirefoxBrowserifyHomeuiStartup12501115166410012861470
load109799614087811511273
domContentLoaded109799514087811511273
domInteractive1003126042106206
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect2716102113044
firstReactRender25195892351
getState8214616528
initialActions5015617229
loadScripts107798113097311311234
setupStore11319021830
WebpackHomeuiStartup16081403208514616991891
load13621189167911814501574
domContentLoaded13621189167911814491574
domInteractive1023231954104254
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect3322167163549
firstReactRender53428285768
getState124112151228
initialActions5119119314
loadScripts13381170165511714151552
setupStore125129181126
Benchmark value 216 exceeds gate value 10 for chrome browserify home mean backgroundConnect
Benchmark value 24 exceeds gate value 23 for chrome browserify home mean firstReactRender
Benchmark value 4 exceeds gate value 1 for chrome browserify home mean initialActions
Benchmark value 234 exceeds gate value 18 for chrome browserify home p95 backgroundConnect
Benchmark value 47 exceeds gate value 45 for chrome browserify home p95 firstReactRender
Benchmark value 16 exceeds gate value 1.2 for chrome browserify home p95 initialActions
Benchmark value 33 exceeds gate value 29 for chrome webpack home mean getState
Benchmark value 2538 exceeds gate value 2454 for chrome webpack home p95 uiStartup
Benchmark value 88 exceeds gate value 57 for chrome webpack home p95 domInteractive
Benchmark value 354 exceeds gate value 334 for chrome webpack home p95 firstPaint
Benchmark value 380 exceeds gate value 370 for chrome webpack home p95 firstReactRender
Benchmark value 278 exceeds gate value 195 for chrome webpack home p95 getState
Benchmark value 8 exceeds gate value 7 for chrome webpack home p95 initialActions
Benchmark value 292 exceeds gate value 65 for chrome webpack home p95 setupStore
Benchmark value 27 exceeds gate value 25 for firefox browserify home mean backgroundConnect
Benchmark value 6 exceeds gate value 1 for firefox browserify home mean initialActions
Benchmark value 11 exceeds gate value 9 for firefox browserify home mean setupStore
Benchmark value 206 exceeds gate value 195 for firefox browserify home p95 domInteractive
Benchmark value 28 exceeds gate value 24 for firefox browserify home p95 getState
Benchmark value 29 exceeds gate value 2 for firefox browserify home p95 initialActions
Benchmark value 30 exceeds gate value 27 for firefox browserify home p95 setupStore
Benchmark value 102 exceeds gate value 100 for firefox webpack home mean domInteractive
Benchmark value 34 exceeds gate value 26 for firefox webpack home mean backgroundConnect
Benchmark value 54 exceeds gate value 38 for firefox webpack home mean firstReactRender
Benchmark value 6 exceeds gate value 1 for firefox webpack home mean initialActions
Benchmark value 254 exceeds gate value 156 for firefox webpack home p95 domInteractive
Benchmark value 68 exceeds gate value 50 for firefox webpack home p95 firstReactRender
Benchmark value 14 exceeds gate value 2 for firefox webpack home p95 initialActions
Sum of mean exceeds: 254ms | Sum of p95 exceeds: 861.8ms
Sum of all benchmark exceeds: 1115.8ms

…spect the chainIds caveat (#35509)

- fix: cp-13.2.0 Make SnapsNameProvider respect the chainIds caveat
(#35477)

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

Previously the SnapsNameProvider would not respect the `chainIds` caveat
when specified by the Snap, this would result in calls to the Snap that
it is not expecting and could crash it. In production this crashes the
Solana Snap.

[![Open in GitHub

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

## **Related issues**

Fixes: #35473
Fixes: #35364
[62e1a87](62e1a87)

Co-authored-by: Frederik Bolding <[email protected]>
@metamaskbot
Copy link
Collaborator Author

Builds ready [c6379c6]
UI Startup Metrics (1091 ± 50 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyHomeuiStartup1091100213275011201161
load9328261148619791022
domContentLoaded9248181144619731014
domInteractive16134451626
firstPaint63515310213569601001
backgroundConnect21220025910214233
firstReactRender2814136233095
getState124123131425
initialActions30224310
loadScripts72062293560767811
setupStore952741017
WebpackHomeuiStartup20381559263324021562465
load15881175197418817021866
domContentLoaded15821172196818616971856
domInteractive1811104171374
firstPaint1646351269186298
backgroundConnect2814363352655
firstReactRender1658639479154370
getState333305799284
initialActions4220358
loadScripts15781169195618516941844
setupStore137296291217
FirefoxBrowserifyHomeuiStartup12551073163511213171482
load110396013208611641272
domContentLoaded110396013208611631272
domInteractive1013224544101225
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect3017134173065
firstReactRender24195572343
getState7213214522
initialActions30627211
loadScripts108194413058311421229
setupStore10319120734
WebpackHomeuiStartup15461354206515416421858
load13131154164011814061539
domContentLoaded13131153164011814061539
domInteractive94312774296243
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect3019120143345
firstReactRender50396875463
getState11458101130
initialActions31173313
loadScripts12901134161311713841516
setupStore11412517921
Benchmark value 213 exceeds gate value 10 for chrome browserify home mean backgroundConnect
Benchmark value 29 exceeds gate value 23 for chrome browserify home mean firstReactRender
Benchmark value 3 exceeds gate value 1 for chrome browserify home mean initialActions
Benchmark value 233 exceeds gate value 18 for chrome browserify home p95 backgroundConnect
Benchmark value 95 exceeds gate value 45 for chrome browserify home p95 firstReactRender
Benchmark value 10 exceeds gate value 1.2 for chrome browserify home p95 initialActions
Benchmark value 34 exceeds gate value 29 for chrome webpack home mean getState
Benchmark value 2465 exceeds gate value 2454 for chrome webpack home p95 uiStartup
Benchmark value 75 exceeds gate value 57 for chrome webpack home p95 domInteractive
Benchmark value 284 exceeds gate value 195 for chrome webpack home p95 getState
Benchmark value 8 exceeds gate value 7 for chrome webpack home p95 initialActions
Benchmark value 30 exceeds gate value 25 for firefox browserify home mean backgroundConnect
Benchmark value 3 exceeds gate value 1 for firefox browserify home mean initialActions
Benchmark value 11 exceeds gate value 9 for firefox browserify home mean setupStore
Benchmark value 225 exceeds gate value 195 for firefox browserify home p95 domInteractive
Benchmark value 11 exceeds gate value 2 for firefox browserify home p95 initialActions
Benchmark value 34 exceeds gate value 27 for firefox browserify home p95 setupStore
Benchmark value 31 exceeds gate value 26 for firefox webpack home mean backgroundConnect
Benchmark value 51 exceeds gate value 38 for firefox webpack home mean firstReactRender
Benchmark value 4 exceeds gate value 1 for firefox webpack home mean initialActions
Benchmark value 243 exceeds gate value 156 for firefox webpack home p95 domInteractive
Benchmark value 63 exceeds gate value 50 for firefox webpack home p95 firstReactRender
Benchmark value 13 exceeds gate value 2 for firefox webpack home p95 initialActions
Sum of mean exceeds: 246ms | Sum of p95 exceeds: 549.8ms
Sum of all benchmark exceeds: 795.8ms

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

Update 13.2.0 changelog based on new cherry-picks

<!--
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/35522?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:

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

- [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.
@metamaskbot
Copy link
Collaborator Author

Builds ready [7087b6a]
UI Startup Metrics (1096 ± 74 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyHomeuiStartup109698813927411411237
load9288091233879891103
domContentLoaded9208051223869811095
domInteractive16134761626
firstPaint63315512333569111034
backgroundConnect2101952498214226
firstReactRender32151452539121
getState1153151521
initialActions40395411
loadScripts71861499485778891
setupStore1052451220
WebpackHomeuiStartup22031637269223823062635
load17081247201318718081988
domContentLoaded17001242200218618031972
domInteractive1811113161552
firstPaint1746738260220292
backgroundConnect3216317313161
firstReactRender1728841481169384
getState3243187611280
initialActions6217017611
loadScripts16961239199118418011957
setupStore2473135515163
FirefoxBrowserifyHomeuiStartup13281158182012513781578
load1162101214378912111337
domContentLoaded1162101214378912101337
domInteractive1103544060111243
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect3718142233592
firstReactRender26216092553
getState8219621625
initialActions30617210
loadScripts113699514138511721309
setupStore10420421828
WebpackHomeuiStartup15681360217817516441974
load13251158174612514201548
domContentLoaded13251158174512514201548
domInteractive1013228752101246
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect3121164153546
firstReactRender52407665661
getState10413114929
initialActions7121129317
loadScripts13021135171412314021515
setupStore114149161024
Benchmark value 211 exceeds gate value 10 for chrome browserify home mean backgroundConnect
Benchmark value 33 exceeds gate value 23 for chrome browserify home mean firstReactRender
Benchmark value 4 exceeds gate value 1 for chrome browserify home mean initialActions
Benchmark value 226 exceeds gate value 18 for chrome browserify home p95 backgroundConnect
Benchmark value 121 exceeds gate value 45 for chrome browserify home p95 firstReactRender
Benchmark value 11 exceeds gate value 1.2 for chrome browserify home p95 initialActions
Benchmark value 20 exceeds gate value 17 for chrome browserify home p95 setupStore
Benchmark value 2203 exceeds gate value 2192 for chrome webpack home mean uiStartup
Benchmark value 32 exceeds gate value 29 for chrome webpack home mean getState
Benchmark value 2635 exceeds gate value 2454 for chrome webpack home p95 uiStartup
Benchmark value 384 exceeds gate value 370 for chrome webpack home p95 firstReactRender
Benchmark value 280 exceeds gate value 195 for chrome webpack home p95 getState
Benchmark value 11 exceeds gate value 7 for chrome webpack home p95 initialActions
Benchmark value 163 exceeds gate value 65 for chrome webpack home p95 setupStore
Benchmark value 111 exceeds gate value 110 for firefox browserify home mean domInteractive
Benchmark value 37 exceeds gate value 25 for firefox browserify home mean backgroundConnect
Benchmark value 26 exceeds gate value 25 for firefox browserify home mean firstReactRender
Benchmark value 4 exceeds gate value 1 for firefox browserify home mean initialActions
Benchmark value 11 exceeds gate value 9 for firefox browserify home mean setupStore
Benchmark value 243 exceeds gate value 195 for firefox browserify home p95 domInteractive
Benchmark value 92 exceeds gate value 70 for firefox browserify home p95 backgroundConnect
Benchmark value 25 exceeds gate value 24 for firefox browserify home p95 getState
Benchmark value 10 exceeds gate value 2 for firefox browserify home p95 initialActions
Benchmark value 28 exceeds gate value 27 for firefox browserify home p95 setupStore
Benchmark value 101 exceeds gate value 100 for firefox webpack home mean domInteractive
Benchmark value 31 exceeds gate value 26 for firefox webpack home mean backgroundConnect
Benchmark value 52 exceeds gate value 38 for firefox webpack home mean firstReactRender
Benchmark value 8 exceeds gate value 1 for firefox webpack home mean initialActions
Benchmark value 1974 exceeds gate value 1935 for firefox webpack home p95 uiStartup
Benchmark value 246 exceeds gate value 156 for firefox webpack home p95 domInteractive
Benchmark value 61 exceeds gate value 50 for firefox webpack home p95 firstReactRender
Benchmark value 17 exceeds gate value 2 for firefox webpack home p95 initialActions
Sum of mean exceeds: 274ms | Sum of p95 exceeds: 913.8ms
Sum of all benchmark exceeds: 1187.8ms

… popover (#35530)

- fix: cp-13.2.0 grant permission via connected site popover (#35487)

When user switch to a non permitted network via this modal in popover.
It should grant permission to the network and show the toast



## **Related issues**

Fixes: #35483 
#35481

## **Manual testing steps**

1. Connect MM to a Dapp
2. Switch to non permitted network from Dapp popover
3. Check the new network is permitted

### RPC
1. Connect MM to a Dapp
2. Switch RPC via networks in global menu
3. Switching rpc should only update global network not the dapp
connected network

## **Screenshots/Recordings**

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

### **Before**

NA
### **After**



https://github.com/user-attachments/assets/041cf4fc-b133-43de-ae05-346a85920c86



<!-- [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.

---------

Co-authored-by: Prithpal Sooriya <[email protected]>
[597e6db](597e6db)

Co-authored-by: Nidhi Kumari <[email protected]>
Co-authored-by: Prithpal Sooriya <[email protected]>
@gauthierpetetin gauthierpetetin marked this pull request as ready for review August 29, 2025 18:27
@gauthierpetetin gauthierpetetin requested review from a team as code owners August 29, 2025 18:27
@metamaskbot
Copy link
Collaborator Author

Builds ready [0df1de0]
UI Startup Metrics (1145 ± 65 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyHomeuiStartup1145101913356511891272
load99585511576410341122
domContentLoaded98684811496510261113
domInteractive17133851730
firstPaint58669113940110021094
backgroundConnect21520132514218236
firstReactRender211498102136
getState13592121625
initialActions20183210
loadScripts78064591864819904
setupStore84284816
WebpackHomeuiStartup21421577266520522442498
load16611216194915617411889
domContentLoaded16541211193815517381881
domInteractive181191161470
firstPaint1666360674201285
backgroundConnect3415333502858
firstReactRender1748641195162383
getState3453177811278
initialActions5213258
loadScripts16501209192515417351869
setupStore2563096014247
FirefoxBrowserifyHomeuiStartup1329115417669913791519
load1170102915018612301308
domContentLoaded1170102914998512301308
domInteractive1163449663127259
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect3218102153471
firstReactRender25206282450
getState62326521
initialActions30415211
loadScripts1144101314768312031283
setupStore84498729
WebpackHomeuiStartup15741364195713616571841
load13381149165011814141584
domContentLoaded13381148165011814131584
domInteractive1023129856100260
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect31208893543
firstReactRender52417565563
getState1045710928
initialActions6014217313
loadScripts13151125163011913901562
setupStore953251022
Benchmark value 216 exceeds gate value 10 for chrome browserify home mean backgroundConnect
Benchmark value 3 exceeds gate value 1 for chrome browserify home mean initialActions
Benchmark value 236 exceeds gate value 18 for chrome browserify home p95 backgroundConnect
Benchmark value 10 exceeds gate value 1.2 for chrome browserify home p95 initialActions
Benchmark value 34 exceeds gate value 29 for chrome webpack home mean getState
Benchmark value 2498 exceeds gate value 2454 for chrome webpack home p95 uiStartup
Benchmark value 70 exceeds gate value 57 for chrome webpack home p95 domInteractive
Benchmark value 383 exceeds gate value 370 for chrome webpack home p95 firstReactRender
Benchmark value 278 exceeds gate value 195 for chrome webpack home p95 getState
Benchmark value 8 exceeds gate value 7 for chrome webpack home p95 initialActions
Benchmark value 247 exceeds gate value 65 for chrome webpack home p95 setupStore
Benchmark value 117 exceeds gate value 110 for firefox browserify home mean domInteractive
Benchmark value 32 exceeds gate value 25 for firefox browserify home mean backgroundConnect
Benchmark value 26 exceeds gate value 25 for firefox browserify home mean firstReactRender
Benchmark value 3 exceeds gate value 1 for firefox browserify home mean initialActions
Benchmark value 259 exceeds gate value 195 for firefox browserify home p95 domInteractive
Benchmark value 71 exceeds gate value 70 for firefox browserify home p95 backgroundConnect
Benchmark value 11 exceeds gate value 2 for firefox browserify home p95 initialActions
Benchmark value 29 exceeds gate value 27 for firefox browserify home p95 setupStore
Benchmark value 103 exceeds gate value 100 for firefox webpack home mean domInteractive
Benchmark value 31 exceeds gate value 26 for firefox webpack home mean backgroundConnect
Benchmark value 52 exceeds gate value 38 for firefox webpack home mean firstReactRender
Benchmark value 6 exceeds gate value 1 for firefox webpack home mean initialActions
Benchmark value 260 exceeds gate value 156 for firefox webpack home p95 domInteractive
Benchmark value 63 exceeds gate value 50 for firefox webpack home p95 firstReactRender
Benchmark value 13 exceeds gate value 2 for firefox webpack home p95 initialActions
Sum of mean exceeds: 257ms | Sum of p95 exceeds: 766.8ms
Sum of all benchmark exceeds: 1023.8ms

@gauthierpetetin gauthierpetetin merged commit 6105199 into master Aug 29, 2025
140 checks passed
@github-actions github-actions bot locked and limited conversation to collaborators Aug 29, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

release-13.2.0 Issue or pull request that will be included in release 13.2.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.