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

Side by Side Diff: chrome/browser/sync/invalidations/invalidator_storage.cc

Issue 12079097: Introduce PrefRegistrySyncable, simplifying PrefServiceSyncable. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add to PrefRegistrySyncable and PrefServiceSyncable to let sync know of pre-registered prefs. Created 7 years, 10 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 #include "chrome/browser/sync/invalidations/invalidator_storage.h" 5 #include "chrome/browser/sync/invalidations/invalidator_storage.h"
6 6
7 #include "base/base64.h" 7 #include "base/base64.h"
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/location.h" 10 #include "base/location.h"
11 #include "base/logging.h" 11 #include "base/logging.h"
12 #include "base/metrics/histogram.h" 12 #include "base/metrics/histogram.h"
13 #include "base/string_number_conversions.h" 13 #include "base/string_number_conversions.h"
14 #include "base/task_runner.h" 14 #include "base/task_runner.h"
15 #include "base/values.h" 15 #include "base/values.h"
16 #include "chrome/browser/prefs/pref_registry_syncable.h"
16 #include "chrome/browser/prefs/pref_service.h" 17 #include "chrome/browser/prefs/pref_service.h"
17 #include "chrome/common/pref_names.h" 18 #include "chrome/common/pref_names.h"
18 #include "sync/internal_api/public/base/model_type.h" 19 #include "sync/internal_api/public/base/model_type.h"
19 20
20 using syncer::InvalidationStateMap; 21 using syncer::InvalidationStateMap;
21 22
22 namespace browser_sync { 23 namespace browser_sync {
23 24
24 namespace { 25 namespace {
25 26
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 value->SetString(kPayloadKey, state.payload); 87 value->SetString(kPayloadKey, state.payload);
87 if (state.current.IsValid()) 88 if (state.current.IsValid())
88 value->Set(kCurrentAckHandleKey, state.current.ToValue().release()); 89 value->Set(kCurrentAckHandleKey, state.current.ToValue().release());
89 if (state.expected.IsValid()) 90 if (state.expected.IsValid())
90 value->Set(kExpectedAckHandleKey, state.expected.ToValue().release()); 91 value->Set(kExpectedAckHandleKey, state.expected.ToValue().release());
91 return value; 92 return value;
92 } 93 }
93 94
94 } // namespace 95 } // namespace
95 96
96 InvalidatorStorage::InvalidatorStorage(PrefServiceSyncable* pref_service) 97 InvalidatorStorage::InvalidatorStorage(PrefService* pref_service,
98 PrefRegistrySyncable* registry)
97 : pref_service_(pref_service) { 99 : pref_service_(pref_service) {
98 // TODO(tim): Create a Mock instead of maintaining the if(!pref_service_) case 100 // TODO(tim): Create a Mock instead of maintaining the if(!pref_service_) case
99 // throughout this file. This is a problem now due to lack of injection at 101 // throughout this file. This is a problem now due to lack of injection at
100 // ProfileSyncService. Bug 130176. 102 // ProfileSyncService. Bug 130176.
101 if (pref_service_) { 103 if (registry) {
Mattias Nissler (ping if slow) 2013/02/06 17:53:33 TODO: Move to registration function.
Jói 2013/02/07 14:52:32 Done.
102 pref_service_->RegisterListPref(prefs::kInvalidatorMaxInvalidationVersions, 104 registry->RegisterListPref(prefs::kInvalidatorMaxInvalidationVersions,
103 PrefServiceSyncable::UNSYNCABLE_PREF); 105 PrefRegistrySyncable::UNSYNCABLE_PREF);
104 pref_service_->RegisterStringPref(prefs::kInvalidatorInvalidationState, 106 registry->RegisterStringPref(prefs::kInvalidatorInvalidationState,
105 std::string(), 107 std::string(),
106 PrefServiceSyncable::UNSYNCABLE_PREF); 108 PrefRegistrySyncable::UNSYNCABLE_PREF);
107 109
108 MigrateMaxInvalidationVersionsPref(); 110 MigrateMaxInvalidationVersionsPref(registry);
109 } 111 }
110 } 112 }
111 113
112 InvalidatorStorage::~InvalidatorStorage() { 114 InvalidatorStorage::~InvalidatorStorage() {
113 } 115 }
114 116
115 InvalidationStateMap InvalidatorStorage::GetAllInvalidationStates() const { 117 InvalidationStateMap InvalidatorStorage::GetAllInvalidationStates() const {
116 DCHECK(thread_checker_.CalledOnValidThread()); 118 DCHECK(thread_checker_.CalledOnValidThread());
117 InvalidationStateMap state_map; 119 InvalidationStateMap state_map;
118 if (!pref_service_) { 120 if (!pref_service_) {
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 void InvalidatorStorage::SerializeToList( 188 void InvalidatorStorage::SerializeToList(
187 const InvalidationStateMap& state_map, 189 const InvalidationStateMap& state_map,
188 base::ListValue* state_map_list) { 190 base::ListValue* state_map_list) {
189 for (InvalidationStateMap::const_iterator it = state_map.begin(); 191 for (InvalidationStateMap::const_iterator it = state_map.begin();
190 it != state_map.end(); ++it) { 192 it != state_map.end(); ++it) {
191 state_map_list->Append(ObjectIdAndStateToValue(it->first, it->second)); 193 state_map_list->Append(ObjectIdAndStateToValue(it->first, it->second));
192 } 194 }
193 } 195 }
194 196
195 // Legacy migration code. 197 // Legacy migration code.
196 void InvalidatorStorage::MigrateMaxInvalidationVersionsPref() { 198 void InvalidatorStorage::MigrateMaxInvalidationVersionsPref(
197 pref_service_->RegisterDictionaryPref(prefs::kSyncMaxInvalidationVersions, 199 PrefRegistrySyncable* registry) {
198 PrefServiceSyncable::UNSYNCABLE_PREF); 200 registry->RegisterDictionaryPref(prefs::kSyncMaxInvalidationVersions,
201 PrefRegistrySyncable::UNSYNCABLE_PREF);
199 const base::DictionaryValue* max_versions_dict = 202 const base::DictionaryValue* max_versions_dict =
200 pref_service_->GetDictionary(prefs::kSyncMaxInvalidationVersions); 203 pref_service_->GetDictionary(prefs::kSyncMaxInvalidationVersions);
201 CHECK(max_versions_dict); 204 CHECK(max_versions_dict);
202 if (!max_versions_dict->empty()) { 205 if (!max_versions_dict->empty()) {
203 InvalidationStateMap state_map; 206 InvalidationStateMap state_map;
204 DeserializeMap(max_versions_dict, &state_map); 207 DeserializeMap(max_versions_dict, &state_map);
205 base::ListValue state_map_list; 208 base::ListValue state_map_list;
206 SerializeToList(state_map, &state_map_list); 209 SerializeToList(state_map, &state_map_list);
207 pref_service_->Set(prefs::kInvalidatorMaxInvalidationVersions, 210 pref_service_->Set(prefs::kInvalidatorMaxInvalidationVersions,
208 state_map_list); 211 state_map_list);
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
315 return; 318 return;
316 it->second.current = ack_handle; 319 it->second.current = ack_handle;
317 320
318 base::ListValue state_map_list; 321 base::ListValue state_map_list;
319 SerializeToList(state_map, &state_map_list); 322 SerializeToList(state_map, &state_map_list);
320 pref_service_->Set(prefs::kInvalidatorMaxInvalidationVersions, 323 pref_service_->Set(prefs::kInvalidatorMaxInvalidationVersions,
321 state_map_list); 324 state_map_list);
322 } 325 }
323 326
324 } // namespace browser_sync 327 } // namespace browser_sync
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698