Skip to content

Conversation

@runway-github
Copy link
Contributor

@runway-github runway-github bot commented Nov 19, 2025

Description

Open in GitHub Codespaces

In this PR, we have enabled the MetaMask Support link in unlock page.

Jira Link: https://consensyssoftware.atlassian.net/browse/SL-329

Figma Link:
https://www.figma.com/design/pViOUcmjwhEzFsdrwknpNc/Onboarding-Redesign?node-id=18656-27472&m=dev

Changelog

CHANGELOG entry: added the support link back in unlock page.

Related issues

Fixes:

Manual testing steps

  1. Open Extension
  2. Create Wallet
  3. Lock the app
  4. Validate changes in unlock page.

Screenshots/Recordings

Before

Screenshot 2025-11-19 at 1 06
31 PM

After

Screenshot 2025-11-19 at 12 51
52 PM
Screenshot 2025-11-19 at 12 52 07 PM
Screenshot 2025-11-19 at 12 52 37 PM
Screenshot 2025-11-19 at 12 53 04 PM
Screenshot 2025-11-19 at 12 53
20 PM
Screenshot 2025-11-19 at 12 53
38 PM

Pre-merge author checklist

Pre-merge reviewer checklist

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

Note

Adds a help/support link to the unlock page and tweaks horizontal logo spacing with a popup-specific style, wiring isPopup from container to component.

  • Unlock Page UI (ui/pages/unlock-page/unlock-page.component.js)
    • Add persistent "Need help?" text with link to SUPPORT_LINK and tracking.
    • Reduce "Forgot password?" button bottom margin (marginBottom 6 → 4).
    • Apply popup-specific class to MetaFoxHorizontalLogo when isPopup is true.
    • Add isPopup to PropTypes.
  • Styling (ui/pages/unlock-page/index.scss)
    • Decrease unlock-page__mascot-container__horizontal-logo margin-bottom (60px → 24px) and add --popup modifier (margin-bottom: 0).
  • Container (ui/pages/unlock-page/unlock-page.container.js)
    • Determine isPopup via getEnvironmentType() and pass to component; reuse for restore-in-browser logic.
  • Tests (__snapshots__/unlock-page.test.js.snap)
    • Update snapshot to reflect new help text/link, spacing changes, and logo class.

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


Co-authored-by: Lwin [email protected] 355e33f

…37967)

<!--
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/37967?quickstart=1)

In this PR, we have enabled the MetaMask Support link in unlock page.

Jira Link: https://consensyssoftware.atlassian.net/browse/SL-329

Figma Link:
https://www.figma.com/design/pViOUcmjwhEzFsdrwknpNc/Onboarding-Redesign?node-id=18656-27472&m=dev


## **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: added the support link back in unlock page.

## **Related issues**

Fixes:

## **Manual testing steps**

1. Open Extension
2. Create Wallet
3. Lock the app
4. Validate changes in unlock page.
5.

## **Screenshots/Recordings**

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

### **Before**

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

<img width="1728" height="1007" alt="Screenshot 2025-11-19 at 1 06
31 PM"
src="https://github.com/user-attachments/assets/9dbf610c-1d7a-4aad-9a9f-de52bc23a71a"
/>


### **After**

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

<img width="385" height="1002" alt="Screenshot 2025-11-19 at 12 51
52 PM"
src="https://github.com/user-attachments/assets/8172d54e-09d1-4eb7-ae85-b0b56fa9f1fc"
/>
<img width="381" height="994" alt="Screenshot 2025-11-19 at 12 52 07 PM"
src="https://github.com/user-attachments/assets/c29c2a40-dc66-402b-9812-63e008d116f2"
/>
<img width="498" height="761" alt="Screenshot 2025-11-19 at 12 52 37 PM"
src="https://github.com/user-attachments/assets/58f4cd6e-89c0-46b1-8b48-44fcf5f90c40"
/>
<img width="494" height="647" alt="Screenshot 2025-11-19 at 12 53 04 PM"
src="https://github.com/user-attachments/assets/69b15d7f-ff87-4d6d-b9cc-02d2f3379ff4"
/>
<img width="1727" height="987" alt="Screenshot 2025-11-19 at 12 53
20 PM"
src="https://github.com/user-attachments/assets/1eeabfae-30c7-4dd0-8090-0701eb8cba88"
/>
<img width="1722" height="1031" alt="Screenshot 2025-11-19 at 12 53
38 PM"
src="https://github.com/user-attachments/assets/e5eea7ee-d609-4956-b397-a29b75e74e93"
/>


## **Pre-merge author checklist**

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

## **Pre-merge reviewer checklist**

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


<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Adds a support link with tracking to the unlock page, introduces
popup-specific logo spacing via a new isPopup prop, and tweaks
margins/spacing.
> 
> - **Unlock Page UI**:
> - **Support link**: Adds “Need help? Contact MetaMask support” with
external link and metrics tracking (`SupportLinkClicked`).
> - **Spacing tweaks**: Reduces `Forgot password?` margin
(`marginBottom` 6→4); adjusts
`unlock-page__mascot-container__horizontal-logo` default margin
(60px→24px); adds popup modifier `--popup` to remove bottom margin.
> - **Logic/Props**:
> - Passes new `isPopup` prop from container (via `getEnvironmentType()
=== ENVIRONMENT_TYPE_POPUP`) to component; applies conditional class to
`MetaFoxHorizontalLogo`.
> - **Styles**:
>   - Updates `index.scss` to add `&--popup` modifier and new margins.
> - **Tests**:
>   - Updates snapshot to reflect new support link and spacing changes.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
1001a7e. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: Lwin <[email protected]>
@github-actions
Copy link
Contributor

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

@metamaskbot metamaskbot added the team-bots Bot team (for MetaMask Bot, Runway Bot, etc.) label Nov 19, 2025
@metamaskbot
Copy link
Collaborator

Builds ready [477688e]
UI Startup Metrics (1247 ± 98 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup1247107016489813161410
load108093414148911411220
domContentLoaded107492813878811341207
domInteractive2414115212092
firstPaint63689124543010881194
backgroundConnect2342222818237246
firstReactRender31206383347
getState23669132952
initialActions106113
loadScripts846708113286904978
setupStore1152441221
numNetworkReqs1367719671
BrowserifyPower User HomeuiStartup19221648247727722302477
load1107946159023714061590
domContentLoaded1094934157023513961570
domInteractive561919356126193
firstPaint78020616144649961614
backgroundConnect24823029320260293
firstReactRender56496345863
getState18415524726208247
initialActions101011
loadScripts863706132722411681327
setupStore191145102045
numNetworkReqs986619346168193
WebpackStandard HomeuiStartup8437121209968431082
load61756598483614840
domContentLoaded60955997078609827
domInteractive181261121551
firstPaint21462977210202732
backgroundConnect261178152969
firstReactRender3320130163663
getState1163231214
initialActions103111
loadScripts60655795976607817
setupStore1154161227
numNetworkReqs1367319871
WebpackPower User HomeuiStartup1074899165025913701650
load668574977142858977
domContentLoaded650558898126830898
domInteractive36131474083147
firstPaint36268906268577906
backgroundConnect601021769145217
firstReactRender40364424344
getState1339215321145153
initialActions101011
loadScripts646556888123820888
setupStore1263092530
numNetworkReqs806012927124129
FirefoxBrowserifyStandard HomeuiStartup14751321216313815161745
load1238112815208812841438
domContentLoaded1238112815208812831438
domInteractive54342503950153
firstPaint------
backgroundConnect4326139204799
firstReactRender27235152839
getState12780111122
initialActions103122
loadScripts1213111014568112581400
setupStore167228301236
numNetworkReqs1266715757
BrowserifyPower User HomeuiStartup29132259429556131334295
load14291266173416216321734
domContentLoaded14281265173316216311733
domInteractive18678492141369492
firstPaint------
backgroundConnect3189512103354291210
firstReactRender815711018103110
getState19011645486214454
initialActions214134
loadScripts13841234170115815981701
setupStore18965584158241584
numNetworkReqs1196125372231253
WebpackStandard HomeuiStartup16451469230715216501992
load13911218178610614121653
domContentLoaded13911218178510614121652
domInteractive58301702965127
firstPaint------
backgroundConnect49251592655117
firstReactRender33258283444
getState14660111250
initialActions203122
loadScripts1361120316999913791589
setupStore197193261380
numNetworkReqs1366616862
WebpackPower User HomeuiStartup31002280454172337954541
load16561425206621018702066
domContentLoaded16561424206521018692065
domInteractive21173541159409541
firstPaint------
backgroundConnect3308912253685441225
firstReactRender82601292092129
getState199132607108199607
initialActions318238
loadScripts16121396202520718312025
setupStore12839461127139461
numNetworkReqs1236526276244262
📊 Page Load Benchmark Results

Current Commit: 477688e | Date: 11/19/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

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

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.03s 37ms 1.01s 1.30s 1.05s 1.30s
domContentLoaded 715ms 35ms 696ms 972ms 736ms 972ms
firstPaint 76ms 12ms 56ms 180ms 84ms 180ms
firstContentfulPaint 76ms 12ms 56ms 180ms 84ms 180ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms

@metamaskbot
Copy link
Collaborator

Builds ready [477688e]
UI Startup Metrics (1247 ± 98 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup1247107016489813161410
load108093414148911411220
domContentLoaded107492813878811341207
domInteractive2414115212092
firstPaint63689124543010881194
backgroundConnect2342222818237246
firstReactRender31206383347
getState23669132952
initialActions106113
loadScripts846708113286904978
setupStore1152441221
numNetworkReqs1367719671
BrowserifyPower User HomeuiStartup19221648247727722302477
load1107946159023714061590
domContentLoaded1094934157023513961570
domInteractive561919356126193
firstPaint78020616144649961614
backgroundConnect24823029320260293
firstReactRender56496345863
getState18415524726208247
initialActions101011
loadScripts863706132722411681327
setupStore191145102045
numNetworkReqs986619346168193
WebpackStandard HomeuiStartup8437121209968431082
load61756598483614840
domContentLoaded60955997078609827
domInteractive181261121551
firstPaint21462977210202732
backgroundConnect261178152969
firstReactRender3320130163663
getState1163231214
initialActions103111
loadScripts60655795976607817
setupStore1154161227
numNetworkReqs1367319871
WebpackPower User HomeuiStartup1074899165025913701650
load668574977142858977
domContentLoaded650558898126830898
domInteractive36131474083147
firstPaint36268906268577906
backgroundConnect601021769145217
firstReactRender40364424344
getState1339215321145153
initialActions101011
loadScripts646556888123820888
setupStore1263092530
numNetworkReqs806012927124129
FirefoxBrowserifyStandard HomeuiStartup14751321216313815161745
load1238112815208812841438
domContentLoaded1238112815208812831438
domInteractive54342503950153
firstPaint------
backgroundConnect4326139204799
firstReactRender27235152839
getState12780111122
initialActions103122
loadScripts1213111014568112581400
setupStore167228301236
numNetworkReqs1266715757
BrowserifyPower User HomeuiStartup29132259429556131334295
load14291266173416216321734
domContentLoaded14281265173316216311733
domInteractive18678492141369492
firstPaint------
backgroundConnect3189512103354291210
firstReactRender815711018103110
getState19011645486214454
initialActions214134
loadScripts13841234170115815981701
setupStore18965584158241584
numNetworkReqs1196125372231253
WebpackStandard HomeuiStartup16451469230715216501992
load13911218178610614121653
domContentLoaded13911218178510614121652
domInteractive58301702965127
firstPaint------
backgroundConnect49251592655117
firstReactRender33258283444
getState14660111250
initialActions203122
loadScripts1361120316999913791589
setupStore197193261380
numNetworkReqs1366616862
WebpackPower User HomeuiStartup31002280454172337954541
load16561425206621018702066
domContentLoaded16561424206521018692065
domInteractive21173541159409541
firstPaint------
backgroundConnect3308912253685441225
firstReactRender82601292092129
getState199132607108199607
initialActions318238
loadScripts16121396202520718312025
setupStore12839461127139461
numNetworkReqs1236526276244262
📊 Page Load Benchmark Results

Current Commit: 477688e | Date: 11/19/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

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

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.03s 37ms 1.01s 1.30s 1.05s 1.30s
domContentLoaded 715ms 35ms 696ms 972ms 736ms 972ms
firstPaint 76ms 12ms 56ms 180ms 84ms 180ms
firstContentfulPaint 76ms 12ms 56ms 180ms 84ms 180ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms

@gauthierpetetin gauthierpetetin merged commit 10ba674 into release/13.10.0 Nov 20, 2025
329 of 331 checks passed
@gauthierpetetin gauthierpetetin deleted the runway-cherry-pick-13.10.0-1763571323 branch November 20, 2025 06:11
@github-actions github-actions bot locked and limited conversation to collaborators Nov 20, 2025
@metamaskbot metamaskbot added the release-13.10.0 Issue or pull request that will be included in release 13.10.0 label Nov 20, 2025
@metamaskbot
Copy link
Collaborator

No release label on PR. Adding release label release-13.10.0 on PR, as PR was cherry-picked in branch 13.10.0.

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

Labels

release-13.10.0 Issue or pull request that will be included in release 13.10.0 team-bots Bot team (for MetaMask Bot, Runway Bot, etc.)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants