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

Side by Side Diff: chrome/browser/sync/sync_prefs.cc

Issue 8334030: Merge search engines sync data type with Preferences. Sync the default search provider. Add some ... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Merge to TOT and fixed additional conflicts from rsimha. 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/sync/sync_prefs.h" 5 #include "chrome/browser/sync/sync_prefs.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/string_number_conversions.h" 8 #include "base/string_number_conversions.h"
9 #include "base/values.h" 9 #include "base/values.h"
10 #include "build/build_config.h" 10 #include "build/build_config.h"
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 const syncable::ModelTypeSet& registered_types) const { 127 const syncable::ModelTypeSet& registered_types) const {
128 DCHECK(non_thread_safe_.CalledOnValidThread()); 128 DCHECK(non_thread_safe_.CalledOnValidThread());
129 if (!pref_service_) { 129 if (!pref_service_) {
130 return syncable::ModelTypeSet(); 130 return syncable::ModelTypeSet();
131 } 131 }
132 132
133 if (pref_service_->GetBoolean(prefs::kSyncKeepEverythingSynced)) { 133 if (pref_service_->GetBoolean(prefs::kSyncKeepEverythingSynced)) {
134 return registered_types; 134 return registered_types;
135 } 135 }
136 136
137 // Remove autofill_profile since it's controlled by autofill (see 137 // Remove autofill_profile since it's controlled by autofill, and
138 // code below). 138 // search_engines since it's controlled by preferences (see code below).
139 syncable::ModelTypeSet user_selectable_types(registered_types); 139 syncable::ModelTypeSet user_selectable_types(registered_types);
140 DCHECK_EQ(user_selectable_types.count(syncable::NIGORI), 0u); 140 DCHECK_EQ(user_selectable_types.count(syncable::NIGORI), 0u);
141 user_selectable_types.erase(syncable::AUTOFILL_PROFILE); 141 user_selectable_types.erase(syncable::AUTOFILL_PROFILE);
142 user_selectable_types.erase(syncable::SEARCH_ENGINES);
142 143
143 // Remove app_notifications since it's controlled by apps (see 144 // Remove app_notifications since it's controlled by apps (see
144 // code below). 145 // code below).
145 // TODO(akalin): Centralize notion of all user selectable data types. 146 // TODO(akalin): Centralize notion of all user selectable data types.
146 user_selectable_types.erase(syncable::APP_NOTIFICATIONS); 147 user_selectable_types.erase(syncable::APP_NOTIFICATIONS);
147 148
148 syncable::ModelTypeSet preferred_types; 149 syncable::ModelTypeSet preferred_types;
149 150
150 for (syncable::ModelTypeSet::const_iterator it = 151 for (syncable::ModelTypeSet::const_iterator it =
151 user_selectable_types.begin(); 152 user_selectable_types.begin();
152 it != user_selectable_types.end(); ++it) { 153 it != user_selectable_types.end(); ++it) {
153 if (GetDataTypePreferred(*it)) { 154 if (GetDataTypePreferred(*it)) {
154 preferred_types.insert(*it); 155 preferred_types.insert(*it);
155 } 156 }
156 } 157 }
157 158
158 // Set autofill_profile to the same enabled/disabled state as 159 // Group the enabled/disabled state of autofill_profile with autofill, and
159 // autofill (since only autofill is shown on the UI). 160 // search_engines with preferences (since only autofill and preferences are
161 // shown on the UI).
160 if (registered_types.count(syncable::AUTOFILL) && 162 if (registered_types.count(syncable::AUTOFILL) &&
161 registered_types.count(syncable::AUTOFILL_PROFILE) && 163 registered_types.count(syncable::AUTOFILL_PROFILE) &&
162 GetDataTypePreferred(syncable::AUTOFILL)) { 164 GetDataTypePreferred(syncable::AUTOFILL)) {
163 preferred_types.insert(syncable::AUTOFILL_PROFILE); 165 preferred_types.insert(syncable::AUTOFILL_PROFILE);
164 } 166 }
167 if (registered_types.count(syncable::PREFERENCES) &&
168 registered_types.count(syncable::SEARCH_ENGINES) &&
169 GetDataTypePreferred(syncable::PREFERENCES)) {
170 preferred_types.insert(syncable::SEARCH_ENGINES);
171 }
165 172
166 // Set app_notifications to the same enabled/disabled state as 173 // Set app_notifications to the same enabled/disabled state as
167 // apps (since only apps is shown on the UI). 174 // apps (since only apps is shown on the UI).
168 if (registered_types.count(syncable::APPS) && 175 if (registered_types.count(syncable::APPS) &&
169 registered_types.count(syncable::APP_NOTIFICATIONS) && 176 registered_types.count(syncable::APP_NOTIFICATIONS) &&
170 GetDataTypePreferred(syncable::APPS)) { 177 GetDataTypePreferred(syncable::APPS)) {
171 preferred_types.insert(syncable::APP_NOTIFICATIONS); 178 preferred_types.insert(syncable::APP_NOTIFICATIONS);
172 } 179 }
173 180
174 return preferred_types; 181 return preferred_types;
(...skipping 20 matching lines...) Expand all
195 // Set app_notifications to the same enabled/disabled state as 202 // Set app_notifications to the same enabled/disabled state as
196 // apps (since only apps is shown in the UI). 203 // apps (since only apps is shown in the UI).
197 if (registered_types.count(syncable::APPS) && 204 if (registered_types.count(syncable::APPS) &&
198 registered_types.count(syncable::APP_NOTIFICATIONS)) { 205 registered_types.count(syncable::APP_NOTIFICATIONS)) {
199 if (preferred_types_with_dependents.count(syncable::APPS)) { 206 if (preferred_types_with_dependents.count(syncable::APPS)) {
200 preferred_types_with_dependents.insert(syncable::APP_NOTIFICATIONS); 207 preferred_types_with_dependents.insert(syncable::APP_NOTIFICATIONS);
201 } else { 208 } else {
202 preferred_types_with_dependents.erase(syncable::APP_NOTIFICATIONS); 209 preferred_types_with_dependents.erase(syncable::APP_NOTIFICATIONS);
203 } 210 }
204 } 211 }
212 // Set search_engines to the same enabled/disabled state as
213 // preferences (since only preferences is shown in the UI).
214 if (registered_types.count(syncable::PREFERENCES) &&
215 registered_types.count(syncable::SEARCH_ENGINES)) {
216 if (preferred_types_with_dependents.count(syncable::PREFERENCES)) {
217 preferred_types_with_dependents.insert(syncable::SEARCH_ENGINES);
218 } else {
219 preferred_types_with_dependents.erase(syncable::SEARCH_ENGINES);
220 }
221 }
205 222
206 for (syncable::ModelTypeSet::const_iterator it = registered_types.begin(); 223 for (syncable::ModelTypeSet::const_iterator it = registered_types.begin();
207 it != registered_types.end(); ++it) { 224 it != registered_types.end(); ++it) {
208 SetDataTypePreferred(*it, preferred_types_with_dependents.count(*it) > 0); 225 SetDataTypePreferred(*it, preferred_types_with_dependents.count(*it) > 0);
209 } 226 }
210 } 227 }
211 228
212 bool SyncPrefs::IsManaged() const { 229 bool SyncPrefs::IsManaged() const {
213 DCHECK(non_thread_safe_.CalledOnValidThread()); 230 DCHECK(non_thread_safe_.CalledOnValidThread());
214 return pref_service_ && pref_service_->GetBoolean(prefs::kSyncManaged); 231 return pref_service_ && pref_service_->GetBoolean(prefs::kSyncManaged);
(...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after
506 const char* pref_name = GetPrefNameForDataType(type); 523 const char* pref_name = GetPrefNameForDataType(type);
507 if (!pref_name) { 524 if (!pref_name) {
508 NOTREACHED(); 525 NOTREACHED();
509 return; 526 return;
510 } 527 }
511 pref_service_->SetBoolean(pref_name, is_preferred); 528 pref_service_->SetBoolean(pref_name, is_preferred);
512 pref_service_->ScheduleSavePersistentPrefs(); 529 pref_service_->ScheduleSavePersistentPrefs();
513 } 530 }
514 531
515 } // namespace browser_sync 532 } // namespace browser_sync
OLDNEW
« no previous file with comments | « chrome/browser/sync/resources/configure.html ('k') | chrome/browser/sync/sync_prefs_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698