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

Unified Diff: chrome/browser/sync/profile_sync_service.cc

Issue 428143002: Sync: Add a SyncTypePreferenceProvider interface. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rename fix Created 6 years, 4 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
« no previous file with comments | « chrome/browser/sync/profile_sync_service.h ('k') | chrome/browser/sync/sync_type_preference_provider.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/sync/profile_sync_service.cc
diff --git a/chrome/browser/sync/profile_sync_service.cc b/chrome/browser/sync/profile_sync_service.cc
index 67c8138f21fbb5b9371a6d5b4af70d16af1cbca9..c7672b9d554df0b732e371db2263f9a7fc108ddb 100644
--- a/chrome/browser/sync/profile_sync_service.cc
+++ b/chrome/browser/sync/profile_sync_service.cc
@@ -6,8 +6,7 @@
#include <cstddef>
#include <map>
-#include <set>
-#include <utility>
+#include <vector>
#include "base/basictypes.h"
#include "base/bind.h"
@@ -55,6 +54,7 @@
#include "chrome/browser/sync/sessions/sessions_sync_manager.h"
#include "chrome/browser/sync/supervised_user_signin_manager_wrapper.h"
#include "chrome/browser/sync/sync_error_controller.h"
+#include "chrome/browser/sync/sync_type_preference_provider.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_list.h"
#include "chrome/browser/ui/browser_window.h"
@@ -1937,7 +1937,8 @@ void ProfileSyncService::ConfigureDataTypeManager() {
types = syncer::BackupTypes();
reason = syncer::CONFIGURE_REASON_BACKUP_ROLLBACK;
} else {
- types = GetPreferredDirectoryDataTypes();
+ types = Union(GetPreferredDirectoryDataTypes(),
Nicolas Zea 2014/08/07 17:16:33 I think it might make more sense to put the GetDat
Marc Treib 2014/08/08 13:03:59 Done.
+ GetDataTypesFromPreferenceProviders());
if (!HasSyncSetupCompleted()) {
reason = syncer::CONFIGURE_REASON_NEW_CLIENT;
} else if (restart) {
@@ -2296,6 +2297,25 @@ void ProfileSyncService::RemoveTypeDebugInfoObserver(
}
}
+void ProfileSyncService::AddPreferenceProvider(
+ SyncTypePreferenceProvider* provider) {
+ DCHECK(!HasPreferenceProvider(provider))
+ << "Providers may only be added once!";
+ preference_providers_.insert(provider);
+}
+
+void ProfileSyncService::RemovePreferenceProvider(
+ SyncTypePreferenceProvider* provider) {
+ DCHECK(HasPreferenceProvider(provider))
+ << "Only providers that have been added before can be removed!";
+ preference_providers_.erase(provider);
+}
+
+bool ProfileSyncService::HasPreferenceProvider(
+ SyncTypePreferenceProvider* provider) const {
+ return preference_providers_.count(provider) > 0;
+}
+
namespace {
class GetAllNodesRequestHelper
@@ -2484,6 +2504,17 @@ void ProfileSyncService::ReconfigureDatatypeManager() {
}
}
+syncer::ModelTypeSet ProfileSyncService::GetDataTypesFromPreferenceProviders() {
+ syncer::ModelTypeSet types;
+ for (std::set<SyncTypePreferenceProvider*>::iterator it =
+ preference_providers_.begin();
+ it != preference_providers_.end();
+ ++it) {
+ types.PutAll((*it)->GetPreferredDataTypes());
+ }
+ return types;
+}
+
const FailedDataTypesHandler& ProfileSyncService::failed_data_types_handler()
const {
return failed_data_types_handler_;
« no previous file with comments | « chrome/browser/sync/profile_sync_service.h ('k') | chrome/browser/sync/sync_type_preference_provider.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698