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

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

Powered by Google App Engine
This is Rietveld 408576698