| 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_service.h" | 5 #include "chrome/browser/sync/profile_sync_service.h" |
| 6 | 6 |
| 7 #include <cstddef> | 7 #include <cstddef> |
| 8 #include <map> | 8 #include <map> |
| 9 #include <set> | 9 #include <set> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 1495 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1506 const syncer::BaseTransaction* trans) const { | 1506 const syncer::BaseTransaction* trans) const { |
| 1507 return backend_.get() && backend_->IsCryptographerReady(trans); | 1507 return backend_.get() && backend_->IsCryptographerReady(trans); |
| 1508 } | 1508 } |
| 1509 | 1509 |
| 1510 SyncBackendHost* ProfileSyncService::GetBackendForTest() { | 1510 SyncBackendHost* ProfileSyncService::GetBackendForTest() { |
| 1511 // We don't check |backend_initialized_|; we assume the test class | 1511 // We don't check |backend_initialized_|; we assume the test class |
| 1512 // knows what it's doing. | 1512 // knows what it's doing. |
| 1513 return backend_.get(); | 1513 return backend_.get(); |
| 1514 } | 1514 } |
| 1515 | 1515 |
| 1516 void ProfileSyncService::ConfigurePriorityDataTypes() { |
| 1517 const syncer::ModelTypeSet priority_types = |
| 1518 Intersection(GetPreferredDataTypes(), syncer::PriorityUserTypes()); |
| 1519 if (!priority_types.Empty()) { |
| 1520 const syncer::ConfigureReason reason = HasSyncSetupCompleted() ? |
| 1521 syncer::CONFIGURE_REASON_RECONFIGURATION : |
| 1522 syncer::CONFIGURE_REASON_NEW_CLIENT; |
| 1523 data_type_manager_->Configure(priority_types, reason); |
| 1524 } |
| 1525 } |
| 1526 |
| 1516 void ProfileSyncService::ConfigureDataTypeManager() { | 1527 void ProfileSyncService::ConfigureDataTypeManager() { |
| 1517 // Don't configure datatypes if the setup UI is still on the screen - this | 1528 // Don't configure datatypes if the setup UI is still on the screen - this |
| 1518 // is to help multi-screen setting UIs (like iOS) where they don't want to | 1529 // is to help multi-screen setting UIs (like iOS) where they don't want to |
| 1519 // start syncing data until the user is done configuring encryption options, | 1530 // start syncing data until the user is done configuring encryption options, |
| 1520 // etc. ReconfigureDatatypeManager() will get called again once the UI calls | 1531 // etc. ReconfigureDatatypeManager() will get called again once the UI calls |
| 1521 // SetSetupInProgress(false). | 1532 // SetSetupInProgress(false). |
| 1522 if (setup_in_progress_) | 1533 if (setup_in_progress_) |
| 1523 return; | 1534 return; |
| 1524 | 1535 |
| 1525 bool restart = false; | 1536 bool restart = false; |
| 1526 if (!data_type_manager_.get()) { | 1537 if (!data_type_manager_.get()) { |
| 1527 restart = true; | 1538 restart = true; |
| 1528 data_type_manager_.reset( | 1539 data_type_manager_.reset( |
| 1529 factory_->CreateDataTypeManager(debug_info_listener_, | 1540 factory_->CreateDataTypeManager(debug_info_listener_, |
| 1530 backend_.get(), | 1541 backend_.get(), |
| 1531 &data_type_controllers_, | 1542 &data_type_controllers_, |
| 1532 this, | 1543 this, |
| 1533 &failed_datatypes_handler_)); | 1544 &failed_datatypes_handler_)); |
| 1534 | 1545 |
| 1535 // We create the migrator at the same time. | 1546 // We create the migrator at the same time. |
| 1536 migrator_.reset( | 1547 migrator_.reset( |
| 1537 new browser_sync::BackendMigrator( | 1548 new browser_sync::BackendMigrator( |
| 1538 profile_->GetDebugName(), GetUserShare(), | 1549 profile_->GetDebugName(), GetUserShare(), |
| 1539 this, data_type_manager_.get(), | 1550 this, data_type_manager_.get(), |
| 1540 base::Bind(&ProfileSyncService::StartSyncingWithServer, | 1551 base::Bind(&ProfileSyncService::StartSyncingWithServer, |
| 1541 base::Unretained(this)))); | 1552 base::Unretained(this)))); |
| 1542 } | 1553 } |
| 1554 ConfigurePriorityDataTypes(); |
| 1543 | 1555 |
| 1544 #if defined(OS_ANDROID) | 1556 #if defined(OS_ANDROID) |
| 1545 if (GetPreferredDataTypes().Has(syncer::PASSWORDS) && | 1557 if (GetPreferredDataTypes().Has(syncer::PASSWORDS) && |
| 1546 !ShouldEnablePasswordSyncForAndroid()) { | 1558 !ShouldEnablePasswordSyncForAndroid()) { |
| 1547 DisableBrokenDatatype(syncer::PASSWORDS, FROM_HERE, "Not supported."); | 1559 DisableBrokenDatatype(syncer::PASSWORDS, FROM_HERE, "Not supported."); |
| 1548 } | 1560 } |
| 1549 #endif | 1561 #endif |
| 1550 | 1562 |
| 1551 const syncer::ModelTypeSet types = GetPreferredDataTypes(); | 1563 const syncer::ModelTypeSet types = GetPreferredDataTypes(); |
| 1552 if (IsPassphraseRequiredForDecryption()) { | 1564 if (IsPassphraseRequiredForDecryption()) { |
| (...skipping 461 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2014 // See http://stackoverflow.com/questions/6224121/is-new-this-myclass-undefine
d-behaviour-after-directly-calling-the-destru. | 2026 // See http://stackoverflow.com/questions/6224121/is-new-this-myclass-undefine
d-behaviour-after-directly-calling-the-destru. |
| 2015 ProfileSyncService* old_this = this; | 2027 ProfileSyncService* old_this = this; |
| 2016 this->~ProfileSyncService(); | 2028 this->~ProfileSyncService(); |
| 2017 new(old_this) ProfileSyncService( | 2029 new(old_this) ProfileSyncService( |
| 2018 new ProfileSyncComponentsFactoryImpl(profile, | 2030 new ProfileSyncComponentsFactoryImpl(profile, |
| 2019 CommandLine::ForCurrentProcess()), | 2031 CommandLine::ForCurrentProcess()), |
| 2020 profile, | 2032 profile, |
| 2021 signin, | 2033 signin, |
| 2022 behavior); | 2034 behavior); |
| 2023 } | 2035 } |
| OLD | NEW |