From 1d5135850486ea3ee23dcdf01f224f5d71c0136a Mon Sep 17 00:00:00 2001 From: fatadel Date: Fri, 25 Sep 2026 11:22:40 +0200 Subject: [PATCH] Clarify how to save profiles for later access Replace Download labels with Save and explain in the Save and Share panels that profiles are not saved automatically. This makes the need to save a file or upload a profile explicit. --- locales/en-US/app.ftl | 9 ++-- src/components/app/MenuButtons/Publish.tsx | 14 ++++-- src/components/app/MenuButtons/index.tsx | 2 +- src/test/components/MenuButtons.test.tsx | 16 +++---- .../__snapshots__/MenuButtons.test.tsx.snap | 43 +++++++++++++++---- 5 files changed, 58 insertions(+), 26 deletions(-) diff --git a/locales/en-US/app.ftl b/locales/en-US/app.ftl index 91c30908bb..19bbf50f09 100644 --- a/locales/en-US/app.ftl +++ b/locales/en-US/app.ftl @@ -576,8 +576,8 @@ MenuButtons--index--metaInfo-button = MenuButtons--index--full-view = Full View MenuButtons--index--cancel-upload = Cancel Upload -MenuButtons--index--download = - .label = Download… +MenuButtons--index--save = + .label = Save… MenuButtons--index--share = .label = Share… @@ -763,7 +763,8 @@ MenuButtons--publish--renderCheckbox-label-argument-values-warning-image = .title = This profile contains function argument values recorded from the page, which may include personal data MenuButtons--publish--share-performance-profile = Share Performance Profile MenuButtons--publish--reshare-performance-profile = Re-share Performance Profile -MenuButtons--publish--download-performance-profile = Download Performance Profile +MenuButtons--publish--save-performance-profile = Save Performance Profile +MenuButtons--publish--persistence-description = Profiles are not saved automatically. To keep a profile, save it to your computer or upload it using Share. MenuButtons--publish--info-description = Upload your profile and make it accessible to anyone with the link. MenuButtons--publish--download-info-description = Save this profile as a file on your computer. MenuButtons--publish--info-description-default = By default, your personal data is removed. @@ -774,7 +775,7 @@ MenuButtons--publish--upload-title = Uploading profile… MenuButtons--publish--cancel-upload = Cancel Upload MenuButtons--publish--message-something-went-wrong = Uh oh, something went wrong when uploading the profile. MenuButtons--publish--message-try-again = Try again -MenuButtons--publish--download = Download +MenuButtons--publish--save = Save MenuButtons--publish--compressing = Compressing… MenuButtons--publish--error-while-compressing = Error while compressing, try unchecking some checkboxes to reduce the profile size. diff --git a/src/components/app/MenuButtons/Publish.tsx b/src/components/app/MenuButtons/Publish.tsx index 5c6fc2824d..f68700c92c 100644 --- a/src/components/app/MenuButtons/Publish.tsx +++ b/src/components/app/MenuButtons/Publish.tsx @@ -142,8 +142,8 @@ class PublishPanelImpl extends React.PureComponent { let title; if (isDownload) { title = ( - - Download Performance Profile + + Save Performance Profile ); } else if (isRepublish) { @@ -167,6 +167,12 @@ class PublishPanelImpl extends React.PureComponent { onSubmit={isDownload ? undefined : this._onSubmit} >

{title}

+ +

+ Profiles are not saved automatically. To keep a profile, save it + to your computer or upload it using Share. +

+

{isDownload ? ( @@ -469,7 +475,7 @@ class DownloadButton extends React.PureComponent { className={className} > - Download{' '} + Save{' '} ({prettyBytes(profileData.size)}) @@ -479,7 +485,7 @@ class DownloadButton extends React.PureComponent { case 'ERROR': { return ( ); } diff --git a/src/components/app/MenuButtons/index.tsx b/src/components/app/MenuButtons/index.tsx index 8ac1b39a4a..ca01265f26 100644 --- a/src/components/app/MenuButtons/index.tsx +++ b/src/components/app/MenuButtons/index.tsx @@ -263,7 +263,7 @@ class MenuButtonsImpl extends React.PureComponent { return ( <> - + { - fireFullClick(screen.getByText('Download…')); - await screen.findByText('Download Performance Profile'); + fireFullClick(screen.getByText('Save…')); + await screen.findByText('Save Performance Profile'); }; return { @@ -320,7 +320,7 @@ describe('app/MenuButtons', function () { const { profile } = createSimpleProfile('nightly'); const { getPanel, openDownloadPanel } = setupForPublish(profile); await openDownloadPanel(); - await screen.findByRole('link', { name: /Download/ }); + await screen.findByRole('link', { name: /Save/ }); expect(getPanel()).toMatchSnapshot(); }); @@ -328,7 +328,7 @@ describe('app/MenuButtons', function () { const { profile } = createSimpleProfile('release'); const { getPanel, openDownloadPanel } = setupForPublish(profile); await openDownloadPanel(); - await screen.findByRole('link', { name: /Download/ }); + await screen.findByRole('link', { name: /Save/ }); expect(getPanel()).toMatchSnapshot(); }); @@ -346,7 +346,7 @@ describe('app/MenuButtons', function () { navigateToHash('VALID_HASH'); expect(container).toMatchSnapshot(); await openDownloadPanel(); - await screen.findByRole('link', { name: /Download/ }); + await screen.findByRole('link', { name: /Save/ }); expect(getPanel()).toMatchSnapshot(); }); @@ -519,13 +519,13 @@ describe('app/MenuButtons', function () { expect(getPanel()).toMatchSnapshot(); }); - it('keeps Download available but locks the options while uploading', async () => { + it('keeps Save available but locks the options while uploading', async () => { const { openPublishPanel, getPanelForm, openDownloadPanel } = setupForPublish(); await openPublishPanel(); fireEvent.submit(getPanelForm()); - // The Download button stays in the toolbar while the upload is running. + // The Save button stays in the toolbar while the upload is running. await openDownloadPanel(); expect( screen.getByRole('checkbox', { name: /Include hidden threads/ }) diff --git a/src/test/components/__snapshots__/MenuButtons.test.tsx.snap b/src/test/components/__snapshots__/MenuButtons.test.tsx.snap index cfddb3ad72..5fdc46ef1e 100644 --- a/src/test/components/__snapshots__/MenuButtons.test.tsx.snap +++ b/src/test/components/__snapshots__/MenuButtons.test.tsx.snap @@ -1814,7 +1814,7 @@ exports[`app/MenuButtons can publish and revert 1`] = ` class="buttonWithPanelButton menuButtonsButton menuButtonsDownloadButton menuButtonsButton-hasIcon" type="button" > - Download… + Save…

matches the snapshot for a compression error > Share Performance Profile +

+ Profiles are not saved automatically. To keep a profile, save it to your computer or upload it using Share. +

@@ -2040,7 +2045,7 @@ exports[`app/MenuButtons matches the snapshot for the closed state 1`] class="buttonWithPanelButton menuButtonsButton menuButtonsDownloadButton menuButtonsButton-hasIcon" type="button" > - Download… + Save…

matches the snapshot for the menu buttons and class="buttonWithPanelButton menuButtonsButton menuButtonsDownloadButton menuButtonsButton-hasIcon" type="button" > - Download… + Save…
matches the snapshot for the menu buttons and

- Download Performance Profile + Save Performance Profile

+

+ Profiles are not saved automatically. To keep a profile, save it to your computer or upload it using Share. +

@@ -2225,7 +2235,7 @@ exports[`app/MenuButtons matches the snapshot for the menu buttons and - Download + Save matches the snapshot for the opened panel for

- Download Performance Profile + Save Performance Profile

+

+ Profiles are not saved automatically. To keep a profile, save it to your computer or upload it using Share. +

@@ -2344,7 +2359,7 @@ exports[`app/MenuButtons matches the snapshot for the opened panel for - Download + Save matches the snapshot for the opened panel for

- Download Performance Profile + Save Performance Profile

+

+ Profiles are not saved automatically. To keep a profile, save it to your computer or upload it using Share. +

@@ -2458,7 +2478,7 @@ exports[`app/MenuButtons matches the snapshot for the opened panel for - Download + Save matches the snapshot for the opened share pan > Share Performance Profile +

+ Profiles are not saved automatically. To keep a profile, save it to your computer or upload it using Share. +