Skip to content

Conversation

@runway-github
Copy link
Contributor

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

Description

In this PR, we have added the logic to stop the animation once
completed. Also added a browser back logic for login options.

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

Open in GitHub Codespaces

Changelog

CHANGELOG entry: stopped reloading of animation once completed

Related issues

Fixes:

Manual testing steps

  1. Open Extension
  2. validate animation reloading

Screenshots/Recordings

Before

After

Screen.Recording.2025-11-06.at.8.16.37.PM.mov
Screen.Recording.2025-11-06.at.11.00.34.PM.mov

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

Persist animation completion in shared context to prevent replay, and use URL params for login option state to support browser back; update navigation and tests accordingly.

  • Onboarding Animations:
    • Extend ui/contexts/rive-wasm with animationCompleted map and setIsAnimationCompleted(...) to persist completion state across views.
    • Update metamask-wordmark-animation.tsx to mark completion on unmount and consume the new context API.
  • Welcome Flow:
    • welcome.js: derive shouldSkipAnimation from animationCompleted.MetamaskWordMarkAnimation (replacing prior from query logic) to avoid replaying the wordmark animation.
    • welcome-login.tsx: read/write ?login=<option> to control LoginOptions visibility/selection and navigate via ONBOARDING_WELCOME_ROUTE to enable browser back restoring state.
  • Account Exist:
    • Simplify navigation back to ONBOARDING_WELCOME_ROUTE (remove ?from=account-exist).
  • Tests:
    • Adjust account-exist.test.tsx expectations to match new welcome route navigation without query params.

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

4e1f85a

…er back option cp-13.9.0 (#37581)

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

In this PR, we have added the logic to stop the animation once
completed. Also added a browser back logic for login options.

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

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

## **Related issues**

Fixes:

## **Manual testing steps**

1. Open Extension
2. validate animation reloading
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] -->



https://github.com/user-attachments/assets/7c01d5bc-2aeb-4591-84e6-c359e73a71c1



https://github.com/user-attachments/assets/1ccacae4-1aec-4fbd-b170-e879e54970b5





## **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]
> Persists Rive animation completion to skip replays, switches welcome
flow to context-based skipping, and syncs login option visibility via
the `?login` query param; updates navigation and tests.
> 
> - **Onboarding animations**:
> - Add `animationCompleted` map and `setIsAnimationCompleted` to
`RiveWasmContext` (`ui/contexts/rive-wasm/index.tsx`).
> - `MetamaskWordMarkAnimation` sets completion on unmount and consumes
the new setter; updates effect deps
(`ui/pages/onboarding-flow/welcome/metamask-wordmark-animation.tsx`).
> - `welcome` uses `animationCompleted.MetamaskWordMarkAnimation` to
decide `shouldSkipAnimation` (replaces URL-based check)
(`ui/pages/onboarding-flow/welcome/welcome.js`).
> - **Login flow URL syncing**:
> - `WelcomeLogin` reads `?login=` to control option view and writes it
on selection via `navigate`
(`ui/pages/onboarding-flow/welcome/welcome-login.tsx`).
> - **Navigation adjustments**:
> - `AccountExist` returns to `ONBOARDING_WELCOME_ROUTE` without
`?from=...`; tests updated accordingly
(`ui/pages/onboarding-flow/account-exist/*`).
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
709317b. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
@runway-github runway-github bot requested a review from a team as a code owner November 7, 2025 06:32
@github-actions
Copy link
Contributor

github-actions bot commented Nov 7, 2025

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 7, 2025
@metamaskbot
Copy link
Collaborator

✨ Files requiring CODEOWNER review ✨

🔐 @MetaMask/web3auth (5 files, +37 -15)
  • 📁 ui/
    • 📁 pages/
      • 📁 onboarding-flow/
        • 📁 account-exist/
          • 📄 account-exist.test.tsx +3 -6
          • 📄 account-exist.tsx +1 -1
        • 📁 welcome/
          • 📄 metamask-wordmark-animation.tsx +11 -2
          • 📄 welcome-login.tsx +16 -0
          • 📄 welcome.js +6 -6

@metamaskbot
Copy link
Collaborator

Builds ready [d90dcf6]
UI Startup Metrics (1204 ± 81 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup1204107314468112551340
load103592612157210881161
domContentLoaded102992112047110811154
domInteractive211475132060
firstPaint586157122539510061152
backgroundConnect2282162537232244
firstReactRender25175962739
getState2285692638
initialActions001001
loadScripts80770097871859928
setupStore1074041117
numNetworkReqs1367619671
BrowserifyPower User HomeuiStartup19381714264226221572642
load1040881146022313871460
domContentLoaded1031874143422013751434
domInteractive311872195272
firstPaint77423214743879291474
backgroundConnect2031922259212225
firstReactRender30245773057
getState18416720913196209
initialActions001011
loadScripts836681122521511731225
setupStore1293151231
numNetworkReqs1196925261167252
WebpackStandard HomeuiStartup84171312551018421139
load61856498091608913
domContentLoaded61155595287601888
domInteractive161260101441
firstPaint20962955206205600
backgroundConnect241070142658
firstReactRender29184673537
getState1161721215
initialActions001001
loadScripts60855294284600878
setupStore1263051323
numNetworkReqs1367819870
WebpackPower User HomeuiStartup12761124179218913701792
load68257610971667911097
domContentLoaded66156510631547681063
domInteractive34131634244163
firstPaint3876610653427721065
backgroundConnect54172566260256
firstReactRender26232822828
getState1349514617145146
initialActions001001
loadScripts65756310531517571053
setupStore1363082430
numNetworkReqs1066721745157217
FirefoxBrowserifyStandard HomeuiStartup14641294208214115111741
load1241111914728613041401
domContentLoaded1240111914718613041400
domInteractive1163532853127233
firstPaint------
backgroundConnect4425189234979
firstReactRender25204232528
getState73526713
initialActions002001
loadScripts1215110214418112721369
setupStore1377191237
numNetworkReqs1265914854
BrowserifyPower User HomeuiStartup22301941292826524132928
load12621105156314614151563
domContentLoaded12621105156314614151563
domInteractive16152471130228471
firstPaint------
backgroundConnect1063131089168310
firstReactRender412782145182
getState955316024103160
initialActions101111
loadScripts12261086153514113771535
setupStore3772235343223
numNetworkReqs1326731170198311
WebpackStandard HomeuiStartup16221378212514216791964
load13871208167010214411596
domContentLoaded13861207167010214411596
domInteractive1063235343119174
firstPaint------
backgroundConnect48191302452115
firstReactRender292374103050
getState11414921830
initialActions001001
loadScripts1354119115799414161544
setupStore14777131239
numNetworkReqs1266816762
WebpackPower User HomeuiStartup25122193318332527543183
load15171280195720917511957
domContentLoaded15161280195620917501956
domInteractive17968575150334575
firstPaint------
backgroundConnect893021659110216
firstReactRender41305164551
getState1127416524128165
initialActions206226
loadScripts14841263191220417041912
setupStore2661323326132
numNetworkReqs1326532686210326
📊 Page Load Benchmark Results

Current Commit: d90dcf6 | Date: 11/7/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.03s (±42ms) 🟡 | historical mean value: 1.04s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 716ms (±38ms) 🟢 | historical mean value: 723ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 76ms (±14ms) 🟢 | historical mean value: 77ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.03s 42ms 1.01s 1.36s 1.07s 1.36s
domContentLoaded 716ms 38ms 697ms 1.01s 746ms 1.01s
firstPaint 76ms 14ms 60ms 200ms 84ms 200ms
firstContentfulPaint 76ms 14ms 60ms 200ms 84ms 200ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms

@gauthierpetetin
Copy link
Contributor

@metamaskbot update-attributions

@metamaskbot
Copy link
Collaborator

No attributions changes

@gauthierpetetin gauthierpetetin merged commit 0ba1352 into release/13.9.0 Nov 7, 2025
27 checks passed
@gauthierpetetin gauthierpetetin deleted the runway-cherry-pick-13.9.0-1762497130 branch November 7, 2025 09:26
@github-actions github-actions bot locked and limited conversation to collaborators Nov 7, 2025
@metamaskbot
Copy link
Collaborator

Builds ready [29c4558]
UI Startup Metrics (1213 ± 118 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup12131053204311812561374
load1048911175610610861174
domContentLoaded1042906175010510811167
domInteractive201378121857
firstPaint69483176542110651143
backgroundConnect2262142647228235
firstReactRender26194662840
getState2075782537
initialActions001001
loadScripts8216901528104861952
setupStore1072541120
numNetworkReqs1367620673
BrowserifyPower User HomeuiStartup19151719257524821642575
load1040884176723311911767
domContentLoaded1032877175923311801759
domInteractive291586224986
firstPaint67122217774399341777
backgroundConnect23521926510236265
firstReactRender29245582755
getState16915319914177199
initialActions001011
loadScripts80865715202299551520
setupStore1192641126
numNetworkReqs1197424964173249
WebpackStandard HomeuiStartup813696115682816981
load59654892472590769
domContentLoaded58954190670584753
domInteractive16125591338
firstPaint17757880165190567
backgroundConnect231155122652
firstReactRender28175883337
getState1162941216
initialActions003001
loadScripts58753989668582742
setupStore1152841219
numNetworkReqs1367219870
WebpackPower User HomeuiStartup12781139174218213881742
load654567938129726938
domContentLoaded633557906115684906
domInteractive241271194971
firstPaint31582891263565891
backgroundConnect66162827796282
firstReactRender26232912729
getState1449417723156177
initialActions101111
loadScripts629555896111674896
setupStore1162671326
numNetworkReqs1106921846165218
FirefoxBrowserifyStandard HomeuiStartup14391286208912214941666
load1221110914748812831390
domContentLoaded1221110914748812831389
domInteractive1153535456118260
firstPaint------
backgroundConnect4224135184983
firstReactRender26215362641
getState74768713
initialActions001011
loadScripts1195108814568412551370
setupStore1376381231
numNetworkReqs1266415755
BrowserifyPower User HomeuiStartup24722109339132725943391
load14081186187122416051871
domContentLoaded14081185187122416041871
domInteractive20190559166355559
firstPaint------
backgroundConnect1193232185180321
firstReactRender43305495154
getState1288418430156184
initialActions106116
loadScripts13611152183423015791834
setupStore2151062530106
numNetworkReqs1336832475199324
WebpackStandard HomeuiStartup16971353229716217402050
load14291185169611214921649
domContentLoaded14291185169511214921648
domInteractive1073542752116178
firstPaint------
backgroundConnect52292042757110
firstReactRender332382113373
getState10415917836
initialActions002001
loadScripts13961167163710414611598
setupStore228206331487
numNetworkReqs1366817763
WebpackPower User HomeuiStartup24472114297327325802973
load14781221180419016471804
domContentLoaded14781221180419016471804
domInteractive15041416131327416
firstPaint------
backgroundConnect1123927675186276
firstReactRender413076125076
getState1108419727110197
initialActions001011
loadScripts14431205173017816111730
setupStore20558172858
numNetworkReqs1296025871196258
📊 Page Load Benchmark Results

Current Commit: 29c4558 | Date: 11/7/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.06s (±39ms) 🟡 | historical mean value: 1.03s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 740ms (±36ms) 🟢 | historical mean value: 718ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 80ms (±10ms) 🟢 | historical mean value: 76ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.06s 39ms 1.03s 1.35s 1.09s 1.35s
domContentLoaded 740ms 36ms 718ms 1.02s 762ms 1.02s
firstPaint 80ms 10ms 64ms 160ms 92ms 160ms
firstContentfulPaint 80ms 10ms 64ms 160ms 92ms 160ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms

@metamaskbot metamaskbot added the release-13.9.0 Issue or pull request that will be included in release 13.9.0 label Nov 7, 2025
@metamaskbot
Copy link
Collaborator

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

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

Labels

release-13.9.0 Issue or pull request that will be included in release 13.9.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