Skip to content

Conversation

@NidhiKJha
Copy link
Member

@NidhiKJha NidhiKJha commented Nov 21, 2025

This PR is to add the updated privacy notice banner

Changelog

CHANGELOG entry:

Related issues

Fixes:

Manual testing steps

  1. Go to this page...

Screenshots/Recordings

Before

After

Pre-merge author checklist

Pre-merge reviewer checklist

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

Note

Introduces a LaunchDarkly-gated PNA25 MetaMetrics update banner with dismissal tracking, new app state fields/setters, selector logic, toast UI, and locale strings.

  • UI/Toast:
    • Add Pna25Banner to toast-master.js; opens PRIVACY_POLICY_LINK, tracks dismiss via setPna25BannerClickedOrClosed and setPna25BannerDismissedDate.
  • Selectors:
    • Implement selectShowPna25Banner using remoteFeatureFlags['extension-ux-pna25'], participateInMetaMetrics, onboardingDate, and dismissal state.
  • App State (Background):
    • Add pna25BannerClickedOrClosed and pna25BannerDismissedDate to AppStateController state, defaults, metadata, and setters.
  • Utils:
    • Add background calls setPna25BannerClickedOrClosed and setPna25BannerDismissedDate.
  • Localization:
    • Add pna25BannerTitle and pna25BannerActionButton strings in en and en_GB; normalize apostrophe in newPrivacyPolicyTitle.

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

@NidhiKJha NidhiKJha added the DO-NOT-MERGE Pull requests that should not be merged label Nov 21, 2025
@NidhiKJha NidhiKJha marked this pull request as draft November 21, 2025 10:58
@metamaskbot metamaskbot added the team-core-extension-ux Core Extension UX team label Nov 21, 2025

if (!onboardingDate || onboardingDate >= pna25Timestamp) {
return false; // User onboarded after PNA25 or no onboarding date
}
Copy link

Choose a reason for hiding this comment

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

Bug: PNA25 banner excluded for users with no onboarding date

The condition prevents displaying the PNA25 banner to users with no onboardingDate (null), which is inconsistent with the docstring requirement "User onboarded before the PNA25 release date" and inconsistent with similar logic in selectShowPrivacyPolicyToast that explicitly includes such users. The comment suggests only blocking users who onboarded after PNA25, but the condition !onboardingDate || blocks null onboarding dates too.

Fix in Cursor Fix in Web


if (!onboardingDate || onboardingDate >= pna25Timestamp) {
return false; // User onboarded after PNA25 or no onboarding date
}
Copy link

Choose a reason for hiding this comment

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

Bug: PNA25 banner excluded for users with no onboarding date

The condition prevents displaying the PNA25 banner to users with no onboardingDate (null), which is inconsistent with the docstring requirement "User onboarded before the PNA25 release date" and inconsistent with similar logic in selectShowPrivacyPolicyToast that explicitly includes such users. The condition !onboardingDate || blocks null onboarding dates when it should only block users who onboarded after the PNA25 timestamp.

Fix in Cursor Fix in Web

@metamaskbot
Copy link
Collaborator

Builds ready [3feccf9]
UI Startup Metrics (1168 ± 107 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup1168990149810712291357
load99884313129910641148
domContentLoaded99283913069810581141
domInteractive211379141762
firstPaint63087118839310231121
backgroundConnect1901752158196206
firstReactRender27186483144
getState301476113453
initialActions106113
loadScripts809661112097875954
setupStore1072331116
numNetworkReqs1257821577
BrowserifyPower User HomeuiStartup18731565259823620772338
load100288314981479981432
domContentLoaded98887714731469781414
domInteractive35162274427158
firstPaint5489315073859311369
backgroundConnect22320525511228249
firstReactRender8055140128797
getState17612233549200298
initialActions105112
loadScripts78167512681457721207
setupStore191055102435
numNetworkReqs88641962996164
WebpackStandard HomeuiStartup8427411096758701004
load63057083562634798
domContentLoaded62556682662630793
domInteractive251596182273
firstPaint23479831153224628
backgroundConnect1363791633
firstReactRender31217073441
getState311462103846
initialActions104112
loadScripts62256481460628784
setupStore1273041418
numNetworkReqs1257720573
WebpackPower User HomeuiStartup14461209257924215581917
load67758314041326961023
domContentLoaded66657513961306771000
domInteractive37171693536136
firstPaint291901021198331699
backgroundConnect1584361927
firstReactRender795096108494
getState15712329031166231
initialActions102011
loadScripts6635731385128675990
setupStore231070153453
numNetworkReqs1436329352183281
FirefoxBrowserifyStandard HomeuiStartup12931106160711413851521
load108794013008611471242
domContentLoaded108593513008711471242
domInteractive64322374384155
firstPaint------
backgroundConnect4123189244583
firstReactRender23184852336
getState146161191035
initialActions102122
loadScripts106292512778311201219
setupStore1158191128
numNetworkReqs1156515654
BrowserifyPower User HomeuiStartup26871906363734228373504
load1161921158618012241516
domContentLoaded1160921158618112181516
domInteractive12933534123142455
firstPaint------
backgroundConnect19020861224228796
firstReactRender87501491997126
getState22579868215198821
initialActions2120227
loadScripts1131905154817611971482
setupStore1008776157104554
numNetworkReqs90602124481201
WebpackStandard HomeuiStartup14421252186813314911775
load1225107714779712881438
domContentLoaded1225107714779712871438
domInteractive63271803783137
firstPaint------
backgroundConnect3919192244286
firstReactRender282082103064
getState145163201146
initialActions103122
loadScripts1200105414539112641390
setupStore126110151022
numNetworkReqs1256817663
WebpackPower User HomeuiStartup28591998372434230313566
load14081139198519815821762
domContentLoaded14081139198519815811762
domInteractive13031754132141468
firstPaint------
backgroundConnect15731726169176590
firstReactRender85391502197128
getState30183905290437882
initialActions317237
loadScripts13701089194619815311734
setupStore85677914173329
numNetworkReqs91582184483201
📊 Page Load Benchmark Results

Current Commit: 3feccf9 | Date: 11/21/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 981ms (±38ms) 🟢 | historical mean value: 1.04s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 683ms (±60ms) 🟢 | historical mean value: 727ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 78ms (±39ms) 🟢 | historical mean value: 79ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 981ms 38ms 953ms 1.28s 1.01s 1.28s
domContentLoaded 683ms 60ms 659ms 1.23s 707ms 1.23s
firstPaint 78ms 39ms 64ms 460ms 84ms 460ms
firstContentfulPaint 78ms 39ms 64ms 460ms 84ms 460ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 494 Bytes (0.01%)
  • ui: 41.19 KiB (0.59%)
  • common: 391 Bytes (0%)

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

Labels

DO-NOT-MERGE Pull requests that should not be merged size-M team-core-extension-ux Core Extension UX team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants