Currently, sync on Android syncs all the engines (history, form history, bookmarks, passwords, tabs). A UI component for selecting which engines are synced should be present, probably in Settings > Accounts > [your Sync Account].
Strictly speaking, we sync everything that desktop has elected to sync, not "everything". But yeah.
STR: 1. Settings > Accounts > [Sync Account] 2. New "Syncing Options" option should be available in the Preferences. Click to bring up engine selection dialog. 3. If initial sync is in progress, all the engines should be selected. (Ideally, selecting engines during the initial sync shouldn't be possible, but that will be a follow-up) 4. Check/uncheck engines. "Ok" will pop up text confirming that preferences have been saved. Cancel will simply close the dialog. 5. Force a sync on Android, then sync on other paired device. The engines Android supports should match in selection state, and desktop-only engines should not change. Vice versa should also sync engines, and repeated back-and-forth syncing should sync as expected. (Checking syncIDs involves adding the engine on Android and syncing, and then verifying that correct engine sync behavior happens when removing the engine on Android.)
For l10n: In the "Syncing Options" menu item, we list a few sync engines that the user can select for syncing. At the moment, they are localized as the engine names (e.g., "Bookmarks") delineated by commas and terminated in an ellipsis. Specifically: <!ENTITY sync.configure.engines.summary 'Select what to sync:'> <!ENTITY sync.configure.engines.title.bookmarks 'Bookmarks'> ... <!ENTITY sync.configure.engines.summary.label '&sync.configure.engines.summary; &sync.configure.engines.title.bookmarks;, &sync.configure.engines.title.passwords;, &sync.configure.engines.title.history;, &sync.configure.engines.title.tabs;‚Ä¶'> Does this form of displaying a list lend itself to localization for all languages, or is there a better way it should be done?
Comment on attachment 661380 [details] Screenshot: Settings screen for Sync. I'm tempted to say that we don't need the list here. The words are going to be long and winding and line breaking in many locales, too. I'd ask for further input from UX, but not sure how to do that in services.
(In reply to Axel Hecht [:Pike] from comment #6) > Comment on attachment 661380 [details] > Screenshot: Settings screen for Sync. > > I'm tempted to say that we don't need the list here. The words are going to > be long and winding and line breaking in many locales, too. This sounds good to me, too. Then we only need to translate the words in the chooser list.
> I'm tempted to say that we don't need the list here. I concur, but with additional input! Firstly, I'd prefer simple phrasing like What to sync Choose which browser data to sync with other devices (This would also avoid the unpleasant capitalization.) But note: "Before Ice Cream Sandwich, we often displayed secondary text below a label to further describe it or provide instructions. Starting in Ice Cream Sandwich, we're using secondary text for status." That is, we should *not* provide additional advice, and if we use a phrase like "What to sync", rather than "Syncing Options", we almost certainly don't need it. Instead, we should *programmatically* compose a sentence-case summary of enabled engines: What to sync Nothing enabled What to sync Bookmarks, history, open tabs, add-ons I suggest we land this without any secondary text, and with the primary text as "What to sync", and file a follow-up for doing programmatic status text. Note that all of our sub-settings should avoid Title Case (see style guide) so let's stick to that here and fix "Pair a Device" in another bug. References: * Android writing style guide: <http://developer.android.com/design/style/writing.html> * Settings-specific writing style guide: <http://developer.android.com/design/patterns/settings.html#writing> Please read those; they contain wonderful advice that this patch violates, such as "don't end a label with a word like 'setting' or 'settings'. It's already implied." > I'd ask for further input from UX, but not sure how to do that in services. uxwanted keyword and CC random folks from the UX team :D
Created attachment 661962 [details] Screenshot: Settings screen for Sync.
Created attachment 661963 [details] Screenshot: Engine selection screen for Sync account.
Updated strings in screenshots - UX feedback if something else is desired.
Updated STR: 1. Settings > Accounts > [Sync Account] 2. New "What to Sync" option should be available in the Preferences. Click to bring up engine selection dialog. 3. If the first sync is in progress, all the engines should be selected. 4. Check/uncheck engines. Clicking "Ok" will pop up text confirming that selections have been saved. Cancel will simply close the dialog. 5. If there is network connectivity, a sync will start. Please verify that engines are synced correctly between devices, including repeated back-and-forth syncing. Timing: In the case of multiple clients uploading new engine preferences at the same time, we will make a best effort to resolve them. If a client finds that the server has been updated more recently than when it made its own selections, the client will discard its local changes and accept the server changes. In other words, if two offline clients both make engine selection changes, the first to sync changes to the server wins. STR: 1. Take device 1 offline. Make engine selections and click "Ok" to save them. 2. On another device connected to the same sync account, make engine selection changes and sync them to the server. 3. Take device 1 back online. Verify that since this device displays the engines that were synced to the server in step 2, not the engines locally selected. Note: This STR assumes system times are in sync; however, we do not yet account for clock skew between devices (Bug 721887).