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

Side by Side Diff: chrome/browser/prefs/pref_model_associator.cc

Issue 8568019: Introduce per-tab preferences service. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed ProfileSyncServicePreferenceTest tests Created 9 years, 1 month 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/prefs/pref_model_associator.h" 5 #include "chrome/browser/prefs/pref_model_associator.h"
6 6
7 #include "base/auto_reset.h" 7 #include "base/auto_reset.h"
8 #include "base/json/json_reader.h" 8 #include "base/json/json_reader.h"
9 #include "base/json/json_value_serializer.h" 9 #include "base/json/json_value_serializer.h"
10 #include "base/location.h" 10 #include "base/location.h"
11 #include "base/logging.h" 11 #include "base/logging.h"
12 #include "base/utf_string_conversions.h" 12 #include "base/utf_string_conversions.h"
13 #include "base/values.h" 13 #include "base/values.h"
14 #include "chrome/browser/sync/api/sync_change.h" 14 #include "chrome/browser/sync/api/sync_change.h"
15 #include "chrome/browser/sync/protocol/preference_specifics.pb.h" 15 #include "chrome/browser/sync/protocol/preference_specifics.pb.h"
16 #include "chrome/common/chrome_notification_types.h" 16 #include "chrome/common/chrome_notification_types.h"
17 #include "chrome/common/pref_names.h" 17 #include "chrome/common/pref_names.h"
18 18
19 using syncable::PREFERENCES; 19 using syncable::PREFERENCES;
20 20
21 PrefModelAssociator::PrefModelAssociator() 21 PrefModelAssociator::PrefModelAssociator()
22 : models_associated_(false), 22 : models_associated_(false),
23 processing_syncer_changes_(false), 23 processing_syncer_changes_(false),
24 pref_service_(NULL), 24 pref_service_(NULL),
25 sync_processor_(NULL) { 25 sync_processor_(NULL) {
26 }
27
28 PrefModelAssociator::PrefModelAssociator(
29 PrefService* pref_service)
30 : models_associated_(false),
31 processing_syncer_changes_(false),
32 pref_service_(pref_service),
33 sync_processor_(NULL) {
34 DCHECK(CalledOnValidThread()); 26 DCHECK(CalledOnValidThread());
35 } 27 }
36 28
37 PrefModelAssociator::~PrefModelAssociator() { 29 PrefModelAssociator::~PrefModelAssociator() {
38 DCHECK(CalledOnValidThread()); 30 DCHECK(CalledOnValidThread());
39 sync_processor_ = NULL; 31 sync_processor_ = NULL;
40 pref_service_ = NULL; 32 pref_service_ = NULL;
41 } 33 }
42 34
43 void PrefModelAssociator::InitPrefAndAssociate( 35 void PrefModelAssociator::InitPrefAndAssociate(
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 synced_preferences_.insert(pref_name); 104 synced_preferences_.insert(pref_name);
113 return; 105 return;
114 } 106 }
115 107
116 SyncError PrefModelAssociator::MergeDataAndStartSyncing( 108 SyncError PrefModelAssociator::MergeDataAndStartSyncing(
117 syncable::ModelType type, 109 syncable::ModelType type,
118 const SyncDataList& initial_sync_data, 110 const SyncDataList& initial_sync_data,
119 SyncChangeProcessor* sync_processor) { 111 SyncChangeProcessor* sync_processor) {
120 DCHECK_EQ(type, PREFERENCES); 112 DCHECK_EQ(type, PREFERENCES);
121 DCHECK(CalledOnValidThread()); 113 DCHECK(CalledOnValidThread());
114 DCHECK(pref_service_);
122 DCHECK(!sync_processor_); 115 DCHECK(!sync_processor_);
123 sync_processor_ = sync_processor; 116 sync_processor_ = sync_processor;
124 117
125 SyncChangeList new_changes; 118 SyncChangeList new_changes;
126 std::set<std::string> remaining_preferences = registered_preferences_; 119 std::set<std::string> remaining_preferences = registered_preferences_;
127 120
128 // Go through and check for all preferences we care about that sync already 121 // Go through and check for all preferences we care about that sync already
129 // knows about. 122 // knows about.
130 for (SyncDataList::const_iterator sync_iter = initial_sync_data.begin(); 123 for (SyncDataList::const_iterator sync_iter = initial_sync_data.begin();
131 sync_iter != initial_sync_data.end(); 124 sync_iter != initial_sync_data.end();
(...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after
423 return; 416 return;
424 } 417 }
425 changes.push_back(SyncChange(SyncChange::ACTION_UPDATE, sync_data)); 418 changes.push_back(SyncChange(SyncChange::ACTION_UPDATE, sync_data));
426 } 419 }
427 420
428 SyncError error = 421 SyncError error =
429 sync_processor_->ProcessSyncChanges(FROM_HERE, changes); 422 sync_processor_->ProcessSyncChanges(FROM_HERE, changes);
430 if (error.IsSet()) 423 if (error.IsSet())
431 StopSyncing(PREFERENCES); 424 StopSyncing(PREFERENCES);
432 } 425 }
426
427 void PrefModelAssociator::SetPrefService(PrefService* pref_service) {
428 DCHECK(pref_service_ == NULL);
429 pref_service_ = pref_service;
430 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698