diff options
author | zea@chromium.org <zea@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-27 00:26:55 +0000 |
---|---|---|
committer | zea@chromium.org <zea@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-27 00:26:55 +0000 |
commit | fdf4e2506a6dc6fc6d102e72c58511aa1bcfd9ac (patch) | |
tree | e0d26487de15eebc1e602318d1ccf84e1e07c8bd /sync/internal_api | |
parent | c423cb934ddb53672b4d1b15ede1bece0a715fee (diff) | |
download | chromium_src-fdf4e2506a6dc6fc6d102e72c58511aa1bcfd9ac.zip chromium_src-fdf4e2506a6dc6fc6d102e72c58511aa1bcfd9ac.tar.gz chromium_src-fdf4e2506a6dc6fc6d102e72c58511aa1bcfd9ac.tar.bz2 |
[Sync] Add support for automatic enabling of syncing tab favicons.
We add the sync_tab_favicons field to the nigori node and add support
for automatically enabling the feature when we receive a new nigori node.
Once we do enable the feature, the browser will only start writing favicons
after the next restart.
BUG=92728
TEST=using python testserver to enable sync tab favicons, then restarting.
Review URL: http://codereview.chromium.org/10235013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@134184 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'sync/internal_api')
-rw-r--r-- | sync/internal_api/sync_manager.cc | 14 | ||||
-rw-r--r-- | sync/internal_api/sync_manager.h | 7 |
2 files changed, 14 insertions, 7 deletions
diff --git a/sync/internal_api/sync_manager.cc b/sync/internal_api/sync_manager.cc index d7d8c8a..f33fefa 100644 --- a/sync/internal_api/sync_manager.cc +++ b/sync/internal_api/sync_manager.cc @@ -52,6 +52,7 @@ #include "sync/syncable/model_type_payload_map.h" #include "sync/syncable/syncable.h" #include "sync/util/cryptographer.h" +#include "sync/util/experiments.h" #include "sync/util/get_session_name.h" #include "sync/util/time.h" @@ -2478,7 +2479,7 @@ syncable::ModelTypeSet SyncManager::GetEncryptedDataTypesForTest() const { return GetEncryptedTypes(&trans); } -bool SyncManager::ReceivedExperimentalTypes(syncable::ModelTypeSet* to_add) +bool SyncManager::ReceivedExperiment(browser_sync::Experiments* experiments) const { ReadTransaction trans(FROM_HERE, GetUserShare()); ReadNode node(&trans); @@ -2486,11 +2487,16 @@ bool SyncManager::ReceivedExperimentalTypes(syncable::ModelTypeSet* to_add) DVLOG(1) << "Couldn't find Nigori node."; return false; } + bool found_experiment = false; if (node.GetNigoriSpecifics().sync_tabs()) { - to_add->Put(syncable::SESSIONS); - return true; + experiments->sync_tabs = true; + found_experiment = true; + } + if (node.GetNigoriSpecifics().sync_tab_favicons()) { + experiments->sync_tab_favicons = true; + found_experiment = true; } - return false; + return found_experiment; } bool SyncManager::HasUnsyncedItems() const { diff --git a/sync/internal_api/sync_manager.h b/sync/internal_api/sync_manager.h index 8288164..cfc05a0 100644 --- a/sync/internal_api/sync_manager.h +++ b/sync/internal_api/sync_manager.h @@ -25,6 +25,7 @@ namespace browser_sync { class Encryptor; +struct Experiments; class ExtensionsActivityMonitor; class JsBackend; class JsEventHandler; @@ -591,10 +592,10 @@ class SyncManager { // Note: opens a transaction. May be called from any thread. syncable::ModelTypeSet GetEncryptedDataTypesForTest() const; - // Reads the nigori node to determine if any experimental types should be - // enabled. + // Reads the nigori node to determine if any experimental features should + // be enabled. // Note: opens a transaction. May be called on any thread. - bool ReceivedExperimentalTypes(syncable::ModelTypeSet* to_add) const; + bool ReceivedExperiment(browser_sync::Experiments* experiments) const; // Uses a read-only transaction to determine if the directory being synced has // any remaining unsynced items. May be called on any thread. |