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

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 and 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/generic_ui_data_type_controller.h"
27 #include "chrome/browser/sync/glue/password_change_processor.h" 28 #include "chrome/browser/sync/glue/password_change_processor.h"
28 #include "chrome/browser/sync/glue/password_data_type_controller.h" 29 #include "chrome/browser/sync/glue/password_data_type_controller.h"
29 #include "chrome/browser/sync/glue/password_model_associator.h" 30 #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" 31 #include "chrome/browser/sync/glue/search_engine_data_type_controller.h"
32 #include "chrome/browser/sync/glue/session_change_processor.h" 32 #include "chrome/browser/sync/glue/session_change_processor.h"
33 #include "chrome/browser/sync/glue/session_data_type_controller.h" 33 #include "chrome/browser/sync/glue/session_data_type_controller.h"
34 #include "chrome/browser/sync/glue/session_model_associator.h" 34 #include "chrome/browser/sync/glue/session_model_associator.h"
35 #include "chrome/browser/sync/glue/shared_change_processor.h" 35 #include "chrome/browser/sync/glue/shared_change_processor.h"
36 #include "chrome/browser/sync/glue/sync_backend_host.h" 36 #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" 37 #include "chrome/browser/sync/glue/theme_change_processor.h"
39 #include "chrome/browser/sync/glue/theme_data_type_controller.h" 38 #include "chrome/browser/sync/glue/theme_data_type_controller.h"
40 #include "chrome/browser/sync/glue/theme_model_associator.h" 39 #include "chrome/browser/sync/glue/theme_model_associator.h"
41 #include "chrome/browser/sync/glue/typed_url_change_processor.h" 40 #include "chrome/browser/sync/glue/typed_url_change_processor.h"
42 #include "chrome/browser/sync/glue/typed_url_data_type_controller.h" 41 #include "chrome/browser/sync/glue/typed_url_data_type_controller.h"
43 #include "chrome/browser/sync/glue/typed_url_model_associator.h" 42 #include "chrome/browser/sync/glue/typed_url_model_associator.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;
64 using browser_sync::GenericUIDataTypeController;
65 using browser_sync::PasswordChangeProcessor; 65 using browser_sync::PasswordChangeProcessor;
66 using browser_sync::PasswordDataTypeController; 66 using browser_sync::PasswordDataTypeController;
67 using browser_sync::PasswordModelAssociator; 67 using browser_sync::PasswordModelAssociator;
68 using browser_sync::PreferenceDataTypeController;
69 using browser_sync::SearchEngineDataTypeController; 68 using browser_sync::SearchEngineDataTypeController;
70 using browser_sync::SessionChangeProcessor; 69 using browser_sync::SessionChangeProcessor;
71 using browser_sync::SessionDataTypeController; 70 using browser_sync::SessionDataTypeController;
72 using browser_sync::SessionModelAssociator; 71 using browser_sync::SessionModelAssociator;
73 using browser_sync::SharedChangeProcessor; 72 using browser_sync::SharedChangeProcessor;
74 using browser_sync::SyncableServiceAdapter;
75 using browser_sync::SyncBackendHost; 73 using browser_sync::SyncBackendHost;
76 using browser_sync::ThemeChangeProcessor; 74 using browser_sync::ThemeChangeProcessor;
77 using browser_sync::ThemeDataTypeController; 75 using browser_sync::ThemeDataTypeController;
78 using browser_sync::ThemeModelAssociator; 76 using browser_sync::ThemeModelAssociator;
79 using browser_sync::TypedUrlChangeProcessor; 77 using browser_sync::TypedUrlChangeProcessor;
80 using browser_sync::TypedUrlDataTypeController; 78 using browser_sync::TypedUrlDataTypeController;
81 using browser_sync::TypedUrlModelAssociator; 79 using browser_sync::TypedUrlModelAssociator;
82 using browser_sync::DataTypeErrorHandler; 80 using browser_sync::DataTypeErrorHandler;
83 using content::BrowserThread; 81 using content::BrowserThread;
84 82
(...skipping 38 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 GenericUIDataTypeController(syncable::PREFERENCES, this, profile_,
132 pss));
134 } 133 }
135 134
136 // Theme sync is enabled by default. Register unless explicitly disabled. 135 // Theme sync is enabled by default. Register unless explicitly disabled.
137 if (!command_line_->HasSwitch(switches::kDisableSyncThemes)) { 136 if (!command_line_->HasSwitch(switches::kDisableSyncThemes)) {
138 pss->RegisterDataTypeController( 137 pss->RegisterDataTypeController(
139 new ThemeDataTypeController(this, profile_, pss)); 138 new ThemeDataTypeController(this, profile_, pss));
140 } 139 }
141 140
142 // TypedUrl sync is enabled by default. Register unless explicitly disabled, 141 // TypedUrl sync is enabled by default. Register unless explicitly disabled,
143 // or if saving history is disabled. 142 // or if saving history is disabled.
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 CreateSharedChangeProcessor() { 210 CreateSharedChangeProcessor() {
212 return new SharedChangeProcessor(); 211 return new SharedChangeProcessor();
213 } 212 }
214 213
215 base::WeakPtr<SyncableService> ProfileSyncComponentsFactoryImpl:: 214 base::WeakPtr<SyncableService> ProfileSyncComponentsFactoryImpl::
216 GetSyncableServiceForType(syncable::ModelType type) { 215 GetSyncableServiceForType(syncable::ModelType type) {
217 if (!profile_) { // For tests. 216 if (!profile_) { // For tests.
218 return base::WeakPtr<SyncableService>(); 217 return base::WeakPtr<SyncableService>();
219 } 218 }
220 switch (type) { 219 switch (type) {
221 case syncable::AUTOFILL: { 220 case syncable::PREFERENCES:
222 WebDataService* wds = 221 return profile_->GetPrefs()->GetSyncableService()->AsWeakPtr();
223 profile_->GetWebDataService(Profile::IMPLICIT_ACCESS); 222 case syncable::AUTOFILL:
224 if (!wds)
225 return base::WeakPtr<SyncableService>();
226 return GetAutocompleteSyncableService(wds);
227 }
228 case syncable::AUTOFILL_PROFILE: { 223 case syncable::AUTOFILL_PROFILE: {
229 WebDataService* wds = 224 WebDataService* wds =
230 profile_->GetWebDataService(Profile::IMPLICIT_ACCESS); 225 profile_->GetWebDataService(Profile::IMPLICIT_ACCESS);
231 if (!wds) 226 if (!wds)
232 return base::WeakPtr<SyncableService>(); 227 return base::WeakPtr<SyncableService>();
233 return GetAutofillProfileSyncableService(wds); 228 if (type == syncable::AUTOFILL)
229 return wds->GetAutocompleteSyncableService()->AsWeakPtr();
230 else
231 return wds->GetAutofillProfileSyncableService()->AsWeakPtr();
234 } 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();
235 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
236 NOTREACHED(); 253 NOTREACHED();
237 return base::WeakPtr<SyncableService>(); 254 return base::WeakPtr<SyncableService>();
238 } 255 }
239 } 256 }
240 257
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 258 ProfileSyncComponentsFactory::SyncComponents
254 ProfileSyncComponentsFactoryImpl::CreateBookmarkSyncComponents( 259 ProfileSyncComponentsFactoryImpl::CreateBookmarkSyncComponents(
255 ProfileSyncService* profile_sync_service, 260 ProfileSyncService* profile_sync_service,
256 DataTypeErrorHandler* error_handler) { 261 DataTypeErrorHandler* error_handler) {
257 BookmarkModel* bookmark_model = 262 BookmarkModel* bookmark_model =
258 profile_sync_service->profile()->GetBookmarkModel(); 263 profile_sync_service->profile()->GetBookmarkModel();
259 sync_api::UserShare* user_share = profile_sync_service->GetUserShare(); 264 sync_api::UserShare* user_share = profile_sync_service->GetUserShare();
260 // TODO(akalin): We may want to propagate this switch up eventually. 265 // TODO(akalin): We may want to propagate this switch up eventually.
261 #if defined(OS_ANDROID) 266 #if defined(OS_ANDROID)
262 const bool kExpectMobileBookmarksFolder = true; 267 const bool kExpectMobileBookmarksFolder = true;
263 #else 268 #else
264 const bool kExpectMobileBookmarksFolder = false; 269 const bool kExpectMobileBookmarksFolder = false;
265 #endif 270 #endif
266 BookmarkModelAssociator* model_associator = 271 BookmarkModelAssociator* model_associator =
267 new BookmarkModelAssociator(bookmark_model, 272 new BookmarkModelAssociator(bookmark_model,
268 user_share, 273 user_share,
269 error_handler, 274 error_handler,
270 kExpectMobileBookmarksFolder); 275 kExpectMobileBookmarksFolder);
271 BookmarkChangeProcessor* change_processor = 276 BookmarkChangeProcessor* change_processor =
272 new BookmarkChangeProcessor(model_associator, 277 new BookmarkChangeProcessor(model_associator,
273 error_handler); 278 error_handler);
274 return SyncComponents(model_associator, change_processor); 279 return SyncComponents(model_associator, change_processor);
275 } 280 }
276 281
277 ProfileSyncComponentsFactory::SyncComponents 282 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( 283 ProfileSyncComponentsFactoryImpl::CreatePasswordSyncComponents(
320 ProfileSyncService* profile_sync_service, 284 ProfileSyncService* profile_sync_service,
321 PasswordStore* password_store, 285 PasswordStore* password_store,
322 DataTypeErrorHandler* error_handler) { 286 DataTypeErrorHandler* error_handler) {
323 PasswordModelAssociator* model_associator = 287 PasswordModelAssociator* model_associator =
324 new PasswordModelAssociator(profile_sync_service, 288 new PasswordModelAssociator(profile_sync_service,
325 password_store); 289 password_store);
326 PasswordChangeProcessor* change_processor = 290 PasswordChangeProcessor* change_processor =
327 new PasswordChangeProcessor(model_associator, 291 new PasswordChangeProcessor(model_associator,
328 password_store, 292 password_store,
329 error_handler); 293 error_handler);
330 return SyncComponents(model_associator, change_processor); 294 return SyncComponents(model_associator, change_processor);
331 } 295 }
332 296
333 ProfileSyncComponentsFactory::SyncComponents 297 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( 298 ProfileSyncComponentsFactoryImpl::CreateThemeSyncComponents(
353 ProfileSyncService* profile_sync_service, 299 ProfileSyncService* profile_sync_service,
354 DataTypeErrorHandler* error_handler) { 300 DataTypeErrorHandler* error_handler) {
355 ThemeModelAssociator* model_associator = 301 ThemeModelAssociator* model_associator =
356 new ThemeModelAssociator(profile_sync_service); 302 new ThemeModelAssociator(profile_sync_service);
357 ThemeChangeProcessor* change_processor = 303 ThemeChangeProcessor* change_processor =
358 new ThemeChangeProcessor(error_handler); 304 new ThemeChangeProcessor(error_handler);
359 return SyncComponents(model_associator, change_processor); 305 return SyncComponents(model_associator, change_processor);
360 } 306 }
361 307
(...skipping 16 matching lines...) Expand all
378 ProfileSyncComponentsFactory::SyncComponents 324 ProfileSyncComponentsFactory::SyncComponents
379 ProfileSyncComponentsFactoryImpl::CreateSessionSyncComponents( 325 ProfileSyncComponentsFactoryImpl::CreateSessionSyncComponents(
380 ProfileSyncService* profile_sync_service, 326 ProfileSyncService* profile_sync_service,
381 DataTypeErrorHandler* error_handler) { 327 DataTypeErrorHandler* error_handler) {
382 SessionModelAssociator* model_associator = 328 SessionModelAssociator* model_associator =
383 new SessionModelAssociator(profile_sync_service); 329 new SessionModelAssociator(profile_sync_service);
384 SessionChangeProcessor* change_processor = 330 SessionChangeProcessor* change_processor =
385 new SessionChangeProcessor(error_handler, model_associator); 331 new SessionChangeProcessor(error_handler, model_associator);
386 return SyncComponents(model_associator, change_processor); 332 return SyncComponents(model_associator, change_processor);
387 } 333 }
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