Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6490)

Unified Diff: chrome/browser/supervised_user/supervised_user_service.cc

Issue 428143002: Sync: Add a SyncTypePreferenceProvider interface. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/supervised_user/supervised_user_service.cc
diff --git a/chrome/browser/supervised_user/supervised_user_service.cc b/chrome/browser/supervised_user/supervised_user_service.cc
index 07deebfba15aee56a31d1c919ecfbb712686accc..b3fb56c28d2db03dcd010c482aa829ad14bf29a5 100644
--- a/chrome/browser/supervised_user/supervised_user_service.cc
+++ b/chrome/browser/supervised_user/supervised_user_service.cc
@@ -323,6 +323,15 @@ void SupervisedUserService::OnExtensionUnloaded(
}
#endif // defined(ENABLE_EXTENSIONS)
+syncer::ModelTypeSet SupervisedUserService::GetRequiredSyncDataTypes() {
+ if (!ProfileIsSupervised())
Bernhard Bauer 2014/07/30 12:38:51 If we only add ourselves as a data type provider i
Marc Treib 2014/07/30 13:10:39 Alright, I'm registering/removing the provider in
+ return syncer::ModelTypeSet();
+
+ return syncer::ModelTypeSet(syncer::SESSIONS,
+ syncer::APPS,
+ syncer::EXTENSIONS);
+}
+
void SupervisedUserService::OnStateChanged() {
ProfileSyncService* service =
ProfileSyncServiceFactory::GetForProfile(profile_);
@@ -370,11 +379,9 @@ void SupervisedUserService::FinishSetupSync() {
ProfileSyncServiceFactory::GetForProfile(profile_);
DCHECK(service->sync_initialized());
+ // Sync nothing (except types which are set via GetRequiredSyncDataTypes).
bool sync_everything = false;
syncer::ModelTypeSet synced_datatypes;
- synced_datatypes.Put(syncer::SESSIONS);
- synced_datatypes.Put(syncer::APPS);
- synced_datatypes.Put(syncer::EXTENSIONS);
service->OnUserChoseDatatypes(sync_everything, synced_datatypes);
// Notify ProfileSyncService that we are done with configuration.
@@ -609,6 +616,9 @@ void SupervisedUserService::SetActive(bool active) {
SetExtensionsActive();
#endif
+ ProfileSyncService* sync_service =
+ ProfileSyncServiceFactory::GetForProfile(profile_);
+
if (active_) {
if (CommandLine::ForCurrentProcess()->HasSwitch(
switches::kPermissionRequestApiUrl)) {
@@ -635,6 +645,8 @@ void SupervisedUserService::SetActive(bool active) {
base::Bind(&SupervisedUserService::UpdateManualURLs,
base::Unretained(this)));
+ sync_service->AddDataTypeProvider(this);
+
// Initialize the filter.
OnDefaultFilteringBehaviorChanged();
UpdateSiteLists();
@@ -654,11 +666,9 @@ void SupervisedUserService::SetActive(bool active) {
pref_change_registrar_.Remove(prefs::kSupervisedUserManualHosts);
pref_change_registrar_.Remove(prefs::kSupervisedUserManualURLs);
- if (waiting_for_sync_initialization_) {
- ProfileSyncService* sync_service =
- ProfileSyncServiceFactory::GetForProfile(profile_);
+ sync_service->RemoveDataTypeProvider(this);
+ if (waiting_for_sync_initialization_)
sync_service->RemoveObserver(this);
- }
#if !defined(OS_ANDROID)
// TODO(bauerb): Get rid of the platform-specific #ifdef here.

Powered by Google App Engine
This is Rietveld 408576698