summaryrefslogtreecommitdiffstats
path: root/sync/internal_api
diff options
context:
space:
mode:
authorzea@chromium.org <zea@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-04-27 00:26:55 +0000
committerzea@chromium.org <zea@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-04-27 00:26:55 +0000
commitfdf4e2506a6dc6fc6d102e72c58511aa1bcfd9ac (patch)
treee0d26487de15eebc1e602318d1ccf84e1e07c8bd /sync/internal_api
parentc423cb934ddb53672b4d1b15ede1bece0a715fee (diff)
downloadchromium_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.cc14
-rw-r--r--sync/internal_api/sync_manager.h7
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.