feat: Add Workspaces to Sync options

This commit adds Workspaces to the list of data types that can be synced.

This introduces the following changes:

- Adds a new preference `services.sync.engine.workspaces` to control syncing of Workspaces.
- Updates the `syncChooseWhatToSync.js` and `syncChooseWhatToSync.xhtml` files to include the new Workspaces option in the UI.
- Adds relevant localization strings to `preferences-ftl`.
- Updates CSS styling for the Workspaces option.
- Updates `zen-browser.js` to disable Workspace syncing by default.

This change allows users to choose whether to sync their Workspaces across devices.
This commit is contained in:
Kristijan Ribarić
2024-10-04 15:57:43 +02:00
parent 5488980bd9
commit 20f6dfafa1
6 changed files with 82 additions and 1 deletions

View File

@@ -131,6 +131,7 @@ pref('zen.workspaces.hide-default-container-indicator', true);
pref('zen.workspaces.individual-pinned-tabs', true); pref('zen.workspaces.individual-pinned-tabs', true);
pref('zen.workspaces.show-icon-strip', true); pref('zen.workspaces.show-icon-strip', true);
pref('zen.workspaces.icons', '["🌐", "📁", "💼", "📝", "📅", "📊","🧠"]'); pref('zen.workspaces.icons', '["🌐", "📁", "💼", "📝", "📅", "📊","🧠"]');
pref('services.sync.engine.workspaces', false);
// Zen Watermark // Zen Watermark
pref('zen.watermark.enabled', true, sticky); pref('zen.watermark.enabled', true, sticky);

View File

@@ -0,0 +1,12 @@
diff --git a/browser/components/preferences/dialogs/syncChooseWhatToSync.js b/browser/components/preferences/dialogs/syncChooseWhatToSync.js
index 2cc965b4e1b20e1ae422bfb5c90a237dcd31fcf6..cfed9dfa67c7c34cd812885a72d66dd37ba414fc 100644
--- a/browser/components/preferences/dialogs/syncChooseWhatToSync.js
+++ b/browser/components/preferences/dialogs/syncChooseWhatToSync.js
@@ -13,6 +13,7 @@ Preferences.addAll([
{ id: "services.sync.engine.passwords", type: "bool" },
{ id: "services.sync.engine.addresses", type: "bool" },
{ id: "services.sync.engine.creditcards", type: "bool" },
+ { id: "services.sync.engine.workspaces", type: "bool" },
]);
let gSyncChooseWhatToSync = {

View File

@@ -0,0 +1,17 @@
diff --git a/browser/components/preferences/dialogs/syncChooseWhatToSync.xhtml b/browser/components/preferences/dialogs/syncChooseWhatToSync.xhtml
index 83bd09c0c3f8fd5febf1721e6b462ca90e54327b..71c9e8e4056edaeb354cf7844494bd83c2089561 100644
--- a/browser/components/preferences/dialogs/syncChooseWhatToSync.xhtml
+++ b/browser/components/preferences/dialogs/syncChooseWhatToSync.xhtml
@@ -82,6 +82,12 @@
preference="services.sync.engine.prefs"
/>
</html:div>
+ <html:div class="sync-engine-workspaces">
+ <checkbox
+ data-l10n-id="sync-engine-workspaces"
+ preference="services.sync.engine.workspaces"
+ />
+ </html:div>
</html:div>
</dialog>
</window>

View File

@@ -0,0 +1,15 @@
diff --git a/browser/components/preferences/sync.inc.xhtml b/browser/components/preferences/sync.inc.xhtml
index 492491a369b53797aded1d3e4cf24d6f11394267..b294aa3005b11276ba8f1c58730b85043a19bf3f 100644
--- a/browser/components/preferences/sync.inc.xhtml
+++ b/browser/components/preferences/sync.inc.xhtml
@@ -229,6 +229,10 @@
<image class="sync-engine-image sync-engine-prefs" alt=""/>
<label data-l10n-id="sync-currently-syncing-settings"/>
</html:div>
+ <html:div engine_preference="services.sync.engine.workspaces">
+ <image class="sync-engine-image sync-engine-workspaces" alt=""/>
+ <label data-l10n-id="sync-currently-syncing-workspaces"/>
+ </html:div>
</html:div>
<hbox>
<button id="syncChangeOptions"

View File

@@ -0,0 +1,24 @@
diff --git a/browser/locales/en-US/browser/preferences/preferences.ftl b/browser/locales/en-US/browser/preferences/preferences.ftl
index d197d876dac5e9024c944d33454525123775ea02..59fa0a7921f337dc01eac3364c1d01c71afc4f7a 100644
--- a/browser/locales/en-US/browser/preferences/preferences.ftl
+++ b/browser/locales/en-US/browser/preferences/preferences.ftl
@@ -925,6 +925,7 @@ sync-currently-syncing-addresses = Addresses
sync-currently-syncing-payment-methods = Payment methods
sync-currently-syncing-addons = Add-ons
sync-currently-syncing-settings = Settings
+sync-currently-syncing-workspaces = Workspaces
sync-change-options =
.label = Change
@@ -980,6 +981,11 @@ sync-engine-settings =
.tooltiptext = General, Privacy, and Security settings youve changed
.accesskey = s
+sync-engine-workspaces =
+ .label = Workspaces
+ .tooltiptext = Workspace names, icons and associated containers
+ .accesskey = w
+
## The device name controls.
sync-device-name-header = Device Name

View File

@@ -1,5 +1,5 @@
diff --git a/browser/themes/shared/preferences/preferences.css b/browser/themes/shared/preferences/preferences.css diff --git a/browser/themes/shared/preferences/preferences.css b/browser/themes/shared/preferences/preferences.css
index 8f2652f030b9990de83bbffb891f2a52731f478b..322d7e43a516f80de5964b0e25a455c8806fef1a 100644 index ddb6ea0e9ec0099f7c9513fe45f8151978137ac5..7dbb4ce25a681a1dca6c23c290a1ccebf9b8fff4 100644
--- a/browser/themes/shared/preferences/preferences.css --- a/browser/themes/shared/preferences/preferences.css
+++ b/browser/themes/shared/preferences/preferences.css +++ b/browser/themes/shared/preferences/preferences.css
@@ -33,7 +33,7 @@ @@ -33,7 +33,7 @@
@@ -11,3 +11,15 @@ index 8f2652f030b9990de83bbffb891f2a52731f478b..322d7e43a516f80de5964b0e25a455c8
} }
/* /*
@@ -911,6 +911,11 @@ dialog > .sync-engines-list + hbox {
list-style-image: url("chrome://formautofill/content/icon-credit-card-generic.svg");
}
+.sync-engine-workspaces .checkbox-icon,
+.sync-engine-workspaces.sync-engine-image {
+ list-style-image: url("chrome://devtools/skin/images/tool-storage.svg");
+}
+
.fxaMobilePromo {
margin-top: 2px !important;
}