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

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

Issue 9395058: [Sync] Remove SyncableServiceAdapter. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address comments Created 8 years, 9 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 "base/command_line.h" 5 #include "base/command_line.h"
6 #include "build/build_config.h" 6 #include "build/build_config.h"
7 #include "chrome/browser/extensions/app_notification_manager.h" 7 #include "chrome/browser/extensions/app_notification_manager.h"
8 #include "chrome/browser/extensions/extension_service.h" 8 #include "chrome/browser/extensions/extension_service.h"
9 #include "chrome/browser/extensions/settings/settings_frontend.h" 9 #include "chrome/browser/extensions/settings/settings_frontend.h"
10 #include "chrome/browser/prefs/pref_model_associator.h" 10 #include "chrome/browser/prefs/pref_model_associator.h"
11 #include "chrome/browser/profiles/profile.h" 11 #include "chrome/browser/profiles/profile.h"
12 #include "chrome/browser/search_engines/template_url_service.h" 12 #include "chrome/browser/search_engines/template_url_service.h"
13 #include "chrome/browser/search_engines/template_url_service_factory.h" 13 #include "chrome/browser/search_engines/template_url_service_factory.h"
14 #include "chrome/browser/signin/signin_manager.h" 14 #include "chrome/browser/signin/signin_manager.h"
15 #include "chrome/browser/signin/signin_manager_factory.h" 15 #include "chrome/browser/signin/signin_manager_factory.h"
16 #include "chrome/browser/sync/api/syncable_service.h" 16 #include "chrome/browser/sync/api/syncable_service.h"
17 #include "chrome/browser/sync/glue/app_notification_data_type_controller.h" 17 #include "chrome/browser/sync/glue/app_notification_data_type_controller.h"
18 #include "chrome/browser/sync/glue/autofill_data_type_controller.h" 18 #include "chrome/browser/sync/glue/autofill_data_type_controller.h"
19 #include "chrome/browser/sync/glue/autofill_profile_data_type_controller.h" 19 #include "chrome/browser/sync/glue/autofill_profile_data_type_controller.h"
20 #include "chrome/browser/sync/glue/bookmark_change_processor.h" 20 #include "chrome/browser/sync/glue/bookmark_change_processor.h"
21 #include "chrome/browser/sync/glue/bookmark_data_type_controller.h" 21 #include "chrome/browser/sync/glue/bookmark_data_type_controller.h"
22 #include "chrome/browser/sync/glue/bookmark_model_associator.h" 22 #include "chrome/browser/sync/glue/bookmark_model_associator.h"
23 #include "chrome/browser/sync/glue/data_type_manager_impl.h" 23 #include "chrome/browser/sync/glue/data_type_manager_impl.h"
24 #include "chrome/browser/sync/glue/extension_data_type_controller.h" 24 #include "chrome/browser/sync/glue/extension_data_type_controller.h"
25 #include "chrome/browser/sync/glue/extension_setting_data_type_controller.h" 25 #include "chrome/browser/sync/glue/extension_setting_data_type_controller.h"
26 #include "chrome/browser/sync/glue/generic_change_processor.h" 26 #include "chrome/browser/sync/glue/generic_change_processor.h"
27 #include "chrome/browser/sync/glue/password_change_processor.h" 27 #include "chrome/browser/sync/glue/password_change_processor.h"
28 #include "chrome/browser/sync/glue/password_data_type_controller.h" 28 #include "chrome/browser/sync/glue/password_data_type_controller.h"
29 #include "chrome/browser/sync/glue/password_model_associator.h" 29 #include "chrome/browser/sync/glue/password_model_associator.h"
30 #include "chrome/browser/sync/glue/preference_data_type_controller.h"
31 #include "chrome/browser/sync/glue/search_engine_data_type_controller.h" 30 #include "chrome/browser/sync/glue/search_engine_data_type_controller.h"
32 #include "chrome/browser/sync/glue/session_change_processor.h" 31 #include "chrome/browser/sync/glue/session_change_processor.h"
33 #include "chrome/browser/sync/glue/session_data_type_controller.h" 32 #include "chrome/browser/sync/glue/session_data_type_controller.h"
34 #include "chrome/browser/sync/glue/session_model_associator.h" 33 #include "chrome/browser/sync/glue/session_model_associator.h"
35 #include "chrome/browser/sync/glue/shared_change_processor.h" 34 #include "chrome/browser/sync/glue/shared_change_processor.h"
36 #include "chrome/browser/sync/glue/sync_backend_host.h" 35 #include "chrome/browser/sync/glue/sync_backend_host.h"
37 #include "chrome/browser/sync/glue/syncable_service_adapter.h"
38 #include "chrome/browser/sync/glue/theme_change_processor.h" 36 #include "chrome/browser/sync/glue/theme_change_processor.h"
39 #include "chrome/browser/sync/glue/theme_data_type_controller.h" 37 #include "chrome/browser/sync/glue/theme_data_type_controller.h"
40 #include "chrome/browser/sync/glue/theme_model_associator.h" 38 #include "chrome/browser/sync/glue/theme_model_associator.h"
41 #include "chrome/browser/sync/glue/typed_url_change_processor.h" 39 #include "chrome/browser/sync/glue/typed_url_change_processor.h"
42 #include "chrome/browser/sync/glue/typed_url_data_type_controller.h" 40 #include "chrome/browser/sync/glue/typed_url_data_type_controller.h"
43 #include "chrome/browser/sync/glue/typed_url_model_associator.h" 41 #include "chrome/browser/sync/glue/typed_url_model_associator.h"
42 #include "chrome/browser/sync/glue/ui_data_type_controller.h"
44 #include "chrome/browser/sync/profile_sync_components_factory_impl.h" 43 #include "chrome/browser/sync/profile_sync_components_factory_impl.h"
45 #include "chrome/browser/sync/profile_sync_service.h" 44 #include "chrome/browser/sync/profile_sync_service.h"
46 #include "chrome/browser/webdata/autocomplete_syncable_service.h" 45 #include "chrome/browser/webdata/autocomplete_syncable_service.h"
47 #include "chrome/browser/webdata/autofill_profile_syncable_service.h" 46 #include "chrome/browser/webdata/autofill_profile_syncable_service.h"
48 #include "chrome/browser/webdata/web_data_service.h" 47 #include "chrome/browser/webdata/web_data_service.h"
49 #include "chrome/common/chrome_switches.h" 48 #include "chrome/common/chrome_switches.h"
50 #include "chrome/common/pref_names.h" 49 #include "chrome/common/pref_names.h"
51 #include "content/public/browser/browser_thread.h" 50 #include "content/public/browser/browser_thread.h"
52 51
53 using browser_sync::AppNotificationDataTypeController; 52 using browser_sync::AppNotificationDataTypeController;
54 using browser_sync::AutofillDataTypeController; 53 using browser_sync::AutofillDataTypeController;
55 using browser_sync::AutofillProfileDataTypeController; 54 using browser_sync::AutofillProfileDataTypeController;
56 using browser_sync::BookmarkChangeProcessor; 55 using browser_sync::BookmarkChangeProcessor;
57 using browser_sync::BookmarkDataTypeController; 56 using browser_sync::BookmarkDataTypeController;
58 using browser_sync::BookmarkModelAssociator; 57 using browser_sync::BookmarkModelAssociator;
59 using browser_sync::DataTypeController; 58 using browser_sync::DataTypeController;
60 using browser_sync::DataTypeManager; 59 using browser_sync::DataTypeManager;
61 using browser_sync::DataTypeManagerImpl; 60 using browser_sync::DataTypeManagerImpl;
62 using browser_sync::ExtensionDataTypeController; 61 using browser_sync::ExtensionDataTypeController;
63 using browser_sync::ExtensionSettingDataTypeController; 62 using browser_sync::ExtensionSettingDataTypeController;
64 using browser_sync::GenericChangeProcessor; 63 using browser_sync::GenericChangeProcessor;
65 using browser_sync::PasswordChangeProcessor; 64 using browser_sync::PasswordChangeProcessor;
66 using browser_sync::PasswordDataTypeController; 65 using browser_sync::PasswordDataTypeController;
67 using browser_sync::PasswordModelAssociator; 66 using browser_sync::PasswordModelAssociator;
68 using browser_sync::PreferenceDataTypeController;
69 using browser_sync::SearchEngineDataTypeController; 67 using browser_sync::SearchEngineDataTypeController;
70 using browser_sync::SessionChangeProcessor; 68 using browser_sync::SessionChangeProcessor;
71 using browser_sync::SessionDataTypeController; 69 using browser_sync::SessionDataTypeController;
72 using browser_sync::SessionModelAssociator; 70 using browser_sync::SessionModelAssociator;
73 using browser_sync::SharedChangeProcessor; 71 using browser_sync::SharedChangeProcessor;
74 using browser_sync::SyncableServiceAdapter;
75 using browser_sync::SyncBackendHost; 72 using browser_sync::SyncBackendHost;
76 using browser_sync::ThemeChangeProcessor; 73 using browser_sync::ThemeChangeProcessor;
77 using browser_sync::ThemeDataTypeController; 74 using browser_sync::ThemeDataTypeController;
78 using browser_sync::ThemeModelAssociator; 75 using browser_sync::ThemeModelAssociator;
79 using browser_sync::TypedUrlChangeProcessor; 76 using browser_sync::TypedUrlChangeProcessor;
80 using browser_sync::TypedUrlDataTypeController; 77 using browser_sync::TypedUrlDataTypeController;
81 using browser_sync::TypedUrlModelAssociator; 78 using browser_sync::TypedUrlModelAssociator;
79 using browser_sync::UIDataTypeController;
82 using browser_sync::DataTypeErrorHandler; 80 using browser_sync::DataTypeErrorHandler;
83 using content::BrowserThread; 81 using content::BrowserThread;
84 82
85 ProfileSyncComponentsFactoryImpl::ProfileSyncComponentsFactoryImpl( 83 ProfileSyncComponentsFactoryImpl::ProfileSyncComponentsFactoryImpl(
86 Profile* profile, CommandLine* command_line) 84 Profile* profile, CommandLine* command_line)
87 : profile_(profile), 85 : profile_(profile),
88 command_line_(command_line) { 86 command_line_(command_line) {
89 } 87 }
90 88
91 void ProfileSyncComponentsFactoryImpl::RegisterDataTypes( 89 void ProfileSyncComponentsFactoryImpl::RegisterDataTypes(
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 // disabled. 121 // disabled.
124 if (!command_line_->HasSwitch(switches::kDisableSyncPasswords)) { 122 if (!command_line_->HasSwitch(switches::kDisableSyncPasswords)) {
125 pss->RegisterDataTypeController( 123 pss->RegisterDataTypeController(
126 new PasswordDataTypeController(this, profile_, pss)); 124 new PasswordDataTypeController(this, profile_, pss));
127 } 125 }
128 126
129 // Preference sync is enabled by default. Register unless explicitly 127 // Preference sync is enabled by default. Register unless explicitly
130 // disabled. 128 // disabled.
131 if (!command_line_->HasSwitch(switches::kDisableSyncPreferences)) { 129 if (!command_line_->HasSwitch(switches::kDisableSyncPreferences)) {
132 pss->RegisterDataTypeController( 130 pss->RegisterDataTypeController(
133 new PreferenceDataTypeController(this, profile_, pss)); 131 new UIDataTypeController(syncable::PREFERENCES, this, profile_, pss));
134 } 132 }
135 133
136 // Theme sync is enabled by default. Register unless explicitly disabled. 134 // Theme sync is enabled by default. Register unless explicitly disabled.
137 if (!command_line_->HasSwitch(switches::kDisableSyncThemes)) { 135 if (!command_line_->HasSwitch(switches::kDisableSyncThemes)) {
138 pss->RegisterDataTypeController( 136 pss->RegisterDataTypeController(
139 new ThemeDataTypeController(this, profile_, pss)); 137 new ThemeDataTypeController(this, profile_, pss));
140 } 138 }
141 139
142 // TypedUrl sync is enabled by default. Register unless explicitly disabled, 140 // TypedUrl sync is enabled by default. Register unless explicitly disabled,
143 // or if saving history is disabled. 141 // or if saving history is disabled.
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 CreateSharedChangeProcessor() { 209 CreateSharedChangeProcessor() {
212 return new SharedChangeProcessor(); 210 return new SharedChangeProcessor();
213 } 211 }
214 212
215 base::WeakPtr<SyncableService> ProfileSyncComponentsFactoryImpl:: 213 base::WeakPtr<SyncableService> ProfileSyncComponentsFactoryImpl::
216 GetSyncableServiceForType(syncable::ModelType type) { 214 GetSyncableServiceForType(syncable::ModelType type) {
217 if (!profile_) { // For tests. 215 if (!profile_) { // For tests.
218 return base::WeakPtr<SyncableService>(); 216 return base::WeakPtr<SyncableService>();
219 } 217 }
220 switch (type) { 218 switch (type) {
221 case syncable::AUTOFILL: { 219 case syncable::PREFERENCES:
222 WebDataService* wds = 220 return profile_->GetPrefs()->GetSyncableService()->AsWeakPtr();
223 profile_->GetWebDataService(Profile::IMPLICIT_ACCESS); 221 case syncable::AUTOFILL:
224 if (!wds)
225 return base::WeakPtr<SyncableService>();
226 return GetAutocompleteSyncableService(wds);
227 }
228 case syncable::AUTOFILL_PROFILE: { 222 case syncable::AUTOFILL_PROFILE: {
229 WebDataService* wds = 223 WebDataService* wds =
230 profile_->GetWebDataService(Profile::IMPLICIT_ACCESS); 224 profile_->GetWebDataService(Profile::IMPLICIT_ACCESS);
231 if (!wds) 225 if (!wds)
232 return base::WeakPtr<SyncableService>(); 226 return base::WeakPtr<SyncableService>();
233 return GetAutofillProfileSyncableService(wds); 227 if (type == syncable::AUTOFILL)
228 return wds->GetAutocompleteSyncableService()->AsWeakPtr();
229 else
230 return wds->GetAutofillProfileSyncableService()->AsWeakPtr();
234 } 231 }
232 case syncable::APPS:
233 case syncable::EXTENSIONS:
234 return profile_->GetExtensionService()->AsWeakPtr();
235 case syncable::SEARCH_ENGINES:
236 return TemplateURLServiceFactory::GetForProfile(profile_)->AsWeakPtr();
237 case syncable::APP_SETTINGS:
238 case syncable::EXTENSION_SETTINGS:
239 return profile_->GetExtensionService()->settings_frontend()->
240 GetBackendForSync(type)->AsWeakPtr();
241 case syncable::APP_NOTIFICATIONS:
242 return profile_->GetExtensionService()->app_notification_manager()->
243 AsWeakPtr();
235 default: 244 default:
245 // The following datatypes still need to be transitioned to the
246 // SyncableService API:
247 // Bookmarks
248 // Passwords
249 // Sessions
250 // Themes
251 // Typed URLs
236 NOTREACHED(); 252 NOTREACHED();
237 return base::WeakPtr<SyncableService>(); 253 return base::WeakPtr<SyncableService>();
238 } 254 }
239 } 255 }
240 256
241 base::WeakPtr<SyncableService>
242 ProfileSyncComponentsFactoryImpl::GetAutofillProfileSyncableService(
243 WebDataService* web_data_service) const {
244 return web_data_service->GetAutofillProfileSyncableService()->AsWeakPtr();
245 }
246
247 base::WeakPtr<SyncableService>
248 ProfileSyncComponentsFactoryImpl::GetAutocompleteSyncableService(
249 WebDataService* web_data_service) const {
250 return web_data_service->GetAutocompleteSyncableService()->AsWeakPtr();
251 }
252
253 ProfileSyncComponentsFactory::SyncComponents 257 ProfileSyncComponentsFactory::SyncComponents
254 ProfileSyncComponentsFactoryImpl::CreateBookmarkSyncComponents( 258 ProfileSyncComponentsFactoryImpl::CreateBookmarkSyncComponents(
255 ProfileSyncService* profile_sync_service, 259 ProfileSyncService* profile_sync_service,
256 DataTypeErrorHandler* error_handler) { 260 DataTypeErrorHandler* error_handler) {
257 BookmarkModel* bookmark_model = 261 BookmarkModel* bookmark_model =
258 profile_sync_service->profile()->GetBookmarkModel(); 262 profile_sync_service->profile()->GetBookmarkModel();
259 sync_api::UserShare* user_share = profile_sync_service->GetUserShare(); 263 sync_api::UserShare* user_share = profile_sync_service->GetUserShare();
260 // TODO(akalin): We may want to propagate this switch up eventually. 264 // TODO(akalin): We may want to propagate this switch up eventually.
261 #if defined(OS_ANDROID) 265 #if defined(OS_ANDROID)
262 const bool kExpectMobileBookmarksFolder = true; 266 const bool kExpectMobileBookmarksFolder = true;
263 #else 267 #else
264 const bool kExpectMobileBookmarksFolder = false; 268 const bool kExpectMobileBookmarksFolder = false;
265 #endif 269 #endif
266 BookmarkModelAssociator* model_associator = 270 BookmarkModelAssociator* model_associator =
267 new BookmarkModelAssociator(bookmark_model, 271 new BookmarkModelAssociator(bookmark_model,
268 user_share, 272 user_share,
269 error_handler, 273 error_handler,
270 kExpectMobileBookmarksFolder); 274 kExpectMobileBookmarksFolder);
271 BookmarkChangeProcessor* change_processor = 275 BookmarkChangeProcessor* change_processor =
272 new BookmarkChangeProcessor(model_associator, 276 new BookmarkChangeProcessor(model_associator,
273 error_handler); 277 error_handler);
274 return SyncComponents(model_associator, change_processor); 278 return SyncComponents(model_associator, change_processor);
275 } 279 }
276 280
277 ProfileSyncComponentsFactory::SyncComponents 281 ProfileSyncComponentsFactory::SyncComponents
278 ProfileSyncComponentsFactoryImpl::CreateExtensionOrAppSettingSyncComponents(
279 syncable::ModelType type,
280 ProfileSyncService* profile_sync_service,
281 DataTypeErrorHandler* error_handler) {
282 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
283 DCHECK(type == syncable::EXTENSION_SETTINGS ||
284 type == syncable::APP_SETTINGS);
285 SyncableService* settings_service = profile_->GetExtensionService()->
286 settings_frontend()->GetBackendForSync(type);
287 sync_api::UserShare* user_share = profile_sync_service->GetUserShare();
288 GenericChangeProcessor* change_processor =
289 new GenericChangeProcessor(error_handler,
290 settings_service->AsWeakPtr(),
291 user_share);
292 browser_sync::SyncableServiceAdapter* sync_service_adapter =
293 new browser_sync::SyncableServiceAdapter(type,
294 settings_service,
295 change_processor);
296 return SyncComponents(sync_service_adapter, change_processor);
297 }
298
299 ProfileSyncComponentsFactory::SyncComponents
300 ProfileSyncComponentsFactoryImpl::CreateExtensionOrAppSyncComponents(
301 syncable::ModelType type,
302 ProfileSyncService* profile_sync_service,
303 DataTypeErrorHandler* error_handler) {
304 base::WeakPtr<SyncableService> sync_service =
305 profile_sync_service->profile()->GetExtensionService()->AsWeakPtr();
306 sync_api::UserShare* user_share = profile_sync_service->GetUserShare();
307 GenericChangeProcessor* change_processor =
308 new GenericChangeProcessor(error_handler,
309 sync_service,
310 user_share);
311 browser_sync::SyncableServiceAdapter* sync_service_adapter =
312 new browser_sync::SyncableServiceAdapter(type,
313 sync_service,
314 change_processor);
315 return SyncComponents(sync_service_adapter, change_processor);
316 }
317
318 ProfileSyncComponentsFactory::SyncComponents
319 ProfileSyncComponentsFactoryImpl::CreatePasswordSyncComponents( 282 ProfileSyncComponentsFactoryImpl::CreatePasswordSyncComponents(
320 ProfileSyncService* profile_sync_service, 283 ProfileSyncService* profile_sync_service,
321 PasswordStore* password_store, 284 PasswordStore* password_store,
322 DataTypeErrorHandler* error_handler) { 285 DataTypeErrorHandler* error_handler) {
323 PasswordModelAssociator* model_associator = 286 PasswordModelAssociator* model_associator =
324 new PasswordModelAssociator(profile_sync_service, 287 new PasswordModelAssociator(profile_sync_service,
325 password_store); 288 password_store);
326 PasswordChangeProcessor* change_processor = 289 PasswordChangeProcessor* change_processor =
327 new PasswordChangeProcessor(model_associator, 290 new PasswordChangeProcessor(model_associator,
328 password_store, 291 password_store,
329 error_handler); 292 error_handler);
330 return SyncComponents(model_associator, change_processor); 293 return SyncComponents(model_associator, change_processor);
331 } 294 }
332 295
333 ProfileSyncComponentsFactory::SyncComponents 296 ProfileSyncComponentsFactory::SyncComponents
334 ProfileSyncComponentsFactoryImpl::CreatePreferenceSyncComponents(
335 ProfileSyncService* profile_sync_service,
336 DataTypeErrorHandler* error_handler) {
337 base::WeakPtr<SyncableService> pref_sync_service =
338 profile_->GetPrefs()->GetSyncableService()->AsWeakPtr();
339 sync_api::UserShare* user_share = profile_sync_service->GetUserShare();
340 GenericChangeProcessor* change_processor =
341 new GenericChangeProcessor(error_handler,
342 pref_sync_service,
343 user_share);
344 SyncableServiceAdapter* sync_service_adapter =
345 new SyncableServiceAdapter(syncable::PREFERENCES,
346 pref_sync_service,
347 change_processor);
348 return SyncComponents(sync_service_adapter, change_processor);
349 }
350
351 ProfileSyncComponentsFactory::SyncComponents
352 ProfileSyncComponentsFactoryImpl::CreateThemeSyncComponents( 297 ProfileSyncComponentsFactoryImpl::CreateThemeSyncComponents(
353 ProfileSyncService* profile_sync_service, 298 ProfileSyncService* profile_sync_service,
354 DataTypeErrorHandler* error_handler) { 299 DataTypeErrorHandler* error_handler) {
355 ThemeModelAssociator* model_associator = 300 ThemeModelAssociator* model_associator =
356 new ThemeModelAssociator(profile_sync_service); 301 new ThemeModelAssociator(profile_sync_service);
357 ThemeChangeProcessor* change_processor = 302 ThemeChangeProcessor* change_processor =
358 new ThemeChangeProcessor(error_handler); 303 new ThemeChangeProcessor(error_handler);
359 return SyncComponents(model_associator, change_processor); 304 return SyncComponents(model_associator, change_processor);
360 } 305 }
361 306
(...skipping 16 matching lines...) Expand all
378 ProfileSyncComponentsFactory::SyncComponents 323 ProfileSyncComponentsFactory::SyncComponents
379 ProfileSyncComponentsFactoryImpl::CreateSessionSyncComponents( 324 ProfileSyncComponentsFactoryImpl::CreateSessionSyncComponents(
380 ProfileSyncService* profile_sync_service, 325 ProfileSyncService* profile_sync_service,
381 DataTypeErrorHandler* error_handler) { 326 DataTypeErrorHandler* error_handler) {
382 SessionModelAssociator* model_associator = 327 SessionModelAssociator* model_associator =
383 new SessionModelAssociator(profile_sync_service); 328 new SessionModelAssociator(profile_sync_service);
384 SessionChangeProcessor* change_processor = 329 SessionChangeProcessor* change_processor =
385 new SessionChangeProcessor(error_handler, model_associator); 330 new SessionChangeProcessor(error_handler, model_associator);
386 return SyncComponents(model_associator, change_processor); 331 return SyncComponents(model_associator, change_processor);
387 } 332 }
388
389 ProfileSyncComponentsFactory::SyncComponents
390 ProfileSyncComponentsFactoryImpl::CreateSearchEngineSyncComponents(
391 ProfileSyncService* profile_sync_service,
392 DataTypeErrorHandler* error_handler) {
393 base::WeakPtr<SyncableService> se_sync_service =
394 TemplateURLServiceFactory::GetForProfile(profile_)->AsWeakPtr();
395 DCHECK(se_sync_service);
396 sync_api::UserShare* user_share = profile_sync_service->GetUserShare();
397 GenericChangeProcessor* change_processor =
398 new GenericChangeProcessor(error_handler,
399 se_sync_service,
400 user_share);
401 SyncableServiceAdapter* sync_service_adapter =
402 new SyncableServiceAdapter(syncable::SEARCH_ENGINES,
403 se_sync_service,
404 change_processor);
405 return SyncComponents(sync_service_adapter, change_processor);
406 }
407
408 ProfileSyncComponentsFactory::SyncComponents
409 ProfileSyncComponentsFactoryImpl::CreateAppNotificationSyncComponents(
410 ProfileSyncService* profile_sync_service,
411 browser_sync::DataTypeErrorHandler* error_handler) {
412 base::WeakPtr<SyncableService> notif_sync_service =
413 profile_->GetExtensionService()->app_notification_manager()->AsWeakPtr();
414 DCHECK(notif_sync_service);
415 sync_api::UserShare* user_share = profile_sync_service->GetUserShare();
416 GenericChangeProcessor* change_processor =
417 new GenericChangeProcessor(error_handler,
418 notif_sync_service,
419 user_share);
420 SyncableServiceAdapter* sync_service_adapter =
421 new SyncableServiceAdapter(syncable::APP_NOTIFICATIONS,
422 notif_sync_service,
423 change_processor);
424 return SyncComponents(sync_service_adapter, change_processor);
425 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698