tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit d66ec6b752fecf2b41c3f9fcaedc70748a12a9c3
parent 80328f6b2fe1b2b784590446b442cf928839ea84
Author: Emily McMinn <emcminn@mozilla.com>
Date:   Tue, 14 Oct 2025 21:01:42 +0000

Bug 1993356 - Add backup spotlight message to OnboardingMessageProvider && clean up preview strings r=omc-reviewers,aminomancer

Differential Revision: https://phabricator.services.mozilla.com/D268029

Diffstat:
Mbrowser/components/aboutwelcome/content/onboarding.ftl | 48------------------------------------------------
Mbrowser/components/asrouter/modules/OnboardingMessageProvider.sys.mjs | 791+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 791 insertions(+), 48 deletions(-)

diff --git a/browser/components/aboutwelcome/content/onboarding.ftl b/browser/components/aboutwelcome/content/onboarding.ftl @@ -16,51 +16,3 @@ amo-screen-primary-cta = Explore staff-recommended add-ons browser-aboutwelcome-button = .label = Finish setup .tooltiptext = Finish setting up { -brand-short-name }. - -## Fx Backup onboarding: Create Backup spotlight - -fx-backup-opt-in-header = Choose file location -fx-backup-opt-in-filepath-label = Pick a location you plan to transfer to a new device, like OneDrive. -fx-backup-opt-in-create-password-label = Enter password -fx-backup-opt-in-confirm-btn-label = Continue -fx-backup-opt-in-cancel-btn-label = Back - -create-backup-screen-1-title = Upgrading to Windows 11? - Let’s back up your { -brand-product-name } data. -create-backup-screen-1-subtitle = Automatically protect your passwords, bookmarks, and more in 1-2 minutes. -create-backup-screen-1-flair = Recommended -create-backup-learn-more-link = <a data-l10n-name="learn-more-label">Learn more</a> -create-backup-screen-1-sync-label = Sync with { -brand-product-name } -create-backup-screen-1-sync-body = Back up on all signed in devices -create-backup-screen-1-backup-label = Back up to PC -create-backup-screen-1-backup-body = Save to this device -create-backup-select-tile-button-label = Select -create-backup-back-button-label = Back -create-backup-show-fewer = - .label = Show fewer like this -create-backup-screen-2-title = Choose { -brand-product-name } data to back up -create-backup-screen-2-subtitle = Only takes a minute. Your data is backed up once a day. -create-backup-screen-2-easy-label = Easy setup -create-backup-screen-2-easy-list-1 = Bookmarks, history, settings, and more -create-backup-screen-2-easy-list-2 = Doesn’t include passwords and payments -create-backup-screen-2-easy-list-3 = Not encrypted -create-backup-screen-2-all-label = All data -create-backup-screen-2-all-list-2 = Includes passwords and payments -create-backup-screen-2-all-list-3 = Encrypted with a password - -## Fx Backup confirmation screen strings - -fx-backup-confirmation-screen-title = Your backup is scheduled -fx-backup-confirmation-screen-close-button = Close - -fx-backup-confirmation-screen-all-data-item-text-1 = All browsing data included -fx-backup-confirmation-screen-all-data-item-text-2 = Saved to your device -fx-backup-confirmation-screen-all-data-item-text-3 = Encrypted and password protected - -fx-backup-confirmation-screen-easy-setup-item-text-1 = Bookmarks, history, settings, and other data inlcuded -fx-backup-confirmation-screen-easy-setup-item-text-2 = Saved to your device -fx-backup-confirmation-screen-easy-setup-item-text-3 = Passwords and payments not included -fx-backup-confirmation-screen-easy-setup-item-subtext-3 = Go to <a data-l10n-name="settings">Settings</a> to include sensitive data. - -fx-backup-confirmation-screen-item-subtext-1 = Your backup will start in a few minutes and will run once a day. You can check progress in <a data-l10n-name="settings">Settings</a>. -fx-backup-confirmation-screen-item-subtext-2 = { -brand-short-name } will look for your backup if you need to reinstall. diff --git a/browser/components/asrouter/modules/OnboardingMessageProvider.sys.mjs b/browser/components/asrouter/modules/OnboardingMessageProvider.sys.mjs @@ -62,6 +62,797 @@ const isMSIX = const BASE_MESSAGES = () => [ { + id: "BROWSER_BACKUP_OPTIN_SPOTLIGHT", + groups: ["win10-eos-sync", "eco"], + // TODO: The backup preferences in this expression should be updated once BackupService exposes getters; see Bug 1993272 + targeting: + "source == newtab && os.isWindows && os.windowsVersion == 10 && os.windowsBuildNumber <= 19045 && isFxAEnabled && !isFxASignedIn && !hasSelectableProfiles && !hasActiveEnterprisePolicies && ('browser.backup.archive.enabled' | preferenceValue) && (!'browser.backup.scheduled.enabled' | preferenceValue) && (!'browser.backup.scheduled.user-disabled' | preferenceValue) && !isMajorUpgrade && !willShowDefaultPrompt && !activeNotifications && previousSessionEnd && 'browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features' | preferenceValue != false", + trigger: { + id: "defaultBrowserCheck", + }, + template: "spotlight", + priority: 5, + frequency: { + lifetime: 1, + }, + content: { + id: "BROWSER_BACKUP_OPTIN_SPOTLIGHT", + template: "multistage", + modal: "tab", + transitions: true, + screens: [ + { + id: "SCREEN_1", + force_hide_steps_indicator: true, + content: { + position: "center", + screen_style: { + width: "650px", + minHeight: "485px", + }, + split_content_padding_block: "32px", + title: { + string_id: "create-backup-screen-1-title", + letterSpacing: "revert", + whiteSpace: "preserve-breaks", + lineHeight: "28px", + marginBlock: "0", + }, + subtitle: { + string_id: "create-backup-screen-1-subtitle", + fontSize: "0.8125em", + letterSpacing: "revert", + marginBlock: "12px 0", + }, + cta_paragraph: { + text: { + string_id: "create-backup-learn-more-link", + string_name: "learn-more-label", + fontSize: "0.8125em", + }, + style: { + marginBlock: "0", + lineHeight: "100%", + letterSpacing: "revert", + }, + action: { + type: "OPEN_URL", + data: { + args: "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/firefox-backup?utm_medium=firefox-desktop&utm_source=spotlight&utm_campaign=fx-backup-onboarding&utm_content=backup-turn-on-scheduled-learn-more-link&utm_term=fx-backup-onboarding-spotlight-1", + where: "tabshifted", + }, + }, + }, + tiles: { + type: "single-select", + autoTrigger: false, + selected: "sync", + action: { + picker: "<event>", + }, + data: [ + { + inert: true, + type: "backup", + icon: { + background: + "center / contain no-repeat url('chrome://browser/content/asrouter/assets/fox-with-box-on-cloud.svg')", + width: "133.9601px", + height: "90.1186px", + marginBlockStart: "8px", + borderRadius: "5px", + }, + id: "sync", + flair: { + centered: true, + text: { + string_id: "create-backup-screen-1-flair", + fontSize: "0.625em", + fontWeight: "600", + top: "revert", + lineHeight: "normal", + }, + }, + label: { + string_id: "create-backup-screen-1-sync-label", + fontSize: 17, + fontWeight: 600, + }, + body: { + string_id: "create-backup-screen-1-sync-body", + fontSize: "0.625em", + fontWeight: "400", + marginBlock: "-6px 16px", + color: "var(--text-color-deemphasized)", + }, + tilebutton: { + label: { + string_id: "create-backup-select-tile-button-label", + minHeight: "24px", + minWidth: "revert", + lineHeight: "100%", + paddingBlock: "4px", + paddingInline: "16px", + marginBlock: "0 16px", + }, + style: "primary", + action: { + type: "FXA_SIGNIN_FLOW", + dismiss: "actionResult", + needsAwait: true, + data: { + autoClose: false, + entrypoint: "spotlight-create-backup", + extraParams: { + service: "sync", + entrypoint_experiment: "fx-backup-onboarding", + entrypoint_variation: "1", + utm_medium: "firefox-desktop", + utm_source: "spotlight", + utm_campaign: "fx-backup-onboarding", + utm_term: "fx-backup-onboarding-spotlight-1", + }, + }, + }, + }, + }, + { + inert: true, + type: "backup", + icon: { + background: + "center / contain no-repeat url('chrome://browser/content/asrouter/assets/fox-with-locked-box.svg')", + width: "114.475px", + height: "90.1186px", + marginBlockStart: "8px", + borderRadius: "5px", + }, + id: "backup", + flair: { + centered: true, + spacer: true, + }, + label: { + string_id: "create-backup-screen-1-backup-label", + fontSize: 17, + fontWeight: 600, + }, + body: { + string_id: "create-backup-screen-1-backup-body", + fontSize: "0.625em", + fontWeight: "400", + marginBlock: "-6px 16px", + color: "var(--text-color-deemphasized)", + }, + tilebutton: { + label: { + string_id: "create-backup-select-tile-button-label", + minHeight: "24px", + minWidth: "revert", + lineHeight: "100%", + paddingBlock: "4px", + paddingInline: "16px", + marginBlock: "0 16px", + }, + style: "secondary", + action: { + navigate: true, + }, + }, + }, + ], + }, + additional_button: { + label: { + string_id: "fx-view-discoverability-secondary-button-label", + fontSize: "0.75em", + minHeight: "24px", + minWidth: "revert", + lineHeight: "100%", + paddingBlock: "4px", + paddingInline: "12px", + }, + style: "secondary", + flow: "row", + action: { + type: "BLOCK_MESSAGE", + data: { + id: "BROWSER_BACKUP_OPTIN_SPOTLIGHT", + }, + dismiss: true, + }, + }, + submenu_button: { + label: { + minHeight: "24px", + minWidth: "24px", + paddingBlock: "0", + paddingInline: "0", + }, + submenu: [ + { + type: "action", + label: { string_id: "create-backup-show-fewer" }, + action: { + type: "MULTI_ACTION", + dismiss: true, + data: { + actions: [ + { + type: "SET_PREF", + data: { + pref: { + name: "messaging-system-action.show-fewer-backup-messages", + value: true, + }, + }, + }, + { + type: "BLOCK_MESSAGE", + data: { + id: "BROWSER_BACKUP_OPTIN_SPOTLIGHT", + }, + }, + ], + }, + }, + id: "show_fewer_recommendations", + }, + ], + attached_to: "additional_button", + }, + }, + }, + { + id: "SCREEN_2", + force_hide_steps_indicator: true, + content: { + position: "center", + screen_style: { + width: "650px", + minHeight: "485px", + }, + split_content_padding_block: "32px", + title: { + string_id: "create-backup-screen-2-title", + letterSpacing: "revert", + lineHeight: "28px", + marginBlock: "0", + }, + subtitle: { + string_id: "create-backup-screen-2-subtitle", + fontSize: "0.8125em", + letterSpacing: "revert", + marginBlock: "8px 0", + }, + tiles: { + type: "single-select", + selected: "all", + action: { + picker: "<event>", + }, + data: [ + { + inert: true, + type: "backup", + icon: { + background: + "center / contain no-repeat url('https://firefox-settings-attachments.cdn.mozilla.net/main-workspace/ms-images/a43cd9cc-e8b2-477c-92f2-345557370de1.svg')", + width: "54px", + height: "54px", + marginBlockStart: "22px", + borderRadius: "5px", + }, + id: "easy", + label: { + string_id: "create-backup-screen-2-easy-label", + fontSize: 17, + fontWeight: 600, + marginBlock: "3px 10px", + }, + body: { + items: [ + { + icon: { + background: + "center / contain no-repeat url('chrome://browser/content/asrouter/assets/checkmark-16.svg')", + height: "18px", + width: "18px", + }, + text: { + string_id: "create-backup-screen-2-easy-list-1", + marginBlock: "4px", + fontSize: "13px", + }, + }, + { + icon: { + background: + "center / contain no-repeat url('chrome://browser/content/asrouter/assets/close-16.svg')", + height: "18px", + width: "18px", + }, + text: { + string_id: "create-backup-screen-2-easy-list-2", + marginBlock: "4px", + fontSize: "13px", + }, + }, + { + icon: { + background: + "center / contain no-repeat url('chrome://browser/content/asrouter/assets/close-16.svg')", + height: "18px", + width: "18px", + }, + text: { + string_id: "create-backup-screen-2-easy-list-3", + marginBlock: "4px", + fontSize: "13px", + fontWeight: "600", + }, + }, + ], + }, + tilebutton: { + label: { + string_id: "create-backup-select-tile-button-label", + minHeight: "24px", + minWidth: "revert", + lineHeight: "100%", + paddingBlock: "4px", + paddingInline: "16px", + marginBlock: "0 16px", + }, + style: "primary", + action: { + type: "SET_PREF", + navigate: true, + data: { + pref: { + name: "messaging-system-action.backupChooser", + value: "easy", + }, + }, + }, + }, + }, + { + inert: true, + type: "backup", + icon: { + background: + "center / contain no-repeat url('https://firefox-settings-attachments.cdn.mozilla.net/main-workspace/ms-images/0ddfd632-b9c4-45d6-86c3-b89f94797110.svg')", + width: "54px", + height: "54px", + marginBlockStart: "22px", + borderRadius: "5px", + }, + id: "all", + label: { + string_id: "create-backup-screen-2-all-label", + fontSize: 17, + fontWeight: 600, + marginBlock: "3px 10px", + }, + body: { + items: [ + { + icon: { + background: + "center / contain no-repeat url('chrome://browser/content/asrouter/assets/checkmark-16.svg')", + height: "18px", + width: "18px", + }, + text: { + string_id: "create-backup-screen-2-easy-list-1", + marginBlock: "4px", + fontSize: "13px", + }, + }, + { + icon: { + background: + "center / contain no-repeat url('chrome://browser/content/asrouter/assets/checkmark-16.svg')", + height: "18px", + width: "18px", + }, + text: { + string_id: "create-backup-screen-2-all-list-2", + marginBlock: "4px", + fontSize: "13px", + }, + }, + { + icon: { + background: + "center / contain no-repeat url('chrome://browser/content/asrouter/assets/shield-checkmark-16.svg')", + height: "18px", + width: "18px", + }, + text: { + string_id: "create-backup-screen-2-all-list-3", + marginBlock: "4px", + fontSize: "13px", + fontWeight: 500, + }, + }, + ], + }, + tilebutton: { + label: { + string_id: "create-backup-select-tile-button-label", + minHeight: "24px", + minWidth: "revert", + lineHeight: "100%", + paddingBlock: "4px", + paddingInline: "16px", + marginBlock: "0 16px", + }, + marginBlock: "0 16px", + style: "primary", + action: { + type: "SET_PREF", + navigate: true, + data: { + pref: { + name: "messaging-system-action.backupChooser", + value: "full", + }, + }, + }, + }, + }, + ], + }, + additional_button: { + style: "secondary", + label: { + string_id: "create-backup-back-button-label", + fontSize: "0.75em", + minHeight: "24px", + minWidth: "revert", + lineHeight: "100%", + paddingBlock: "4px", + paddingInline: "12px", + }, + action: { + navigate: true, + goBack: true, + }, + }, + }, + }, + { + id: "SCREEN_3A", + force_hide_steps_indicator: true, + targeting: "!isEncryptedBackup", + content: { + logo: { + imageURL: + "https://firefox-settings-attachments.cdn.mozilla.net/main-workspace/ms-images/0706f067-eaf8-4537-a9e1-6098d990f511.svg", + height: "110px", + }, + title: { + string_id: "create-backup-screen-3-location", + paddingBlock: "8px", + fontSize: "24px", + fontWeight: 600, + }, + isEncryptedBackup: false, + screen_style: { + width: "650px", + minHeight: "485px", + }, + tiles: { + type: "fx_backup_file_path", + options: { + hide_password_input: true, + file_path_label: "fx-backup-opt-in-filepath-label", + turn_on_backup_header: "fx-backup-opt-in-header", + turn_on_backup_confirm_btn_label: + "fx-backup-opt-in-confirm-btn-label", + }, + }, + additional_button: { + style: "secondary", + label: { + string_id: "create-backup-back-button-label", + fontSize: "0.75em", + minHeight: "24px", + minWidth: "revert", + lineHeight: "100%", + paddingBlock: "4px", + paddingInline: "12px", + }, + action: { + navigate: true, + goBack: true, + }, + }, + }, + }, + { + id: "SCREEN_3B", + force_hide_steps_indicator: true, + targeting: "isEncryptedBackup", + content: { + isEncryptedBackup: true, + logo: { + imageURL: + "https://firefox-settings-attachments.cdn.mozilla.net/main-workspace/ms-images/0706f067-eaf8-4537-a9e1-6098d990f511.svg", + height: "110px", + }, + title: { + string_id: "create-backup-screen-3-location", + }, + screen_style: { + width: "650px", + minHeight: "485px", + }, + tiles: { + type: "fx_backup_file_path", + options: { + hide_password_input: true, + hide_secondary_button: true, + file_path_label: "fx-backup-opt-in-filepath-label", + turn_on_backup_header: "fx-backup-opt-in-header", + turn_on_backup_confirm_btn_label: + "fx-backup-opt-in-confirm-btn-label", + }, + }, + additional_button: { + style: "secondary", + flow: "row", + label: { + string_id: "create-backup-back-button-label", + fontSize: "0.75em", + minHeight: "24px", + minWidth: "revert", + lineHeight: "100%", + paddingBlock: "4px", + paddingInline: "12px", + }, + action: { + navigate: true, + goBack: true, + }, + }, + }, + }, + { + id: "FX_BACKUP_ENCRYPTION", + force_hide_steps_indicator: true, + targeting: "isEncryptedBackup", + content: { + isEncryptedBackup: true, + title: { + string_id: "create-backup-screen-3-title", + }, + subtitle: { + string_id: "create-backup-screen-3-subtitle", + fontSize: "13px", + }, + screen_style: { + width: "650px", + minHeight: "485px", + }, + logo: { + imageURL: + "https://firefox-settings-attachments.cdn.mozilla.net/main-workspace/ms-images/0fb332a4-6b15-4d6e-bbd5-0558ac3e004f.svg", + height: "130px", + }, + tiles: { + type: "fx_backup_password", + options: { + hide_secondary_button: true, + create_password_label: "fx-backup-opt-in-create-password-label", + turn_on_backup_confirm_btn_label: + "fx-backup-opt-in-confirm-btn-label", + }, + }, + additional_button: { + style: "secondary", + label: { + string_id: "create-backup-back-button-label", + fontSize: "0.75em", + minHeight: "24px", + minWidth: "revert", + lineHeight: "100%", + paddingBlock: "4px", + paddingInline: "12px", + }, + action: { + navigate: true, + goBack: true, + }, + }, + }, + }, + { + id: "BACKUP_CONFIRMATION_SCREEN_EASY", + force_hide_steps_indicator: true, + targeting: "!isEncryptedBackup", + content: { + screen_style: { + width: "650px", + minHeight: "485px", + }, + logo: { + imageURL: + "chrome://browser/content/asrouter/assets/fox-with-checkmark.svg", + height: "96px", + }, + title: { + string_id: "fx-backup-confirmation-screen-title", + }, + tiles: { + type: "confirmation-checklist", + data: { + inert: true, + style: { width: "500px" }, + items: [ + { + icon: { + background: + "center / contain no-repeat url('chrome://browser/content/asrouter/assets/checkmark-16.svg')", + height: "18px", + width: "18px", + }, + text: { + string_id: + "fx-backup-confirmation-screen-easy-setup-item-text-1", + }, + subtext: { + string_id: "fx-backup-confirmation-screen-item-subtext-1", + }, + link_keys: ["settings"], + }, + { + icon: { + background: + "center / contain no-repeat url('chrome://browser/content/asrouter/assets/checkmark-16.svg')", + height: "18px", + width: "18px", + }, + text: { + string_id: + "fx-backup-confirmation-screen-easy-setup-item-text-2", + }, + subtext: { + string_id: "fx-backup-confirmation-screen-item-subtext-2", + }, + }, + { + icon: { + background: + "center / contain no-repeat url('chrome://browser/content/asrouter/assets/subtract-16.svg')", + height: "18px", + width: "18px", + }, + text: { + string_id: + "fx-backup-confirmation-screen-easy-setup-item-text-3", + }, + subtext: { + string_id: + "fx-backup-confirmation-screen-easy-setup-item-subtext-3", + }, + link_keys: ["settings"], + }, + ], + }, + }, + settings: { + action: { + type: "OPEN_ABOUT_PAGE", + data: { + args: "preferences#sync-backup", + where: "tab", + }, + }, + }, + additional_button: { + label: { + string_id: "fx-backup-confirmation-screen-close-button", + }, + style: "secondary", + action: { dismiss: true }, + }, + }, + }, + { + id: "BACKUP_CONFIRMATION_SCREEN_ENCRYPTED", + force_hide_steps_indicator: true, + targeting: "isEncryptedBackup", + content: { + isEncryptedBackup: true, + screen_style: { + width: "650px", + minHeight: "485px", + }, + logo: { + imageURL: + "chrome://browser/content/asrouter/assets/fox-with-checkmark.svg", + height: "96px", + }, + title: { + string_id: "fx-backup-confirmation-screen-title", + }, + tiles: { + type: "confirmation-checklist", + data: { + inert: true, + style: { width: "500px" }, + items: [ + { + icon: { + background: + "center / contain no-repeat url('chrome://browser/content/asrouter/assets/checkmark-16.svg')", + height: "18px", + width: "18px", + }, + text: { + string_id: + "fx-backup-confirmation-screen-all-data-item-text-1", + }, + subtext: { + string_id: "fx-backup-confirmation-screen-item-subtext-1", + }, + link_keys: ["settings"], + }, + { + icon: { + background: + "center / contain no-repeat url('chrome://browser/content/asrouter/assets/checkmark-16.svg')", + height: "18px", + width: "18px", + }, + text: { + string_id: + "fx-backup-confirmation-screen-all-data-item-text-2", + }, + subtext: { + string_id: "fx-backup-confirmation-screen-item-subtext-2", + }, + }, + { + icon: { + background: + "center / contain no-repeat url('chrome://browser/content/asrouter/assets/checkmark-16.svg')", + height: "18px", + width: "18px", + }, + text: { + string_id: + "fx-backup-confirmation-screen-all-data-item-text-3", + }, + }, + ], + }, + }, + settings: { + action: { + type: "OPEN_ABOUT_PAGE", + data: { + args: "preferences#sync-backup", + where: "tab", + }, + }, + }, + additional_button: { + label: { + string_id: "fx-backup-confirmation-screen-close-button", + }, + style: "secondary", + action: { dismiss: true }, + }, + }, + }, + ], + }, + }, + { id: "FXA_ACCOUNTS_BADGE", template: "toolbar_badge", content: {