| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CHROME_BROWSER_SYNC_SYNC_PREFS_H_ | 5 #ifndef CHROME_BROWSER_SYNC_SYNC_PREFS_H_ |
| 6 #define CHROME_BROWSER_SYNC_SYNC_PREFS_H_ | 6 #define CHROME_BROWSER_SYNC_SYNC_PREFS_H_ |
| 7 | 7 |
| 8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
| 9 #include "base/compiler_specific.h" | 9 #include "base/compiler_specific.h" |
| 10 #include "base/memory/weak_ptr.h" | 10 #include "base/memory/weak_ptr.h" |
| 11 #include "base/observer_list.h" | 11 #include "base/observer_list.h" |
| 12 #include "base/prefs/pref_member.h" | 12 #include "base/prefs/pref_member.h" |
| 13 #include "base/threading/non_thread_safe.h" | 13 #include "base/threading/non_thread_safe.h" |
| 14 #include "base/time.h" | 14 #include "base/time.h" |
| 15 #include "sync/internal_api/public/base/model_type.h" | 15 #include "sync/internal_api/public/base/model_type.h" |
| 16 #include "sync/notifier/invalidation_state_tracker.h" | 16 #include "sync/notifier/invalidation_state_tracker.h" |
| 17 | 17 |
| 18 class PrefRegistrySyncable; | |
| 19 class PrefService; | 18 class PrefService; |
| 20 class ProfileIOData; | 19 class ProfileIOData; |
| 21 | 20 |
| 21 namespace user_prefs { |
| 22 class PrefRegistrySyncable; |
| 23 } |
| 24 |
| 22 namespace browser_sync { | 25 namespace browser_sync { |
| 23 | 26 |
| 24 class SyncPrefObserver { | 27 class SyncPrefObserver { |
| 25 public: | 28 public: |
| 26 // Called whenever the pref that controls whether sync is managed | 29 // Called whenever the pref that controls whether sync is managed |
| 27 // changes. | 30 // changes. |
| 28 virtual void OnSyncManagedPrefChange(bool is_sync_managed) = 0; | 31 virtual void OnSyncManagedPrefChange(bool is_sync_managed) = 0; |
| 29 | 32 |
| 30 protected: | 33 protected: |
| 31 virtual ~SyncPrefObserver(); | 34 virtual ~SyncPrefObserver(); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 47 class SyncPrefs : NON_EXPORTED_BASE(public base::NonThreadSafe), | 50 class SyncPrefs : NON_EXPORTED_BASE(public base::NonThreadSafe), |
| 48 public base::SupportsWeakPtr<SyncPrefs> { | 51 public base::SupportsWeakPtr<SyncPrefs> { |
| 49 public: | 52 public: |
| 50 // |pref_service| may be NULL (for unit tests), but in that case no | 53 // |pref_service| may be NULL (for unit tests), but in that case no |
| 51 // setter methods should be called. Does not take ownership of | 54 // setter methods should be called. Does not take ownership of |
| 52 // |pref_service|. | 55 // |pref_service|. |
| 53 explicit SyncPrefs(PrefService* pref_service); | 56 explicit SyncPrefs(PrefService* pref_service); |
| 54 | 57 |
| 55 virtual ~SyncPrefs(); | 58 virtual ~SyncPrefs(); |
| 56 | 59 |
| 57 static void RegisterUserPrefs(PrefRegistrySyncable* registry); | 60 static void RegisterUserPrefs(user_prefs::PrefRegistrySyncable* registry); |
| 58 | 61 |
| 59 // Checks if sync is enabled for the profile that owns |io_data|. This must | 62 // Checks if sync is enabled for the profile that owns |io_data|. This must |
| 60 // be invoked on the IO thread, and can be used to check if sync is enabled | 63 // be invoked on the IO thread, and can be used to check if sync is enabled |
| 61 // on that thread. | 64 // on that thread. |
| 62 static bool IsSyncAccessibleOnIOThread(ProfileIOData* io_data); | 65 static bool IsSyncAccessibleOnIOThread(ProfileIOData* io_data); |
| 63 | 66 |
| 64 void AddSyncPrefObserver(SyncPrefObserver* sync_pref_observer); | 67 void AddSyncPrefObserver(SyncPrefObserver* sync_pref_observer); |
| 65 void RemoveSyncPrefObserver(SyncPrefObserver* sync_pref_observer); | 68 void RemoveSyncPrefObserver(SyncPrefObserver* sync_pref_observer); |
| 66 | 69 |
| 67 // Clears important sync preferences. | 70 // Clears important sync preferences. |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 129 | 132 |
| 130 // For testing. | 133 // For testing. |
| 131 | 134 |
| 132 void SetManagedForTest(bool is_managed); | 135 void SetManagedForTest(bool is_managed); |
| 133 syncer::ModelTypeSet GetAcknowledgeSyncedTypesForTest() const; | 136 syncer::ModelTypeSet GetAcknowledgeSyncedTypesForTest() const; |
| 134 | 137 |
| 135 private: | 138 private: |
| 136 void RegisterPrefGroups(); | 139 void RegisterPrefGroups(); |
| 137 | 140 |
| 138 static void RegisterDataTypePreferredPref( | 141 static void RegisterDataTypePreferredPref( |
| 139 PrefRegistrySyncable* prefs, syncer::ModelType type, bool is_preferred); | 142 user_prefs::PrefRegistrySyncable* prefs, |
| 143 syncer::ModelType type, |
| 144 bool is_preferred); |
| 140 bool GetDataTypePreferred(syncer::ModelType type) const; | 145 bool GetDataTypePreferred(syncer::ModelType type) const; |
| 141 void SetDataTypePreferred(syncer::ModelType type, bool is_preferred); | 146 void SetDataTypePreferred(syncer::ModelType type, bool is_preferred); |
| 142 | 147 |
| 143 // Returns a ModelTypeSet based on |types| expanded to include pref groups | 148 // Returns a ModelTypeSet based on |types| expanded to include pref groups |
| 144 // (see |pref_groups_|), but as a subset of |registered_types|. | 149 // (see |pref_groups_|), but as a subset of |registered_types|. |
| 145 syncer::ModelTypeSet ResolvePrefGroups( | 150 syncer::ModelTypeSet ResolvePrefGroups( |
| 146 syncer::ModelTypeSet registered_types, | 151 syncer::ModelTypeSet registered_types, |
| 147 syncer::ModelTypeSet types) const; | 152 syncer::ModelTypeSet types) const; |
| 148 | 153 |
| 149 void OnSyncManagedPrefChanged(); | 154 void OnSyncManagedPrefChanged(); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 166 // etc. | 171 // etc. |
| 167 typedef std::map<syncer::ModelType, syncer::ModelTypeSet> PrefGroupsMap; | 172 typedef std::map<syncer::ModelType, syncer::ModelTypeSet> PrefGroupsMap; |
| 168 PrefGroupsMap pref_groups_; | 173 PrefGroupsMap pref_groups_; |
| 169 | 174 |
| 170 DISALLOW_COPY_AND_ASSIGN(SyncPrefs); | 175 DISALLOW_COPY_AND_ASSIGN(SyncPrefs); |
| 171 }; | 176 }; |
| 172 | 177 |
| 173 } // namespace browser_sync | 178 } // namespace browser_sync |
| 174 | 179 |
| 175 #endif // CHROME_BROWSER_SYNC_SYNC_PREFS_H_ | 180 #endif // CHROME_BROWSER_SYNC_SYNC_PREFS_H_ |
| OLD | NEW |