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

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: Rebase 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 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 CreateSharedChangeProcessor() { 210 CreateSharedChangeProcessor() {
213 return new SharedChangeProcessor(); 211 return new SharedChangeProcessor();
214 } 212 }
215 213
216 base::WeakPtr<SyncableService> ProfileSyncComponentsFactoryImpl:: 214 base::WeakPtr<SyncableService> ProfileSyncComponentsFactoryImpl::
217 GetSyncableServiceForType(syncable::ModelType type) { 215 GetSyncableServiceForType(syncable::ModelType type) {
218 if (!profile_) { // For tests. 216 if (!profile_) { // For tests.
219 return base::WeakPtr<SyncableService>(); 217 return base::WeakPtr<SyncableService>();
220 } 218 }
221 switch (type) { 219 switch (type) {
222 case syncable::AUTOFILL: { 220 case syncable::PREFERENCES:
223 WebDataService* wds = 221 return profile_->GetPrefs()->GetSyncableService()->AsWeakPtr();
224 profile_->GetWebDataService(Profile::IMPLICIT_ACCESS); 222 case syncable::AUTOFILL:
225 if (!wds)
226 return base::WeakPtr<SyncableService>();
227 return GetAutocompleteSyncableService(wds);
228 }
229 case syncable::AUTOFILL_PROFILE: { 223 case syncable::AUTOFILL_PROFILE: {
230 WebDataService* wds = 224 WebDataService* wds =
231 profile_->GetWebDataService(Profile::IMPLICIT_ACCESS); 225 profile_->GetWebDataService(Profile::IMPLICIT_ACCESS);
232 if (!wds) 226 if (!wds)
233 return base::WeakPtr<SyncableService>(); 227 return base::WeakPtr<SyncableService>();
234 return GetAutofillProfileSyncableService(wds); 228 if (type == syncable::AUTOFILL)
229 return wds->GetAutocompleteSyncableService()->AsWeakPtr();
230 else
231 return wds->GetAutofillProfileSyncableService()->AsWeakPtr();
235 } 232 }
233 case syncable::APPS:
234 case syncable::EXTENSIONS:
235 return profile_->GetExtensionService()->AsWeakPtr();
236 case syncable::SEARCH_ENGINES:
237 return TemplateURLServiceFactory::GetForProfile(profile_)->AsWeakPtr();
238 case syncable::APP_SETTINGS:
239 case syncable::EXTENSION_SETTINGS:
240 return profile_->GetExtensionService()->settings_frontend()->
241 GetBackendForSync(type)->AsWeakPtr();
242 case syncable::APP_NOTIFICATIONS:
243 return profile_->GetExtensionService()->app_notification_manager()->
244 AsWeakPtr();
236 default: 245 default:
246 // The following datatypes still need to be transitioned to the
247 // SyncableService API:
248 // Bookmarks
249 // Passwords
250 // Sessions
251 // Themes
252 // Typed URLs
237 NOTREACHED(); 253 NOTREACHED();
238 return base::WeakPtr<SyncableService>(); 254 return base::WeakPtr<SyncableService>();
239 } 255 }
240 } 256 }
241 257
242 base::WeakPtr<SyncableService>
243 ProfileSyncComponentsFactoryImpl::GetAutofillProfileSyncableService(
244 WebDataService* web_data_service) const {
245 return web_data_service->GetAutofillProfileSyncableService()->AsWeakPtr();
246 }
247
248 base::WeakPtr<SyncableService>
249 ProfileSyncComponentsFactoryImpl::GetAutocompleteSyncableService(
250 WebDataService* web_data_service) const {
251 return web_data_service->GetAutocompleteSyncableService()->AsWeakPtr();
252 }
253
254 ProfileSyncComponentsFactory::SyncComponents 258 ProfileSyncComponentsFactory::SyncComponents
255 ProfileSyncComponentsFactoryImpl::CreateBookmarkSyncComponents( 259 ProfileSyncComponentsFactoryImpl::CreateBookmarkSyncComponents(
256 ProfileSyncService* profile_sync_service, 260 ProfileSyncService* profile_sync_service,
257 DataTypeErrorHandler* error_handler) { 261 DataTypeErrorHandler* error_handler) {
258 BookmarkModel* bookmark_model = 262 BookmarkModel* bookmark_model =
259 profile_sync_service->profile()->GetBookmarkModel(); 263 profile_sync_service->profile()->GetBookmarkModel();
260 sync_api::UserShare* user_share = profile_sync_service->GetUserShare(); 264 sync_api::UserShare* user_share = profile_sync_service->GetUserShare();
261 // TODO(akalin): We may want to propagate this switch up eventually. 265 // TODO(akalin): We may want to propagate this switch up eventually.
262 #if defined(OS_ANDROID) 266 #if defined(OS_ANDROID)
263 const bool kExpectMobileBookmarksFolder = true; 267 const bool kExpectMobileBookmarksFolder = true;
264 #else 268 #else
265 const bool kExpectMobileBookmarksFolder = false; 269 const bool kExpectMobileBookmarksFolder = false;
266 #endif 270 #endif
267 BookmarkModelAssociator* model_associator = 271 BookmarkModelAssociator* model_associator =
268 new BookmarkModelAssociator(bookmark_model, 272 new BookmarkModelAssociator(bookmark_model,
269 user_share, 273 user_share,
270 error_handler, 274 error_handler,
271 kExpectMobileBookmarksFolder); 275 kExpectMobileBookmarksFolder);
272 BookmarkChangeProcessor* change_processor = 276 BookmarkChangeProcessor* change_processor =
273 new BookmarkChangeProcessor(model_associator, 277 new BookmarkChangeProcessor(model_associator,
274 error_handler); 278 error_handler);
275 return SyncComponents(model_associator, change_processor); 279 return SyncComponents(model_associator, change_processor);
276 } 280 }
277 281
278 ProfileSyncComponentsFactory::SyncComponents 282 ProfileSyncComponentsFactory::SyncComponents
279 ProfileSyncComponentsFactoryImpl::CreateExtensionOrAppSettingSyncComponents(
280 syncable::ModelType type,
281 ProfileSyncService* profile_sync_service,
282 DataTypeErrorHandler* error_handler) {
283 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
284 DCHECK(type == syncable::EXTENSION_SETTINGS ||
285 type == syncable::APP_SETTINGS);
286 SyncableService* settings_service = profile_->GetExtensionService()->
287 settings_frontend()->GetBackendForSync(type);
288 sync_api::UserShare* user_share = profile_sync_service->GetUserShare();
289 GenericChangeProcessor* change_processor =
290 new GenericChangeProcessor(error_handler,
291 settings_service->AsWeakPtr(),
292 user_share);
293 browser_sync::SyncableServiceAdapter* sync_service_adapter =
294 new browser_sync::SyncableServiceAdapter(type,
295 settings_service,
296 change_processor);
297 return SyncComponents(sync_service_adapter, change_processor);
298 }
299
300 ProfileSyncComponentsFactory::SyncComponents
301 ProfileSyncComponentsFactoryImpl::CreateExtensionOrAppSyncComponents(
302 syncable::ModelType type,
303 ProfileSyncService* profile_sync_service,
304 DataTypeErrorHandler* error_handler) {
305 base::WeakPtr<SyncableService> sync_service =
306 profile_sync_service->profile()->GetExtensionService()->AsWeakPtr();
307 sync_api::UserShare* user_share = profile_sync_service->GetUserShare();
308 GenericChangeProcessor* change_processor =
309 new GenericChangeProcessor(error_handler,
310 sync_service,
311 user_share);
312 browser_sync::SyncableServiceAdapter* sync_service_adapter =
313 new browser_sync::SyncableServiceAdapter(type,
314 sync_service,
315 change_processor);
316 return SyncComponents(sync_service_adapter, change_processor);
317 }
318
319 ProfileSyncComponentsFactory::SyncComponents
320 ProfileSyncComponentsFactoryImpl::CreatePasswordSyncComponents( 283 ProfileSyncComponentsFactoryImpl::CreatePasswordSyncComponents(
321 ProfileSyncService* profile_sync_service, 284 ProfileSyncService* profile_sync_service,
322 PasswordStore* password_store, 285 PasswordStore* password_store,
323 DataTypeErrorHandler* error_handler) { 286 DataTypeErrorHandler* error_handler) {
324 PasswordModelAssociator* model_associator = 287 PasswordModelAssociator* model_associator =
325 new PasswordModelAssociator(profile_sync_service, 288 new PasswordModelAssociator(profile_sync_service,
326 password_store); 289 password_store);
327 PasswordChangeProcessor* change_processor = 290 PasswordChangeProcessor* change_processor =
328 new PasswordChangeProcessor(model_associator, 291 new PasswordChangeProcessor(model_associator,
329 password_store, 292 password_store,
330 error_handler); 293 error_handler);
331 return SyncComponents(model_associator, change_processor); 294 return SyncComponents(model_associator, change_processor);
332 } 295 }
333 296
334 ProfileSyncComponentsFactory::SyncComponents 297 ProfileSyncComponentsFactory::SyncComponents
335 ProfileSyncComponentsFactoryImpl::CreatePreferenceSyncComponents(
336 ProfileSyncService* profile_sync_service,
337 DataTypeErrorHandler* error_handler) {
338 base::WeakPtr<SyncableService> pref_sync_service =
339 profile_->GetPrefs()->GetSyncableService()->AsWeakPtr();
340 sync_api::UserShare* user_share = profile_sync_service->GetUserShare();
341 GenericChangeProcessor* change_processor =
342 new GenericChangeProcessor(error_handler,
343 pref_sync_service,
344 user_share);
345 SyncableServiceAdapter* sync_service_adapter =
346 new SyncableServiceAdapter(syncable::PREFERENCES,
347 pref_sync_service,
348 change_processor);
349 return SyncComponents(sync_service_adapter, change_processor);
350 }
351
352 ProfileSyncComponentsFactory::SyncComponents
353 ProfileSyncComponentsFactoryImpl::CreateThemeSyncComponents( 298 ProfileSyncComponentsFactoryImpl::CreateThemeSyncComponents(
354 ProfileSyncService* profile_sync_service, 299 ProfileSyncService* profile_sync_service,
355 DataTypeErrorHandler* error_handler) { 300 DataTypeErrorHandler* error_handler) {
356 ThemeModelAssociator* model_associator = 301 ThemeModelAssociator* model_associator =
357 new ThemeModelAssociator(profile_sync_service); 302 new ThemeModelAssociator(profile_sync_service);
358 ThemeChangeProcessor* change_processor = 303 ThemeChangeProcessor* change_processor =
359 new ThemeChangeProcessor(error_handler); 304 new ThemeChangeProcessor(error_handler);
360 return SyncComponents(model_associator, change_processor); 305 return SyncComponents(model_associator, change_processor);
361 } 306 }
362 307
(...skipping 16 matching lines...) Expand all
379 ProfileSyncComponentsFactory::SyncComponents 324 ProfileSyncComponentsFactory::SyncComponents
380 ProfileSyncComponentsFactoryImpl::CreateSessionSyncComponents( 325 ProfileSyncComponentsFactoryImpl::CreateSessionSyncComponents(
381 ProfileSyncService* profile_sync_service, 326 ProfileSyncService* profile_sync_service,
382 DataTypeErrorHandler* error_handler) { 327 DataTypeErrorHandler* error_handler) {
383 SessionModelAssociator* model_associator = 328 SessionModelAssociator* model_associator =
384 new SessionModelAssociator(profile_sync_service); 329 new SessionModelAssociator(profile_sync_service);
385 SessionChangeProcessor* change_processor = 330 SessionChangeProcessor* change_processor =
386 new SessionChangeProcessor(error_handler, model_associator); 331 new SessionChangeProcessor(error_handler, model_associator);
387 return SyncComponents(model_associator, change_processor); 332 return SyncComponents(model_associator, change_processor);
388 } 333 }
389
390 ProfileSyncComponentsFactory::SyncComponents
391 ProfileSyncComponentsFactoryImpl::CreateSearchEngineSyncComponents(
392 ProfileSyncService* profile_sync_service,
393 DataTypeErrorHandler* error_handler) {
394 base::WeakPtr<SyncableService> se_sync_service =
395 TemplateURLServiceFactory::GetForProfile(profile_)->AsWeakPtr();
396 DCHECK(se_sync_service);
397 sync_api::UserShare* user_share = profile_sync_service->GetUserShare();
398 GenericChangeProcessor* change_processor =
399 new GenericChangeProcessor(error_handler,
400 se_sync_service,
401 user_share);
402 SyncableServiceAdapter* sync_service_adapter =
403 new SyncableServiceAdapter(syncable::SEARCH_ENGINES,
404 se_sync_service,
405 change_processor);
406 return SyncComponents(sync_service_adapter, change_processor);
407 }
408
409 ProfileSyncComponentsFactory::SyncComponents
410 ProfileSyncComponentsFactoryImpl::CreateAppNotificationSyncComponents(
411 ProfileSyncService* profile_sync_service,
412 browser_sync::DataTypeErrorHandler* error_handler) {
413 base::WeakPtr<SyncableService> notif_sync_service =
414 profile_->GetExtensionService()->app_notification_manager()->AsWeakPtr();
415 DCHECK(notif_sync_service);
416 sync_api::UserShare* user_share = profile_sync_service->GetUserShare();
417 GenericChangeProcessor* change_processor =
418 new GenericChangeProcessor(error_handler,
419 notif_sync_service,
420 user_share);
421 SyncableServiceAdapter* sync_service_adapter =
422 new SyncableServiceAdapter(syncable::APP_NOTIFICATIONS,
423 notif_sync_service,
424 change_processor);
425 return SyncComponents(sync_service_adapter, change_processor);
426 }
OLDNEW
« no previous file with comments | « chrome/browser/sync/profile_sync_components_factory_impl.h ('k') | chrome/browser/sync/profile_sync_components_factory_mock.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698