Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 "chrome/browser/sync/profile_sync_components_factory_impl.h" | 5 #include "chrome/browser/sync/profile_sync_components_factory_impl.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "build/build_config.h" | 8 #include "build/build_config.h" |
| 9 #include "chrome/browser/bookmarks/bookmark_model_factory.h" | 9 #include "chrome/browser/bookmarks/bookmark_model_factory.h" |
| 10 #include "chrome/browser/dom_distiller/dom_distiller_service_factory.h" | 10 #include "chrome/browser/dom_distiller/dom_distiller_service_factory.h" |
| (...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 189 url_request_context_getter_(url_request_context_getter), | 189 url_request_context_getter_(url_request_context_getter), |
| 190 chrome_sync_client_(profile_, this), | 190 chrome_sync_client_(profile_, this), |
| 191 weak_factory_(this) { | 191 weak_factory_(this) { |
| 192 DCHECK(token_service_); | 192 DCHECK(token_service_); |
| 193 DCHECK(url_request_context_getter_); | 193 DCHECK(url_request_context_getter_); |
| 194 } | 194 } |
| 195 | 195 |
| 196 ProfileSyncComponentsFactoryImpl::~ProfileSyncComponentsFactoryImpl() { | 196 ProfileSyncComponentsFactoryImpl::~ProfileSyncComponentsFactoryImpl() { |
| 197 } | 197 } |
| 198 | 198 |
| 199 void ProfileSyncComponentsFactoryImpl::Initialize( | |
| 200 sync_driver::SyncService* sync_service) { | |
| 201 chrome_sync_client_.Initialize(sync_service); | |
| 202 } | |
| 203 | |
| 199 void ProfileSyncComponentsFactoryImpl::RegisterDataTypes( | 204 void ProfileSyncComponentsFactoryImpl::RegisterDataTypes( |
| 200 ProfileSyncService* pss) { | 205 sync_driver::SyncService* sync_service) { |
|
stanisc
2015/08/27 22:14:04
Why does this have to receive sync_service? Could
Nicolas Zea
2015/08/27 23:37:16
Done.
| |
| 201 syncer::ModelTypeSet disabled_types = | 206 syncer::ModelTypeSet disabled_types = |
| 202 GetDisabledTypesFromCommandLine(*command_line_); | 207 GetDisabledTypesFromCommandLine(*command_line_); |
| 203 syncer::ModelTypeSet enabled_types = | 208 syncer::ModelTypeSet enabled_types = |
| 204 GetEnabledTypesFromCommandLine(*command_line_); | 209 GetEnabledTypesFromCommandLine(*command_line_); |
| 205 RegisterCommonDataTypes(disabled_types, enabled_types, pss); | 210 RegisterCommonDataTypes(disabled_types, enabled_types, sync_service); |
| 206 #if !defined(OS_ANDROID) | 211 #if !defined(OS_ANDROID) |
| 207 RegisterDesktopDataTypes(disabled_types, enabled_types, pss); | 212 RegisterDesktopDataTypes(disabled_types, enabled_types, sync_service); |
| 208 #endif | 213 #endif |
| 209 } | 214 } |
| 210 | 215 |
| 211 void ProfileSyncComponentsFactoryImpl::RegisterCommonDataTypes( | 216 void ProfileSyncComponentsFactoryImpl::RegisterCommonDataTypes( |
| 212 syncer::ModelTypeSet disabled_types, | 217 syncer::ModelTypeSet disabled_types, |
| 213 syncer::ModelTypeSet enabled_types, | 218 syncer::ModelTypeSet enabled_types, |
| 214 ProfileSyncService* pss) { | 219 sync_driver::SyncService* sync_service) { |
|
stanisc
2015/08/27 22:14:04
The same comment about sync_service as above.
Nicolas Zea
2015/08/27 23:37:16
Done.
| |
| 215 // TODO(stanisc): can DEVICE_INFO be one of disabled datatypes? | 220 // TODO(stanisc): can DEVICE_INFO be one of disabled datatypes? |
| 216 pss->RegisterDataTypeController(new DeviceInfoDataTypeController( | 221 sync_service->RegisterDataTypeController(new DeviceInfoDataTypeController( |
| 217 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), | 222 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), |
| 218 base::Bind(&ChromeReportUnrecoverableError), | 223 base::Bind(&ChromeReportUnrecoverableError), |
| 219 &chrome_sync_client_, | 224 &chrome_sync_client_, |
| 220 pss->GetLocalDeviceInfoProvider())); | 225 sync_service->GetLocalDeviceInfoProvider())); |
| 221 | 226 |
| 222 // Autofill sync is enabled by default. Register unless explicitly | 227 // Autofill sync is enabled by default. Register unless explicitly |
| 223 // disabled. | 228 // disabled. |
| 224 if (!disabled_types.Has(syncer::AUTOFILL)) { | 229 if (!disabled_types.Has(syncer::AUTOFILL)) { |
| 225 pss->RegisterDataTypeController( | 230 sync_service->RegisterDataTypeController( |
| 226 new AutofillDataTypeController(&chrome_sync_client_, profile_)); | 231 new AutofillDataTypeController(&chrome_sync_client_)); |
| 227 } | 232 } |
| 228 | 233 |
| 229 // Autofill profile sync is enabled by default. Register unless explicitly | 234 // Autofill profile sync is enabled by default. Register unless explicitly |
| 230 // disabled. | 235 // disabled. |
| 231 if (!disabled_types.Has(syncer::AUTOFILL_PROFILE)) { | 236 if (!disabled_types.Has(syncer::AUTOFILL_PROFILE)) { |
| 232 pss->RegisterDataTypeController( | 237 sync_service->RegisterDataTypeController( |
| 233 new AutofillProfileDataTypeController(&chrome_sync_client_, profile_)); | 238 new AutofillProfileDataTypeController(&chrome_sync_client_)); |
| 234 } | 239 } |
| 235 | 240 |
| 236 // Wallet data sync is enabled by default, but behind a syncer experiment | 241 // Wallet data sync is enabled by default, but behind a syncer experiment |
| 237 // enforced by the datatype controller. Register unless explicitly disabled. | 242 // enforced by the datatype controller. Register unless explicitly disabled. |
| 238 bool wallet_disabled = disabled_types.Has(syncer::AUTOFILL_WALLET_DATA); | 243 bool wallet_disabled = disabled_types.Has(syncer::AUTOFILL_WALLET_DATA); |
| 239 if (!wallet_disabled) { | 244 if (!wallet_disabled) { |
| 240 pss->RegisterDataTypeController( | 245 sync_service->RegisterDataTypeController( |
| 241 new browser_sync::AutofillWalletDataTypeController( | 246 new browser_sync::AutofillWalletDataTypeController( |
| 242 &chrome_sync_client_, profile_, syncer::AUTOFILL_WALLET_DATA)); | 247 &chrome_sync_client_, syncer::AUTOFILL_WALLET_DATA)); |
| 243 } | 248 } |
| 244 | 249 |
| 245 // Wallet metadata sync depends on Wallet data sync and is disabled by | 250 // Wallet metadata sync depends on Wallet data sync and is disabled by |
| 246 // default. Register if Wallet data is syncing and metadata sync is explicitly | 251 // default. Register if Wallet data is syncing and metadata sync is explicitly |
| 247 // enabled. | 252 // enabled. |
| 248 if (!wallet_disabled && enabled_types.Has(syncer::AUTOFILL_WALLET_METADATA)) { | 253 if (!wallet_disabled && enabled_types.Has(syncer::AUTOFILL_WALLET_METADATA)) { |
| 249 pss->RegisterDataTypeController( | 254 sync_service->RegisterDataTypeController( |
| 250 new browser_sync::AutofillWalletDataTypeController( | 255 new browser_sync::AutofillWalletDataTypeController( |
| 251 &chrome_sync_client_, profile_, syncer::AUTOFILL_WALLET_METADATA)); | 256 &chrome_sync_client_, syncer::AUTOFILL_WALLET_METADATA)); |
| 252 } | 257 } |
| 253 | 258 |
| 254 // Bookmark sync is enabled by default. Register unless explicitly | 259 // Bookmark sync is enabled by default. Register unless explicitly |
| 255 // disabled. | 260 // disabled. |
| 256 if (!disabled_types.Has(syncer::BOOKMARKS)) { | 261 if (!disabled_types.Has(syncer::BOOKMARKS)) { |
| 257 pss->RegisterDataTypeController( | 262 sync_service->RegisterDataTypeController( |
| 258 new BookmarkDataTypeController(&chrome_sync_client_, profile_, pss)); | 263 new BookmarkDataTypeController(&chrome_sync_client_)); |
| 259 } | 264 } |
| 260 | 265 |
| 261 const bool history_disabled = | 266 const bool history_disabled = |
| 262 profile_->GetPrefs()->GetBoolean(prefs::kSavingBrowserHistoryDisabled); | 267 profile_->GetPrefs()->GetBoolean(prefs::kSavingBrowserHistoryDisabled); |
| 263 // TypedUrl sync is enabled by default. Register unless explicitly disabled, | 268 // TypedUrl sync is enabled by default. Register unless explicitly disabled, |
| 264 // or if saving history is disabled. | 269 // or if saving history is disabled. |
| 265 if (!disabled_types.Has(syncer::TYPED_URLS) && !history_disabled) { | 270 if (!disabled_types.Has(syncer::TYPED_URLS) && !history_disabled) { |
| 266 pss->RegisterDataTypeController( | 271 sync_service->RegisterDataTypeController( |
| 267 new TypedUrlDataTypeController(&chrome_sync_client_, profile_, pss)); | 272 new TypedUrlDataTypeController(&chrome_sync_client_)); |
| 268 } | 273 } |
| 269 | 274 |
| 270 // Delete directive sync is enabled by default. Register unless full history | 275 // Delete directive sync is enabled by default. Register unless full history |
| 271 // sync is disabled. | 276 // sync is disabled. |
| 272 if (!disabled_types.Has(syncer::HISTORY_DELETE_DIRECTIVES) && | 277 if (!disabled_types.Has(syncer::HISTORY_DELETE_DIRECTIVES) && |
| 273 !history_disabled) { | 278 !history_disabled) { |
| 274 pss->RegisterDataTypeController( | 279 sync_service->RegisterDataTypeController( |
| 275 new HistoryDeleteDirectivesDataTypeController(&chrome_sync_client_, | 280 new HistoryDeleteDirectivesDataTypeController(&chrome_sync_client_)); |
| 276 pss)); | |
| 277 } | 281 } |
| 278 | 282 |
| 279 // Session sync is enabled by default. Register unless explicitly disabled. | 283 // Session sync is enabled by default. Register unless explicitly disabled. |
| 280 // This is also disabled if the browser history is disabled, because the | 284 // This is also disabled if the browser history is disabled, because the |
| 281 // tab sync data is added to the web history on the server. | 285 // tab sync data is added to the web history on the server. |
| 282 if (!disabled_types.Has(syncer::PROXY_TABS) && !history_disabled) { | 286 if (!disabled_types.Has(syncer::PROXY_TABS) && !history_disabled) { |
| 283 pss->RegisterDataTypeController(new ProxyDataTypeController( | 287 sync_service->RegisterDataTypeController(new ProxyDataTypeController( |
| 284 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), | 288 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), |
| 285 syncer::PROXY_TABS)); | 289 syncer::PROXY_TABS)); |
| 286 pss->RegisterDataTypeController( | 290 // TODO(zea): remove this once SyncedWindowDelegateGetter is componentized. |
|
stanisc
2015/08/27 22:14:04
Should this have a crbug reference?
Nicolas Zea
2015/08/27 23:37:16
Good point, done.
| |
| 287 new SessionDataTypeController(&chrome_sync_client_, | 291 // For now, we know that the implementation of SyncService is always a |
| 288 profile_, | 292 // ProfileSyncService at this level. |
| 289 pss->GetSyncedWindowDelegatesGetter(), | 293 ProfileSyncService* pss = static_cast<ProfileSyncService*>(sync_service); |
| 290 pss->GetLocalDeviceInfoProvider())); | 294 sync_service->RegisterDataTypeController(new SessionDataTypeController( |
| 295 &chrome_sync_client_, profile_, pss->GetSyncedWindowDelegatesGetter(), | |
| 296 sync_service->GetLocalDeviceInfoProvider())); | |
| 291 } | 297 } |
| 292 | 298 |
| 293 // Favicon sync is enabled by default. Register unless explicitly disabled. | 299 // Favicon sync is enabled by default. Register unless explicitly disabled. |
| 294 if (!disabled_types.Has(syncer::FAVICON_IMAGES) && | 300 if (!disabled_types.Has(syncer::FAVICON_IMAGES) && |
| 295 !disabled_types.Has(syncer::FAVICON_TRACKING) && | 301 !disabled_types.Has(syncer::FAVICON_TRACKING) && |
| 296 !history_disabled) { | 302 !history_disabled) { |
| 297 // crbug/384552. We disable error uploading for this data types for now. | 303 // crbug/384552. We disable error uploading for this data types for now. |
| 298 pss->RegisterDataTypeController( | 304 sync_service->RegisterDataTypeController( |
| 299 new UIDataTypeController( | 305 new UIDataTypeController( |
| 300 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), | 306 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), |
| 301 base::Closure(), | 307 base::Closure(), |
| 302 syncer::FAVICON_IMAGES, | 308 syncer::FAVICON_IMAGES, |
| 303 &chrome_sync_client_)); | 309 &chrome_sync_client_)); |
| 304 pss->RegisterDataTypeController( | 310 sync_service->RegisterDataTypeController( |
| 305 new UIDataTypeController( | 311 new UIDataTypeController( |
| 306 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), | 312 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), |
| 307 base::Closure(), | 313 base::Closure(), |
| 308 syncer::FAVICON_TRACKING, | 314 syncer::FAVICON_TRACKING, |
| 309 &chrome_sync_client_)); | 315 &chrome_sync_client_)); |
| 310 } | 316 } |
| 311 | 317 |
| 312 // Password sync is enabled by default. Register unless explicitly | 318 // Password sync is enabled by default. Register unless explicitly |
| 313 // disabled. | 319 // disabled. |
| 314 if (!disabled_types.Has(syncer::PASSWORDS)) { | 320 if (!disabled_types.Has(syncer::PASSWORDS)) { |
| 315 pss->RegisterDataTypeController( | 321 sync_service->RegisterDataTypeController( |
| 316 new PasswordDataTypeController(&chrome_sync_client_, profile_)); | 322 new PasswordDataTypeController(&chrome_sync_client_, profile_)); |
| 317 } | 323 } |
| 318 | 324 |
| 319 if (!disabled_types.Has(syncer::PRIORITY_PREFERENCES)) { | 325 if (!disabled_types.Has(syncer::PRIORITY_PREFERENCES)) { |
| 320 pss->RegisterDataTypeController( | 326 sync_service->RegisterDataTypeController( |
| 321 new UIDataTypeController( | 327 new UIDataTypeController( |
| 322 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), | 328 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), |
| 323 base::Bind(&ChromeReportUnrecoverableError), | 329 base::Bind(&ChromeReportUnrecoverableError), |
| 324 syncer::PRIORITY_PREFERENCES, | 330 syncer::PRIORITY_PREFERENCES, |
| 325 &chrome_sync_client_)); | 331 &chrome_sync_client_)); |
| 326 } | 332 } |
| 327 | 333 |
| 328 // Article sync is disabled by default. Register only if explicitly enabled. | 334 // Article sync is disabled by default. Register only if explicitly enabled. |
| 329 if (dom_distiller::IsEnableSyncArticlesSet()) { | 335 if (dom_distiller::IsEnableSyncArticlesSet()) { |
| 330 pss->RegisterDataTypeController( | 336 sync_service->RegisterDataTypeController( |
| 331 new UIDataTypeController( | 337 new UIDataTypeController( |
| 332 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), | 338 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), |
| 333 base::Bind(&ChromeReportUnrecoverableError), | 339 base::Bind(&ChromeReportUnrecoverableError), |
| 334 syncer::ARTICLES, | 340 syncer::ARTICLES, |
| 335 &chrome_sync_client_)); | 341 &chrome_sync_client_)); |
| 336 } | 342 } |
| 337 | 343 |
| 338 #if defined(ENABLE_SUPERVISED_USERS) | 344 #if defined(ENABLE_SUPERVISED_USERS) |
| 339 pss->RegisterDataTypeController( | 345 sync_service->RegisterDataTypeController( |
| 340 new SupervisedUserSyncDataTypeController( | 346 new SupervisedUserSyncDataTypeController( |
| 341 syncer::SUPERVISED_USER_SETTINGS, | 347 syncer::SUPERVISED_USER_SETTINGS, |
| 342 this, | 348 &chrome_sync_client_, |
| 343 profile_)); | 349 profile_)); |
| 344 pss->RegisterDataTypeController( | 350 sync_service->RegisterDataTypeController( |
| 345 new SupervisedUserSyncDataTypeController( | 351 new SupervisedUserSyncDataTypeController( |
| 346 syncer::SUPERVISED_USER_WHITELISTS, | 352 syncer::SUPERVISED_USER_WHITELISTS, |
| 347 this, | 353 &chrome_sync_client_, |
| 348 profile_)); | 354 profile_)); |
| 349 #endif | 355 #endif |
| 350 } | 356 } |
| 351 | 357 |
| 352 void ProfileSyncComponentsFactoryImpl::RegisterDesktopDataTypes( | 358 void ProfileSyncComponentsFactoryImpl::RegisterDesktopDataTypes( |
| 353 syncer::ModelTypeSet disabled_types, | 359 syncer::ModelTypeSet disabled_types, |
| 354 syncer::ModelTypeSet enabled_types, | 360 syncer::ModelTypeSet enabled_types, |
| 355 ProfileSyncService* pss) { | 361 sync_driver::SyncService* sync_service) { |
| 356 #if defined(ENABLE_EXTENSIONS) | 362 #if defined(ENABLE_EXTENSIONS) |
| 357 // App sync is enabled by default. Register unless explicitly | 363 // App sync is enabled by default. Register unless explicitly |
| 358 // disabled. | 364 // disabled. |
| 359 if (!disabled_types.Has(syncer::APPS)) { | 365 if (!disabled_types.Has(syncer::APPS)) { |
| 360 pss->RegisterDataTypeController(new ExtensionDataTypeController( | 366 sync_service->RegisterDataTypeController(new ExtensionDataTypeController( |
| 361 syncer::APPS, &chrome_sync_client_, profile_)); | 367 syncer::APPS, &chrome_sync_client_, profile_)); |
| 362 } | 368 } |
| 363 | 369 |
| 364 // Extension sync is enabled by default. Register unless explicitly | 370 // Extension sync is enabled by default. Register unless explicitly |
| 365 // disabled. | 371 // disabled. |
| 366 if (!disabled_types.Has(syncer::EXTENSIONS)) { | 372 if (!disabled_types.Has(syncer::EXTENSIONS)) { |
| 367 pss->RegisterDataTypeController(new ExtensionDataTypeController( | 373 sync_service->RegisterDataTypeController(new ExtensionDataTypeController( |
| 368 syncer::EXTENSIONS, &chrome_sync_client_, profile_)); | 374 syncer::EXTENSIONS, &chrome_sync_client_, profile_)); |
| 369 } | 375 } |
| 370 #endif | 376 #endif |
| 371 | 377 |
| 372 // Preference sync is enabled by default. Register unless explicitly | 378 // Preference sync is enabled by default. Register unless explicitly |
| 373 // disabled. | 379 // disabled. |
| 374 if (!disabled_types.Has(syncer::PREFERENCES)) { | 380 if (!disabled_types.Has(syncer::PREFERENCES)) { |
| 375 pss->RegisterDataTypeController( | 381 sync_service->RegisterDataTypeController( |
| 376 new UIDataTypeController( | 382 new UIDataTypeController( |
| 377 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), | 383 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), |
| 378 base::Bind(&ChromeReportUnrecoverableError), | 384 base::Bind(&ChromeReportUnrecoverableError), |
| 379 syncer::PREFERENCES, | 385 syncer::PREFERENCES, |
| 380 &chrome_sync_client_)); | 386 &chrome_sync_client_)); |
| 381 } | 387 } |
| 382 | 388 |
| 383 #if defined(ENABLE_THEMES) | 389 #if defined(ENABLE_THEMES) |
| 384 // Theme sync is enabled by default. Register unless explicitly disabled. | 390 // Theme sync is enabled by default. Register unless explicitly disabled. |
| 385 if (!disabled_types.Has(syncer::THEMES)) { | 391 if (!disabled_types.Has(syncer::THEMES)) { |
| 386 pss->RegisterDataTypeController( | 392 sync_service->RegisterDataTypeController( |
| 387 new ThemeDataTypeController(&chrome_sync_client_, profile_)); | 393 new ThemeDataTypeController(&chrome_sync_client_, profile_)); |
| 388 } | 394 } |
| 389 #endif | 395 #endif |
| 390 | 396 |
| 391 // Search Engine sync is enabled by default. Register unless explicitly | 397 // Search Engine sync is enabled by default. Register unless explicitly |
| 392 // disabled. | 398 // disabled. |
| 393 if (!disabled_types.Has(syncer::SEARCH_ENGINES)) { | 399 if (!disabled_types.Has(syncer::SEARCH_ENGINES)) { |
| 394 pss->RegisterDataTypeController( | 400 sync_service->RegisterDataTypeController( |
| 395 new SearchEngineDataTypeController(&chrome_sync_client_, profile_)); | 401 new SearchEngineDataTypeController(&chrome_sync_client_, profile_)); |
| 396 } | 402 } |
| 397 | 403 |
| 398 #if defined(ENABLE_EXTENSIONS) | 404 #if defined(ENABLE_EXTENSIONS) |
| 399 // Extension setting sync is enabled by default. Register unless explicitly | 405 // Extension setting sync is enabled by default. Register unless explicitly |
| 400 // disabled. | 406 // disabled. |
| 401 if (!disabled_types.Has(syncer::EXTENSION_SETTINGS)) { | 407 if (!disabled_types.Has(syncer::EXTENSION_SETTINGS)) { |
| 402 pss->RegisterDataTypeController(new ExtensionSettingDataTypeController( | 408 sync_service->RegisterDataTypeController( |
| 403 syncer::EXTENSION_SETTINGS, &chrome_sync_client_, profile_)); | 409 new ExtensionSettingDataTypeController(syncer::EXTENSION_SETTINGS, |
| 410 &chrome_sync_client_, profile_)); | |
| 404 } | 411 } |
| 405 | 412 |
| 406 // App setting sync is enabled by default. Register unless explicitly | 413 // App setting sync is enabled by default. Register unless explicitly |
| 407 // disabled. | 414 // disabled. |
| 408 if (!disabled_types.Has(syncer::APP_SETTINGS)) { | 415 if (!disabled_types.Has(syncer::APP_SETTINGS)) { |
| 409 pss->RegisterDataTypeController(new ExtensionSettingDataTypeController( | 416 sync_service->RegisterDataTypeController( |
| 410 syncer::APP_SETTINGS, &chrome_sync_client_, profile_)); | 417 new ExtensionSettingDataTypeController(syncer::APP_SETTINGS, |
| 418 &chrome_sync_client_, profile_)); | |
| 411 } | 419 } |
| 412 #endif | 420 #endif |
| 413 | 421 |
| 414 #if defined(ENABLE_APP_LIST) | 422 #if defined(ENABLE_APP_LIST) |
| 415 if (app_list::switches::IsAppListSyncEnabled()) { | 423 if (app_list::switches::IsAppListSyncEnabled()) { |
| 416 pss->RegisterDataTypeController( | 424 sync_service->RegisterDataTypeController( |
| 417 new UIDataTypeController( | 425 new UIDataTypeController( |
| 418 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), | 426 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), |
| 419 base::Bind(&ChromeReportUnrecoverableError), | 427 base::Bind(&ChromeReportUnrecoverableError), |
| 420 syncer::APP_LIST, | 428 syncer::APP_LIST, |
| 421 &chrome_sync_client_)); | 429 &chrome_sync_client_)); |
| 422 } | 430 } |
| 423 #endif | 431 #endif |
| 424 | 432 |
| 425 #if defined(OS_LINUX) || defined(OS_WIN) || defined(OS_CHROMEOS) | 433 #if defined(OS_LINUX) || defined(OS_WIN) || defined(OS_CHROMEOS) |
| 426 // Dictionary sync is enabled by default. | 434 // Dictionary sync is enabled by default. |
| 427 if (!disabled_types.Has(syncer::DICTIONARY)) { | 435 if (!disabled_types.Has(syncer::DICTIONARY)) { |
| 428 pss->RegisterDataTypeController( | 436 sync_service->RegisterDataTypeController( |
| 429 new UIDataTypeController( | 437 new UIDataTypeController( |
| 430 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), | 438 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), |
| 431 base::Bind(&ChromeReportUnrecoverableError), | 439 base::Bind(&ChromeReportUnrecoverableError), |
| 432 syncer::DICTIONARY, | 440 syncer::DICTIONARY, |
| 433 &chrome_sync_client_)); | 441 &chrome_sync_client_)); |
| 434 } | 442 } |
| 435 #endif | 443 #endif |
| 436 | 444 |
| 437 #if defined(ENABLE_SUPERVISED_USERS) | 445 #if defined(ENABLE_SUPERVISED_USERS) |
| 438 pss->RegisterDataTypeController( | 446 sync_service->RegisterDataTypeController( |
| 439 new SupervisedUserSyncDataTypeController( | 447 new SupervisedUserSyncDataTypeController( |
| 440 syncer::SUPERVISED_USERS, | 448 syncer::SUPERVISED_USERS, |
| 441 this, | 449 &chrome_sync_client_, |
| 442 profile_)); | 450 profile_)); |
| 443 pss->RegisterDataTypeController( | 451 sync_service->RegisterDataTypeController( |
| 444 new SupervisedUserSyncDataTypeController( | 452 new SupervisedUserSyncDataTypeController( |
| 445 syncer::SUPERVISED_USER_SHARED_SETTINGS, | 453 syncer::SUPERVISED_USER_SHARED_SETTINGS, |
| 446 this, | 454 &chrome_sync_client_, |
| 447 profile_)); | 455 profile_)); |
| 448 #endif | 456 #endif |
| 449 | 457 |
| 450 #if defined(OS_CHROMEOS) | 458 #if defined(OS_CHROMEOS) |
| 451 if (command_line_->HasSwitch(switches::kEnableWifiCredentialSync) && | 459 if (command_line_->HasSwitch(switches::kEnableWifiCredentialSync) && |
| 452 !disabled_types.Has(syncer::WIFI_CREDENTIALS)) { | 460 !disabled_types.Has(syncer::WIFI_CREDENTIALS)) { |
| 453 pss->RegisterDataTypeController( | 461 sync_service->RegisterDataTypeController( |
| 454 new UIDataTypeController( | 462 new UIDataTypeController( |
| 455 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), | 463 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), |
| 456 base::Bind(&ChromeReportUnrecoverableError), | 464 base::Bind(&ChromeReportUnrecoverableError), |
| 457 syncer::WIFI_CREDENTIALS, | 465 syncer::WIFI_CREDENTIALS, |
| 458 &chrome_sync_client_)); | 466 &chrome_sync_client_)); |
| 459 } | 467 } |
| 460 #endif | 468 #endif |
| 461 } | 469 } |
| 462 | 470 |
| 463 DataTypeManager* ProfileSyncComponentsFactoryImpl::CreateDataTypeManager( | 471 DataTypeManager* ProfileSyncComponentsFactoryImpl::CreateDataTypeManager( |
| 464 const syncer::WeakHandle<syncer::DataTypeDebugInfoListener>& | 472 const syncer::WeakHandle<syncer::DataTypeDebugInfoListener>& |
| 465 debug_info_listener, | 473 debug_info_listener, |
| 466 const DataTypeController::TypeMap* controllers, | 474 const DataTypeController::TypeMap* controllers, |
| 467 const sync_driver::DataTypeEncryptionHandler* encryption_handler, | 475 const sync_driver::DataTypeEncryptionHandler* encryption_handler, |
| 468 SyncBackendHost* backend, | 476 SyncBackendHost* backend, |
| 469 DataTypeManagerObserver* observer) { | 477 DataTypeManagerObserver* observer) { |
| 470 return new DataTypeManagerImpl(base::Bind(ChromeReportUnrecoverableError), | 478 return new DataTypeManagerImpl(base::Bind(ChromeReportUnrecoverableError), |
| 471 debug_info_listener, | 479 debug_info_listener, |
| 472 controllers, | 480 controllers, |
| 473 encryption_handler, | 481 encryption_handler, |
| 474 backend, | 482 backend, |
| 475 observer); | 483 observer); |
| 476 } | 484 } |
| 477 | 485 |
| 478 browser_sync::SyncBackendHost* | 486 browser_sync::SyncBackendHost* |
| 479 ProfileSyncComponentsFactoryImpl::CreateSyncBackendHost( | 487 ProfileSyncComponentsFactoryImpl::CreateSyncBackendHost( |
| 480 const std::string& name, | 488 const std::string& name, |
| 481 Profile* profile, | |
| 482 invalidation::InvalidationService* invalidator, | 489 invalidation::InvalidationService* invalidator, |
| 483 const base::WeakPtr<sync_driver::SyncPrefs>& sync_prefs, | 490 const base::WeakPtr<sync_driver::SyncPrefs>& sync_prefs, |
| 484 const base::FilePath& sync_folder) { | 491 const base::FilePath& sync_folder) { |
| 485 return new browser_sync::SyncBackendHostImpl(name, profile, invalidator, | 492 return new browser_sync::SyncBackendHostImpl(name, profile_, invalidator, |
| 486 sync_prefs, sync_folder); | 493 sync_prefs, sync_folder); |
| 487 } | 494 } |
| 488 | 495 |
| 489 scoped_ptr<sync_driver::LocalDeviceInfoProvider> | 496 scoped_ptr<sync_driver::LocalDeviceInfoProvider> |
| 490 ProfileSyncComponentsFactoryImpl::CreateLocalDeviceInfoProvider() { | 497 ProfileSyncComponentsFactoryImpl::CreateLocalDeviceInfoProvider() { |
| 491 return scoped_ptr<sync_driver::LocalDeviceInfoProvider>( | 498 return scoped_ptr<sync_driver::LocalDeviceInfoProvider>( |
| 492 new browser_sync::LocalDeviceInfoProviderImpl()); | 499 new browser_sync::LocalDeviceInfoProviderImpl()); |
| 493 } | 500 } |
| 494 | 501 |
| 495 class TokenServiceProvider | 502 class TokenServiceProvider |
| (...skipping 26 matching lines...) Expand all Loading... | |
| 522 | 529 |
| 523 scoped_refptr<base::SingleThreadTaskRunner> | 530 scoped_refptr<base::SingleThreadTaskRunner> |
| 524 TokenServiceProvider::GetTokenServiceTaskRunner() { | 531 TokenServiceProvider::GetTokenServiceTaskRunner() { |
| 525 return task_runner_; | 532 return task_runner_; |
| 526 } | 533 } |
| 527 | 534 |
| 528 OAuth2TokenService* TokenServiceProvider::GetTokenService() { | 535 OAuth2TokenService* TokenServiceProvider::GetTokenService() { |
| 529 return token_service_; | 536 return token_service_; |
| 530 } | 537 } |
| 531 | 538 |
| 532 base::WeakPtr<syncer::SyncableService> | |
| 533 ProfileSyncComponentsFactoryImpl::GetSyncableServiceForType( | |
| 534 syncer::ModelType type) { | |
| 535 return chrome_sync_client_.GetSyncableServiceForType(type); | |
| 536 } | |
| 537 | |
| 538 scoped_ptr<syncer::AttachmentService> | 539 scoped_ptr<syncer::AttachmentService> |
| 539 ProfileSyncComponentsFactoryImpl::CreateAttachmentService( | 540 ProfileSyncComponentsFactoryImpl::CreateAttachmentService( |
| 540 scoped_ptr<syncer::AttachmentStoreForSync> attachment_store, | 541 scoped_ptr<syncer::AttachmentStoreForSync> attachment_store, |
| 541 const syncer::UserShare& user_share, | 542 const syncer::UserShare& user_share, |
| 542 const std::string& store_birthday, | 543 const std::string& store_birthday, |
| 543 syncer::ModelType model_type, | 544 syncer::ModelType model_type, |
| 544 syncer::AttachmentService::Delegate* delegate) { | 545 syncer::AttachmentService::Delegate* delegate) { |
| 545 scoped_ptr<syncer::AttachmentUploader> attachment_uploader; | 546 scoped_ptr<syncer::AttachmentUploader> attachment_uploader; |
| 546 scoped_ptr<syncer::AttachmentDownloader> attachment_downloader; | 547 scoped_ptr<syncer::AttachmentDownloader> attachment_downloader; |
| 547 // Only construct an AttachmentUploader and AttachmentDownload if we have sync | 548 // Only construct an AttachmentUploader and AttachmentDownload if we have sync |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 582 base::TimeDelta::FromMinutes(30); | 583 base::TimeDelta::FromMinutes(30); |
| 583 const base::TimeDelta max_backoff_delay = base::TimeDelta::FromHours(4); | 584 const base::TimeDelta max_backoff_delay = base::TimeDelta::FromHours(4); |
| 584 scoped_ptr<syncer::AttachmentService> attachment_service( | 585 scoped_ptr<syncer::AttachmentService> attachment_service( |
| 585 new syncer::AttachmentServiceImpl( | 586 new syncer::AttachmentServiceImpl( |
| 586 attachment_store.Pass(), attachment_uploader.Pass(), | 587 attachment_store.Pass(), attachment_uploader.Pass(), |
| 587 attachment_downloader.Pass(), delegate, initial_backoff_delay, | 588 attachment_downloader.Pass(), delegate, initial_backoff_delay, |
| 588 max_backoff_delay)); | 589 max_backoff_delay)); |
| 589 return attachment_service.Pass(); | 590 return attachment_service.Pass(); |
| 590 } | 591 } |
| 591 | 592 |
| 592 ProfileSyncComponentsFactory::SyncComponents | 593 sync_driver::SyncApiComponentFactory::SyncComponents |
| 593 ProfileSyncComponentsFactoryImpl::CreateBookmarkSyncComponents( | 594 ProfileSyncComponentsFactoryImpl::CreateBookmarkSyncComponents( |
| 594 ProfileSyncService* profile_sync_service, | 595 sync_driver::SyncService* sync_service, |
| 595 sync_driver::DataTypeErrorHandler* error_handler) { | 596 sync_driver::DataTypeErrorHandler* error_handler) { |
| 596 BookmarkModel* bookmark_model = | 597 BookmarkModel* bookmark_model = |
| 597 BookmarkModelFactory::GetForProfile(profile_sync_service->profile()); | 598 BookmarkModelFactory::GetForProfile(profile_); |
| 598 syncer::UserShare* user_share = profile_sync_service->GetUserShare(); | 599 syncer::UserShare* user_share = sync_service->GetUserShare(); |
| 599 // TODO(akalin): We may want to propagate this switch up eventually. | 600 // TODO(akalin): We may want to propagate this switch up eventually. |
| 600 #if defined(OS_ANDROID) | 601 #if defined(OS_ANDROID) |
| 601 const bool kExpectMobileBookmarksFolder = true; | 602 const bool kExpectMobileBookmarksFolder = true; |
| 602 #else | 603 #else |
| 603 const bool kExpectMobileBookmarksFolder = false; | 604 const bool kExpectMobileBookmarksFolder = false; |
| 604 #endif | 605 #endif |
| 605 BookmarkModelAssociator* model_associator = | 606 BookmarkModelAssociator* model_associator = |
| 606 new BookmarkModelAssociator(bookmark_model, | 607 new BookmarkModelAssociator(bookmark_model, |
| 607 profile_sync_service->profile(), | 608 profile_, |
| 608 user_share, | 609 user_share, |
| 609 error_handler, | 610 error_handler, |
| 610 kExpectMobileBookmarksFolder); | 611 kExpectMobileBookmarksFolder); |
| 611 BookmarkChangeProcessor* change_processor = | 612 BookmarkChangeProcessor* change_processor = |
| 612 new BookmarkChangeProcessor(profile_sync_service->profile(), | 613 new BookmarkChangeProcessor(profile_, |
| 613 model_associator, | 614 model_associator, |
| 614 error_handler); | 615 error_handler); |
| 615 return SyncComponents(model_associator, change_processor); | 616 return SyncComponents(model_associator, change_processor); |
| 616 } | 617 } |
| 617 | 618 |
| 618 ProfileSyncComponentsFactory::SyncComponents | 619 sync_driver::SyncApiComponentFactory::SyncComponents |
| 619 ProfileSyncComponentsFactoryImpl::CreateTypedUrlSyncComponents( | 620 ProfileSyncComponentsFactoryImpl::CreateTypedUrlSyncComponents( |
| 620 ProfileSyncService* profile_sync_service, | 621 sync_driver::SyncService* sync_service, |
| 621 history::HistoryBackend* history_backend, | 622 history::HistoryBackend* history_backend, |
| 622 sync_driver::DataTypeErrorHandler* error_handler) { | 623 sync_driver::DataTypeErrorHandler* error_handler) { |
| 624 // TODO(zea): Once TypedURLs are converted to SyncableService, remove | |
| 625 // |sync_service_| member, and make GetSyncService require it be called on | |
| 626 // the UI thread. | |
| 623 TypedUrlModelAssociator* model_associator = | 627 TypedUrlModelAssociator* model_associator = |
| 624 new TypedUrlModelAssociator(profile_sync_service, | 628 new TypedUrlModelAssociator(sync_service, |
| 625 history_backend, | 629 history_backend, |
| 626 error_handler); | 630 error_handler); |
| 627 TypedUrlChangeProcessor* change_processor = | 631 TypedUrlChangeProcessor* change_processor = |
| 628 new TypedUrlChangeProcessor(profile_, | 632 new TypedUrlChangeProcessor(profile_, |
| 629 model_associator, | 633 model_associator, |
| 630 history_backend, | 634 history_backend, |
| 631 error_handler); | 635 error_handler); |
| 632 return SyncComponents(model_associator, change_processor); | 636 return SyncComponents(model_associator, change_processor); |
| 633 } | 637 } |
| OLD | NEW |