diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-07-17 13:57:45 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-07-19 13:44:40 +0000 |
commit | 6ec7b8da05d21a3878bd21c691b41e675d74bb1c (patch) | |
tree | b87f250bc19413750b9bb9cdbf2da20ef5014820 /chromium/components/browser_sync | |
parent | ec02ee4181c49b61fce1c8fb99292dbb8139cc90 (diff) | |
download | qtwebengine-chromium-6ec7b8da05d21a3878bd21c691b41e675d74bb1c.tar.gz |
BASELINE: Update Chromium to 60.0.3112.70
Change-Id: I9911c2280a014d4632f254857876a395d4baed2d
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'chromium/components/browser_sync')
9 files changed, 129 insertions, 141 deletions
diff --git a/chromium/components/browser_sync/profile_sync_components_factory_impl.cc b/chromium/components/browser_sync/profile_sync_components_factory_impl.cc index 445b20bb221..5f47d6185b4 100644 --- a/chromium/components/browser_sync/profile_sync_components_factory_impl.cc +++ b/chromium/components/browser_sync/profile_sync_components_factory_impl.cc @@ -9,6 +9,7 @@ #include "base/feature_list.h" #include "base/memory/ptr_util.h" #include "base/memory/ref_counted.h" +#include "base/single_thread_task_runner.h" #include "build/build_config.h" #include "components/autofill/core/browser/autofill_wallet_data_type_controller.h" #include "components/autofill/core/browser/webdata/autocomplete_sync_bridge.h" @@ -49,6 +50,7 @@ #include "google_apis/gaia/oauth2_token_service_request.h" #include "net/url_request/url_request_context_getter.h" +using base::FeatureList; using bookmarks::BookmarkModel; using sync_bookmarks::BookmarkChangeProcessor; using sync_bookmarks::BookmarkDataTypeController; @@ -139,7 +141,7 @@ void ProfileSyncComponentsFactoryImpl::RegisterCommonDataTypes( base::Bind(&syncer::ReportUnrecoverableError, channel_); // TODO(stanisc): can DEVICE_INFO be one of disabled datatypes? - if (base::FeatureList::IsEnabled(switches::kSyncUSSDeviceInfo)) { + if (FeatureList::IsEnabled(switches::kSyncUSSDeviceInfo)) { // Use an error callback that always uploads a stacktrace if it can to help // get USS as stable as possible. sync_service->RegisterDataTypeController( @@ -155,7 +157,7 @@ void ProfileSyncComponentsFactoryImpl::RegisterCommonDataTypes( // Autocomplete sync is enabled by default. Register unless explicitly // disabled. if (!disabled_types.Has(syncer::AUTOFILL)) { - if (base::FeatureList::IsEnabled(switches::kSyncUSSAutocomplete)) { + if (FeatureList::IsEnabled(switches::kSyncUSSAutocomplete)) { sync_service->RegisterDataTypeController( base::MakeUnique<autofill::WebDataModelTypeController>( syncer::AUTOFILL, sync_client_, db_thread_, web_data_service_, @@ -308,6 +310,13 @@ void ProfileSyncComponentsFactoryImpl::RegisterCommonDataTypes( base::MakeUnique<ModelTypeController>(syncer::READING_LIST, sync_client_, ui_thread_)); } + + if (!disabled_types.Has(syncer::USER_EVENTS) && + FeatureList::IsEnabled(switches::kSyncUserEvents)) { + sync_service->RegisterDataTypeController( + base::MakeUnique<ModelTypeController>(syncer::USER_EVENTS, sync_client_, + ui_thread_)); + } } DataTypeManager* ProfileSyncComponentsFactoryImpl::CreateDataTypeManager( diff --git a/chromium/components/browser_sync/profile_sync_service.cc b/chromium/components/browser_sync/profile_sync_service.cc index 5eb7949df19..cf5f2af870f 100644 --- a/chromium/components/browser_sync/profile_sync_service.cc +++ b/chromium/components/browser_sync/profile_sync_service.cc @@ -242,12 +242,8 @@ void ProfileSyncService::Initialize() { syncer::ModelTypeSet(syncer::SESSIONS))); if (base::FeatureList::IsEnabled(switches::kSyncUSSDeviceInfo)) { - // TODO(skym): Stop creating leveldb files when signed out. - // TODO(skym): Verify using AsUTF8Unsafe is okay here. Should work as long - // as the Local State file is guaranteed to be UTF-8. const syncer::ModelTypeStoreFactory& store_factory = - GetModelTypeStoreFactory(syncer::DEVICE_INFO, base_directory_, - sync_client_->GetBlockingPool()); + GetModelTypeStoreFactory(syncer::DEVICE_INFO, base_directory_); device_info_sync_bridge_ = base::MakeUnique<DeviceInfoSyncBridge>( local_device_.get(), store_factory, base::BindRepeating( @@ -1681,18 +1677,12 @@ void ProfileSyncService::SetPlatformSyncAllowedProvider( // static syncer::ModelTypeStoreFactory ProfileSyncService::GetModelTypeStoreFactory( ModelType type, - const base::FilePath& base_path, - base::SequencedWorkerPool* blocking_pool) { + const base::FilePath& base_path) { // TODO(skym): Verify using AsUTF8Unsafe is okay here. Should work as long // as the Local State file is guaranteed to be UTF-8. - std::string path = FormatSharedModelTypeStorePath(base_path).AsUTF8Unsafe(); - base::SequencedWorkerPool::SequenceToken sequence_token = - blocking_pool->GetNamedSequenceToken(path); - scoped_refptr<base::SequencedTaskRunner> task_runner = - blocking_pool->GetSequencedTaskRunnerWithShutdownBehavior( - blocking_pool->GetNamedSequenceToken(path), - base::SequencedWorkerPool::SKIP_ON_SHUTDOWN); - return base::Bind(&ModelTypeStore::CreateStore, type, path, task_runner); + const std::string path = + FormatSharedModelTypeStorePath(base_path).AsUTF8Unsafe(); + return base::Bind(&ModelTypeStore::CreateStore, type, path); } void ProfileSyncService::ConfigureDataTypeManager() { @@ -1783,41 +1773,33 @@ std::unique_ptr<base::Value> ProfileSyncService::GetTypeStatusMap() { return std::move(result); } - DataTypeStatusTable::TypeErrorMap error_map = - data_type_status_table_.GetAllErrors(); - ModelTypeSet active_types; - ModelTypeSet passive_types; - ModelSafeRoutingInfo routing_info; - engine_->GetModelSafeRoutingInfo(&routing_info); - for (ModelSafeRoutingInfo::const_iterator it = routing_info.begin(); - it != routing_info.end(); ++it) { - if (it->second == syncer::GROUP_PASSIVE) { - passive_types.Put(it->first); - } else { - active_types.Put(it->first); - } - } - SyncEngine::Status detailed_status = engine_->GetDetailedStatus(); - ModelTypeSet& throttled_types(detailed_status.throttled_types); - ModelTypeSet& backed_off_types(detailed_status.backed_off_types); - ModelTypeSet registered = GetRegisteredDataTypes(); + const ModelTypeSet& throttled_types(detailed_status.throttled_types); + const ModelTypeSet& backed_off_types(detailed_status.backed_off_types); + std::unique_ptr<base::DictionaryValue> type_status_header( new base::DictionaryValue()); - - type_status_header->SetString("name", "Model Type"); type_status_header->SetString("status", "header"); - type_status_header->SetString("value", "Group Type"); + type_status_header->SetString("name", "Model Type"); type_status_header->SetString("num_entries", "Total Entries"); type_status_header->SetString("num_live", "Live Entries"); + type_status_header->SetString("message", "Message"); + type_status_header->SetString("state", "State"); + type_status_header->SetString("group_type", "Group Type"); result->Append(std::move(type_status_header)); - std::unique_ptr<base::DictionaryValue> type_status; + const DataTypeStatusTable::TypeErrorMap error_map = + data_type_status_table_.GetAllErrors(); + ModelSafeRoutingInfo routing_info; + engine_->GetModelSafeRoutingInfo(&routing_info); + const ModelTypeSet registered = GetRegisteredDataTypes(); for (ModelTypeSet::Iterator it = registered.First(); it.Good(); it.Inc()) { ModelType type = it.Get(); - type_status = base::MakeUnique<base::DictionaryValue>(); + auto type_status = base::MakeUnique<base::DictionaryValue>(); type_status->SetString("name", ModelTypeToString(type)); + type_status->SetString("group_type", + ModelSafeGroupToString(routing_info[type])); if (error_map.find(type) != error_map.end()) { const syncer::SyncError& error = error_map.find(type)->second; @@ -1826,44 +1808,26 @@ std::unique_ptr<base::Value> ProfileSyncService::GetTypeStatusMap() { case syncer::SyncError::SYNC_ERROR_SEVERITY_ERROR: type_status->SetString("status", "error"); type_status->SetString( - "value", "Error: " + error.location().ToString() + ", " + - error.GetMessagePrefix() + error.message()); + "message", "Error: " + error.location().ToString() + ", " + + error.GetMessagePrefix() + error.message()); break; case syncer::SyncError::SYNC_ERROR_SEVERITY_INFO: type_status->SetString("status", "disabled"); - type_status->SetString("value", error.message()); - break; - default: - NOTREACHED() << "Unexpected error severity."; + type_status->SetString("message", error.message()); break; } - } else if (syncer::IsProxyType(type) && passive_types.Has(type)) { - // Show a proxy type in "ok" state unless it is disabled by user. - DCHECK(!throttled_types.Has(type)); - type_status->SetString("status", "ok"); - type_status->SetString("value", "Passive"); - } else if (throttled_types.Has(type) && passive_types.Has(type)) { - type_status->SetString("status", "warning"); - type_status->SetString("value", "Passive, Throttled"); - } else if (backed_off_types.Has(type) && passive_types.Has(type)) { - type_status->SetString("status", "warning"); - type_status->SetString("value", "Passive, Backed off"); - } else if (passive_types.Has(type)) { - type_status->SetString("status", "warning"); - type_status->SetString("value", "Passive"); } else if (throttled_types.Has(type)) { type_status->SetString("status", "warning"); - type_status->SetString("value", "Throttled"); + type_status->SetString("message", " Throttled"); } else if (backed_off_types.Has(type)) { type_status->SetString("status", "warning"); - type_status->SetString("value", "Backed off"); - } else if (active_types.Has(type)) { + type_status->SetString("message", "Backed off"); + } else if (routing_info.find(type) != routing_info.end()) { type_status->SetString("status", "ok"); - type_status->SetString( - "value", "Active: " + ModelSafeGroupToString(routing_info[type])); + type_status->SetString("message", ""); } else { type_status->SetString("status", "warning"); - type_status->SetString("value", "Disabled by User"); + type_status->SetString("message", "Disabled by User"); } const auto& dtc_iter = data_type_controllers_.find(type); @@ -1874,6 +1838,8 @@ std::unique_ptr<base::Value> ProfileSyncService::GetTypeStatusMap() { dtc_iter->second->GetStatusCounters(BindToCurrentThread( base::Bind(&ProfileSyncService::OnDatatypeStatusCounterUpdated, base::Unretained(this)))); + type_status->SetString("state", DataTypeController::StateToString( + dtc_iter->second->state())); } result->Append(std::move(type_status)); @@ -2223,14 +2189,9 @@ void ProfileSyncService::RequestStop(SyncStopDataFate data_fate) { bool ProfileSyncService::IsSyncRequested() const { DCHECK(thread_checker_.CalledOnValidThread()); - return sync_prefs_.IsSyncRequested(); -} - -SigninManagerBase* ProfileSyncService::signin() const { - DCHECK(thread_checker_.CalledOnValidThread()); - if (!signin_) - return nullptr; - return signin_->GetOriginal(); + // When local sync is on sync should be considered requsted or otherwise it + // will not resume after the policy or the flag has been removed. + return sync_prefs_.IsSyncRequested() || sync_prefs_.IsLocalSyncEnabled(); } void ProfileSyncService::RequestStart() { diff --git a/chromium/components/browser_sync/profile_sync_service.h b/chromium/components/browser_sync/profile_sync_service.h index 88837d3b6ed..a713ca3c734 100644 --- a/chromium/components/browser_sync/profile_sync_service.h +++ b/chromium/components/browser_sync/profile_sync_service.h @@ -496,8 +496,6 @@ class ProfileSyncService : public syncer::SyncServiceBase, // Returns true if the syncer is waiting for new datatypes to be encrypted. virtual bool encryption_pending() const; - SigninManagerBase* signin() const; - syncer::SyncErrorController* sync_error_controller() { return sync_error_controller_.get(); } @@ -559,12 +557,9 @@ class ProfileSyncService : public syncer::SyncServiceBase, // Returns a function for |type| that will create a ModelTypeStore that shares // the sync LevelDB backend. |base_path| should be set to profile path. - // |sequenced_worker_pool| is obtained from content::BrowserThread or - // web::WebThread depending on platform. static syncer::ModelTypeStoreFactory GetModelTypeStoreFactory( syncer::ModelType type, - const base::FilePath& base_path, - base::SequencedWorkerPool* sequenced_worker_pool); + const base::FilePath& base_path); // Needed to test whether the directory is deleted properly. base::FilePath GetDirectoryPathForTest() const; diff --git a/chromium/components/browser_sync/profile_sync_service_autofill_unittest.cc b/chromium/components/browser_sync/profile_sync_service_autofill_unittest.cc index f60c2afd61b..469864650b5 100644 --- a/chromium/components/browser_sync/profile_sync_service_autofill_unittest.cc +++ b/chromium/components/browser_sync/profile_sync_service_autofill_unittest.cc @@ -19,6 +19,7 @@ #include "base/memory/ptr_util.h" #include "base/memory/ref_counted.h" #include "base/run_loop.h" +#include "base/sequenced_task_runner.h" #include "base/strings/string16.h" #include "base/strings/utf_string_conversions.h" #include "base/synchronization/waitable_event.h" @@ -90,7 +91,7 @@ using testing::_; using testing::DoAll; using testing::ElementsAre; using testing::Not; -using testing::SetArgumentPointee; +using testing::SetArgPointee; using testing::Return; namespace browser_sync { @@ -842,7 +843,7 @@ TEST_F(ProfileSyncServiceAutofillTest, HasNativeEntriesEmptySync) { std::vector<AutofillEntry> entries; entries.push_back(MakeAutofillEntry("foo", "bar", 1)); EXPECT_CALL(autofill_table(), GetAllAutofillEntries(_)) - .WillOnce(DoAll(SetArgumentPointee<0>(entries), Return(true))); + .WillOnce(DoAll(SetArgPointee<0>(entries), Return(true))); SetIdleChangeProcessorExpectations(); CreateRootHelper create_root(this, AUTOFILL); EXPECT_CALL(personal_data_manager(), Refresh()); @@ -889,7 +890,7 @@ TEST_F(ProfileSyncServiceAutofillTest, HasNativeWithDuplicatesEmptySync) { entries.push_back(MakeAutofillEntry("dup", "", 2)); entries.push_back(MakeAutofillEntry("dup", "", 3)); EXPECT_CALL(autofill_table(), GetAllAutofillEntries(_)) - .WillOnce(DoAll(SetArgumentPointee<0>(entries), Return(true))); + .WillOnce(DoAll(SetArgPointee<0>(entries), Return(true))); SetIdleChangeProcessorExpectations(); CreateRootHelper create_root(this, AUTOFILL); EXPECT_CALL(personal_data_manager(), Refresh()); @@ -909,7 +910,7 @@ TEST_F(ProfileSyncServiceAutofillTest, HasNativeHasSyncNoMerge) { native_entries.push_back(native_entry); EXPECT_CALL(autofill_table(), GetAllAutofillEntries(_)) - .WillOnce(DoAll(SetArgumentPointee<0>(native_entries), Return(true))); + .WillOnce(DoAll(SetArgPointee<0>(native_entries), Return(true))); std::vector<AutofillEntry> sync_entries; sync_entries.push_back(sync_entry); @@ -951,7 +952,7 @@ TEST_F(ProfileSyncServiceAutofillTest, HasNativeHasSyncNoMerge_NullTerminated) { native_entries.push_back(native_entry1); EXPECT_CALL(autofill_table(), GetAllAutofillEntries(_)) - .WillOnce(DoAll(SetArgumentPointee<0>(native_entries), Return(true))); + .WillOnce(DoAll(SetArgPointee<0>(native_entries), Return(true))); std::vector<AutofillEntry> sync_entries; sync_entries.push_back(sync_entry0); @@ -994,7 +995,7 @@ TEST_F(ProfileSyncServiceAutofillTest, HasNativeHasSyncMergeEntry) { std::vector<AutofillEntry> native_entries; native_entries.push_back(native_entry); EXPECT_CALL(autofill_table(), GetAllAutofillEntries(_)) - .WillOnce(DoAll(SetArgumentPointee<0>(native_entries), Return(true))); + .WillOnce(DoAll(SetArgPointee<0>(native_entries), Return(true))); std::vector<AutofillEntry> sync_entries; sync_entries.push_back(sync_entry); @@ -1364,8 +1365,8 @@ TEST_F(ProfileSyncServiceAutofillTest, ProcessUserChangeAddEntry) { AutofillEntry added_entry(MakeAutofillEntry("added", "entry", 1)); EXPECT_CALL(autofill_table(), GetAutofillTimestamps(_, _, _, _)) - .WillOnce(DoAll(SetArgumentPointee<2>(added_entry.date_created()), - SetArgumentPointee<3>(added_entry.date_last_used()), + .WillOnce(DoAll(SetArgPointee<2>(added_entry.date_created()), + SetArgPointee<3>(added_entry.date_last_used()), Return(true))); AutofillChangeList changes; @@ -1412,7 +1413,7 @@ TEST_F(ProfileSyncServiceAutofillTest, ProcessUserChangeUpdateEntry) { original_entries.push_back(original_entry); EXPECT_CALL(autofill_table(), GetAllAutofillEntries(_)) - .WillOnce(DoAll(SetArgumentPointee<0>(original_entries), Return(true))); + .WillOnce(DoAll(SetArgPointee<0>(original_entries), Return(true))); EXPECT_CALL(personal_data_manager(), Refresh()); CreateRootHelper create_root(this, AUTOFILL); StartSyncService(create_root.callback(), false, AUTOFILL); @@ -1421,8 +1422,8 @@ TEST_F(ProfileSyncServiceAutofillTest, ProcessUserChangeUpdateEntry) { AutofillEntry updated_entry(MakeAutofillEntry("my", "entry", 1, 2)); EXPECT_CALL(autofill_table(), GetAutofillTimestamps(_, _, _, _)) - .WillOnce(DoAll(SetArgumentPointee<2>(updated_entry.date_created()), - SetArgumentPointee<3>(updated_entry.date_last_used()), + .WillOnce(DoAll(SetArgPointee<2>(updated_entry.date_created()), + SetArgPointee<3>(updated_entry.date_last_used()), Return(true))); AutofillChangeList changes; @@ -1444,7 +1445,7 @@ TEST_F(ProfileSyncServiceAutofillTest, ProcessUserChangeRemoveEntry) { original_entries.push_back(original_entry); EXPECT_CALL(autofill_table(), GetAllAutofillEntries(_)) - .WillOnce(DoAll(SetArgumentPointee<0>(original_entries), Return(true))); + .WillOnce(DoAll(SetArgPointee<0>(original_entries), Return(true))); EXPECT_CALL(personal_data_manager(), Refresh()); CreateRootHelper create_root(this, AUTOFILL); StartSyncService(create_root.callback(), false, AUTOFILL); diff --git a/chromium/components/browser_sync/profile_sync_service_startup_unittest.cc b/chromium/components/browser_sync/profile_sync_service_startup_unittest.cc index 3f63fc49247..9d3e951e6d1 100644 --- a/chromium/components/browser_sync/profile_sync_service_startup_unittest.cc +++ b/chromium/components/browser_sync/profile_sync_service_startup_unittest.cc @@ -6,6 +6,7 @@ #include "base/files/file_util.h" #include "base/memory/ptr_util.h" +#include "base/message_loop/message_loop.h" #include "base/strings/utf_string_conversions.h" #include "base/threading/thread_task_runner_handle.h" #include "components/browser_sync/profile_sync_test_util.h" diff --git a/chromium/components/browser_sync/profile_sync_service_typed_url_unittest.cc b/chromium/components/browser_sync/profile_sync_service_typed_url_unittest.cc index db7db211a5e..50906f1460b 100644 --- a/chromium/components/browser_sync/profile_sync_service_typed_url_unittest.cc +++ b/chromium/components/browser_sync/profile_sync_service_typed_url_unittest.cc @@ -17,7 +17,9 @@ #include "base/macros.h" #include "base/memory/ptr_util.h" #include "base/memory/ref_counted.h" +#include "base/message_loop/message_loop.h" #include "base/run_loop.h" +#include "base/single_thread_task_runner.h" #include "base/strings/string16.h" #include "base/strings/utf_string_conversions.h" #include "base/threading/thread.h" @@ -48,7 +50,7 @@ using history::HistoryBackendNotifier; using history::TypedUrlSyncableService; using testing::DoAll; using testing::Return; -using testing::SetArgumentPointee; +using testing::SetArgPointee; using testing::_; namespace browser_sync { @@ -419,9 +421,9 @@ TEST_F(ProfileSyncServiceTypedUrlTest, HasNativeEmptySync) { MakeTypedUrlEntry("http://foo.com", "bar", 2, 15, false, &visits)); EXPECT_CALL((history_backend()), GetAllTypedURLs(_)) - .WillOnce(DoAll(SetArgumentPointee<0>(entries), Return(true))); + .WillOnce(DoAll(SetArgPointee<0>(entries), Return(true))); EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(_, _, _)) - .WillRepeatedly(DoAll(SetArgumentPointee<2>(visits), Return(true))); + .WillRepeatedly(DoAll(SetArgPointee<2>(visits), Return(true))); SetIdleChangeProcessorExpectations(); CreateRootHelper create_root(this, syncer::TYPED_URLS); TypedUrlSyncableService* syncable_service = @@ -443,7 +445,7 @@ TEST_F(ProfileSyncServiceTypedUrlTest, HasNativeErrorReadingVisits) { entries.push_back(native_entry1); entries.push_back(native_entry2); EXPECT_CALL((history_backend()), GetAllTypedURLs(_)) - .WillOnce(DoAll(SetArgumentPointee<0>(entries), Return(true))); + .WillOnce(DoAll(SetArgPointee<0>(entries), Return(true))); // Return an error from GetMostRecentVisitsForURL() for the second URL. EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(native_entry1.id(), _, _)) @@ -468,9 +470,9 @@ TEST_F(ProfileSyncServiceTypedUrlTest, HasNativeWithBlankEmptySync) { entries.push_back( MakeTypedUrlEntry("http://foo.com", "bar", 2, 15, false, &visits)); EXPECT_CALL((history_backend()), GetAllTypedURLs(_)) - .WillOnce(DoAll(SetArgumentPointee<0>(entries), Return(true))); + .WillOnce(DoAll(SetArgPointee<0>(entries), Return(true))); EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(_, _, _)) - .WillRepeatedly(DoAll(SetArgumentPointee<2>(visits), Return(true))); + .WillRepeatedly(DoAll(SetArgPointee<2>(visits), Return(true))); SetIdleChangeProcessorExpectations(); CreateRootHelper create_root(this, syncer::TYPED_URLS); StartSyncService(create_root.callback()); @@ -492,10 +494,9 @@ TEST_F(ProfileSyncServiceTypedUrlTest, HasNativeHasSyncNoMerge) { history::URLRows native_entries; native_entries.push_back(native_entry); EXPECT_CALL((history_backend()), GetAllTypedURLs(_)) - .WillOnce(DoAll(SetArgumentPointee<0>(native_entries), Return(true))); + .WillOnce(DoAll(SetArgPointee<0>(native_entries), Return(true))); EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(_, _, _)) - .WillRepeatedly( - DoAll(SetArgumentPointee<2>(native_visits), Return(true))); + .WillRepeatedly(DoAll(SetArgPointee<2>(native_visits), Return(true))); EXPECT_CALL((history_backend()), AddVisits(_, _, history::SOURCE_SYNCED)) .WillRepeatedly(Return(true)); @@ -553,10 +554,9 @@ TEST_F(ProfileSyncServiceTypedUrlTest, HasNativeHasSyncMerge) { history::URLRows native_entries; native_entries.push_back(native_entry); EXPECT_CALL((history_backend()), GetAllTypedURLs(_)) - .WillOnce(DoAll(SetArgumentPointee<0>(native_entries), Return(true))); + .WillOnce(DoAll(SetArgPointee<0>(native_entries), Return(true))); EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(_, _, _)) - .WillRepeatedly( - DoAll(SetArgumentPointee<2>(native_visits), Return(true))); + .WillRepeatedly(DoAll(SetArgPointee<2>(native_visits), Return(true))); EXPECT_CALL((history_backend()), AddVisits(_, _, history::SOURCE_SYNCED)) .WillRepeatedly(Return(true)); @@ -585,12 +585,12 @@ TEST_F(ProfileSyncServiceTypedUrlTest, HasNativeWithErrorHasSyncMerge) { history::URLRows native_entries; native_entries.push_back(native_entry); EXPECT_CALL((history_backend()), GetAllTypedURLs(_)) - .WillOnce(DoAll(SetArgumentPointee<0>(native_entries), Return(true))); + .WillOnce(DoAll(SetArgPointee<0>(native_entries), Return(true))); // Return an error getting the visits for the native URL. EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(_, _, _)) .WillRepeatedly(Return(false)); EXPECT_CALL((history_backend()), GetURL(_, _)) - .WillRepeatedly(DoAll(SetArgumentPointee<1>(native_entry), Return(true))); + .WillRepeatedly(DoAll(SetArgPointee<1>(native_entry), Return(true))); EXPECT_CALL((history_backend()), AddVisits(_, _, history::SOURCE_SYNCED)) .WillRepeatedly(Return(true)); @@ -615,7 +615,7 @@ TEST_F(ProfileSyncServiceTypedUrlTest, ProcessUserChangeAdd) { EXPECT_CALL((history_backend()), GetAllTypedURLs(_)).WillOnce(Return(true)); EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(_, _, _)) - .WillOnce(DoAll(SetArgumentPointee<2>(added_visits), Return(true))); + .WillOnce(DoAll(SetArgPointee<2>(added_visits), Return(true))); SetIdleChangeProcessorExpectations(); CreateRootHelper create_root(this, syncer::TYPED_URLS); @@ -640,7 +640,7 @@ TEST_F(ProfileSyncServiceTypedUrlTest, ProcessUserChangeAddWithBlank) { EXPECT_CALL((history_backend()), GetAllTypedURLs(_)).WillOnce(Return(true)); EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(_, _, _)) - .WillRepeatedly(DoAll(SetArgumentPointee<2>(added_visits), Return(true))); + .WillRepeatedly(DoAll(SetArgPointee<2>(added_visits), Return(true))); SetIdleChangeProcessorExpectations(); CreateRootHelper create_root(this, syncer::TYPED_URLS); @@ -665,9 +665,9 @@ TEST_F(ProfileSyncServiceTypedUrlTest, ProcessUserChangeUpdate) { original_entries.push_back(original_entry); EXPECT_CALL((history_backend()), GetAllTypedURLs(_)) - .WillOnce(DoAll(SetArgumentPointee<0>(original_entries), Return(true))); + .WillOnce(DoAll(SetArgPointee<0>(original_entries), Return(true))); EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(_, _, _)) - .WillOnce(DoAll(SetArgumentPointee<2>(original_visits), Return(true))); + .WillOnce(DoAll(SetArgPointee<2>(original_visits), Return(true))); CreateRootHelper create_root(this, syncer::TYPED_URLS); StartSyncService(create_root.callback()); @@ -675,7 +675,7 @@ TEST_F(ProfileSyncServiceTypedUrlTest, ProcessUserChangeUpdate) { history::URLRow updated_entry(MakeTypedUrlEntry("http://mine.com", "entry", 7, 17, false, &updated_visits)); EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(_, _, _)) - .WillOnce(DoAll(SetArgumentPointee<2>(updated_visits), Return(true))); + .WillOnce(DoAll(SetArgPointee<2>(updated_visits), Return(true))); history::URLRows changed_urls; changed_urls.push_back(updated_entry); @@ -694,7 +694,7 @@ TEST_F(ProfileSyncServiceTypedUrlTest, ProcessUserChangeAddFromVisit) { EXPECT_CALL((history_backend()), GetAllTypedURLs(_)).WillOnce(Return(true)); EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(_, _, _)) - .WillOnce(DoAll(SetArgumentPointee<2>(added_visits), Return(true))); + .WillOnce(DoAll(SetArgPointee<2>(added_visits), Return(true))); SetIdleChangeProcessorExpectations(); CreateRootHelper create_root(this, syncer::TYPED_URLS); @@ -716,9 +716,9 @@ TEST_F(ProfileSyncServiceTypedUrlTest, ProcessUserChangeUpdateFromVisit) { original_entries.push_back(original_entry); EXPECT_CALL((history_backend()), GetAllTypedURLs(_)) - .WillOnce(DoAll(SetArgumentPointee<0>(original_entries), Return(true))); + .WillOnce(DoAll(SetArgPointee<0>(original_entries), Return(true))); EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(_, _, _)) - .WillOnce(DoAll(SetArgumentPointee<2>(original_visits), Return(true))); + .WillOnce(DoAll(SetArgPointee<2>(original_visits), Return(true))); CreateRootHelper create_root(this, syncer::TYPED_URLS); StartSyncService(create_root.callback()); @@ -726,7 +726,7 @@ TEST_F(ProfileSyncServiceTypedUrlTest, ProcessUserChangeUpdateFromVisit) { history::URLRow updated_entry(MakeTypedUrlEntry("http://mine.com", "entry", 7, 17, false, &updated_visits)); EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(_, _, _)) - .WillOnce(DoAll(SetArgumentPointee<2>(updated_visits), Return(true))); + .WillOnce(DoAll(SetArgPointee<2>(updated_visits), Return(true))); SendNotificationURLVisited(ui::PAGE_TRANSITION_TYPED, updated_entry); @@ -744,10 +744,9 @@ TEST_F(ProfileSyncServiceTypedUrlTest, ProcessUserIgnoreChangeUpdateFromVisit) { original_entries.push_back(original_entry); EXPECT_CALL((history_backend()), GetAllTypedURLs(_)) - .WillOnce(DoAll(SetArgumentPointee<0>(original_entries), Return(true))); + .WillOnce(DoAll(SetArgPointee<0>(original_entries), Return(true))); EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(_, _, _)) - .WillRepeatedly( - DoAll(SetArgumentPointee<2>(original_visits), Return(true))); + .WillRepeatedly(DoAll(SetArgPointee<2>(original_visits), Return(true))); CreateRootHelper create_root(this, syncer::TYPED_URLS); StartSyncService(create_root.callback()); history::URLRows new_sync_entries; @@ -801,10 +800,9 @@ TEST_F(ProfileSyncServiceTypedUrlTest, ProcessUserChangeRemove) { original_entries.push_back(original_entry2); EXPECT_CALL((history_backend()), GetAllTypedURLs(_)) - .WillOnce(DoAll(SetArgumentPointee<0>(original_entries), Return(true))); + .WillOnce(DoAll(SetArgPointee<0>(original_entries), Return(true))); EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(_, _, _)) - .WillRepeatedly( - DoAll(SetArgumentPointee<2>(original_visits1), Return(true))); + .WillRepeatedly(DoAll(SetArgPointee<2>(original_visits1), Return(true))); CreateRootHelper create_root(this, syncer::TYPED_URLS); StartSyncService(create_root.callback()); @@ -829,10 +827,9 @@ TEST_F(ProfileSyncServiceTypedUrlTest, ProcessUserChangeRemoveExpired) { original_entries.push_back(original_entry2); EXPECT_CALL((history_backend()), GetAllTypedURLs(_)) - .WillOnce(DoAll(SetArgumentPointee<0>(original_entries), Return(true))); + .WillOnce(DoAll(SetArgPointee<0>(original_entries), Return(true))); EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(_, _, _)) - .WillRepeatedly( - DoAll(SetArgumentPointee<2>(original_visits1), Return(true))); + .WillRepeatedly(DoAll(SetArgPointee<2>(original_visits1), Return(true))); CreateRootHelper create_root(this, syncer::TYPED_URLS); StartSyncService(create_root.callback()); @@ -858,10 +855,9 @@ TEST_F(ProfileSyncServiceTypedUrlTest, ProcessUserChangeRemoveAll) { original_entries.push_back(original_entry2); EXPECT_CALL((history_backend()), GetAllTypedURLs(_)) - .WillOnce(DoAll(SetArgumentPointee<0>(original_entries), Return(true))); + .WillOnce(DoAll(SetArgPointee<0>(original_entries), Return(true))); EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(_, _, _)) - .WillRepeatedly( - DoAll(SetArgumentPointee<2>(original_visits1), Return(true))); + .WillRepeatedly(DoAll(SetArgPointee<2>(original_visits1), Return(true))); CreateRootHelper create_root(this, syncer::TYPED_URLS); StartSyncService(create_root.callback()); @@ -887,12 +883,11 @@ TEST_F(ProfileSyncServiceTypedUrlTest, FailWriteToHistoryBackend) { history::URLRows native_entries; native_entries.push_back(native_entry); EXPECT_CALL((history_backend()), GetAllTypedURLs(_)) - .WillOnce(DoAll(SetArgumentPointee<0>(native_entries), Return(true))); + .WillOnce(DoAll(SetArgPointee<0>(native_entries), Return(true))); EXPECT_CALL((history_backend()), GetURL(_, _)) - .WillOnce(DoAll(SetArgumentPointee<1>(native_entry), Return(false))); + .WillOnce(DoAll(SetArgPointee<1>(native_entry), Return(false))); EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(_, _, _)) - .WillRepeatedly( - DoAll(SetArgumentPointee<2>(native_visits), Return(true))); + .WillRepeatedly(DoAll(SetArgPointee<2>(native_visits), Return(true))); EXPECT_CALL((history_backend()), AddVisits(_, _, history::SOURCE_SYNCED)) .WillRepeatedly(Return(false)); @@ -924,7 +919,7 @@ TEST_F(ProfileSyncServiceTypedUrlTest, FailToGetTypedURLs) { history::URLRows native_entries; native_entries.push_back(native_entry); EXPECT_CALL((history_backend()), GetAllTypedURLs(_)) - .WillOnce(DoAll(SetArgumentPointee<0>(native_entries), Return(false))); + .WillOnce(DoAll(SetArgPointee<0>(native_entries), Return(false))); history::URLRows sync_entries; sync_entries.push_back(sync_entry); @@ -953,11 +948,9 @@ TEST_F(ProfileSyncServiceTypedUrlTest, IgnoreLocalFileURL) { original_entries.push_back(file_entry); EXPECT_CALL((history_backend()), GetAllTypedURLs(_)) - .WillRepeatedly( - DoAll(SetArgumentPointee<0>(original_entries), Return(true))); + .WillRepeatedly(DoAll(SetArgPointee<0>(original_entries), Return(true))); EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(_, _, _)) - .WillRepeatedly( - DoAll(SetArgumentPointee<2>(original_visits), Return(true))); + .WillRepeatedly(DoAll(SetArgPointee<2>(original_visits), Return(true))); CreateRootHelper create_root(this, syncer::TYPED_URLS); StartSyncService(create_root.callback()); @@ -998,11 +991,9 @@ TEST_F(ProfileSyncServiceTypedUrlTest, IgnoreLocalhostURL) { original_entries.push_back(localhost_entry); EXPECT_CALL((history_backend()), GetAllTypedURLs(_)) - .WillRepeatedly( - DoAll(SetArgumentPointee<0>(original_entries), Return(true))); + .WillRepeatedly(DoAll(SetArgPointee<0>(original_entries), Return(true))); EXPECT_CALL((history_backend()), GetMostRecentVisitsForURL(_, _, _)) - .WillRepeatedly( - DoAll(SetArgumentPointee<2>(original_visits), Return(true))); + .WillRepeatedly(DoAll(SetArgPointee<2>(original_visits), Return(true))); CreateRootHelper create_root(this, syncer::TYPED_URLS); StartSyncService(create_root.callback()); diff --git a/chromium/components/browser_sync/profile_sync_service_unittest.cc b/chromium/components/browser_sync/profile_sync_service_unittest.cc index fc0d17f4356..4dd3cb85a24 100644 --- a/chromium/components/browser_sync/profile_sync_service_unittest.cc +++ b/chromium/components/browser_sync/profile_sync_service_unittest.cc @@ -386,7 +386,6 @@ TEST_F(ProfileSyncServiceTest, SuccessfulInitialization) { TEST_F(ProfileSyncServiceTest, SuccessfulLocalBackendInitialization) { prefs()->SetManagedPref(syncer::prefs::kSyncManaged, base::MakeUnique<base::Value>(false)); - IssueTestTokens(); CreateServiceWithLocalSyncBackend(); ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback()); ExpectSyncEngineCreation(1); @@ -943,6 +942,34 @@ TEST_F(ProfileSyncServiceTest, DisableSyncOnClient) { EXPECT_FALSE(service()->GetLocalDeviceInfoProvider()->GetLocalDeviceInfo()); } +// Verify a that local sync mode resumes after the policy is lifted. +TEST_F(ProfileSyncServiceTest, LocalBackendDisabledByPolicy) { + prefs()->SetManagedPref(syncer::prefs::kSyncManaged, + base::MakeUnique<base::Value>(false)); + CreateServiceWithLocalSyncBackend(); + ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback()); + ExpectSyncEngineCreation(1); + InitializeForNthSync(); + EXPECT_FALSE(service()->IsManaged()); + EXPECT_TRUE(service()->IsSyncActive()); + + prefs()->SetManagedPref(syncer::prefs::kSyncManaged, + base::MakeUnique<base::Value>(true)); + + EXPECT_TRUE(service()->IsManaged()); + EXPECT_FALSE(service()->IsSyncActive()); + + prefs()->SetManagedPref(syncer::prefs::kSyncManaged, + base::MakeUnique<base::Value>(false)); + + ExpectDataTypeManagerCreation(1, GetDefaultConfigureCalledCallback()); + ExpectSyncEngineCreation(1); + + service()->RequestStart(); + EXPECT_FALSE(service()->IsManaged()); + EXPECT_TRUE(service()->IsSyncActive()); +} + // Regression test for crbug/555434. The issue is that check for sessions DTC in // OnSessionRestoreComplete was creating map entry with nullptr which later was // dereferenced in OnSyncCycleCompleted. The fix is to use find() to check if diff --git a/chromium/components/browser_sync/profile_sync_test_util.cc b/chromium/components/browser_sync/profile_sync_test_util.cc index ee186d14d3c..575271243a2 100644 --- a/chromium/components/browser_sync/profile_sync_test_util.cc +++ b/chromium/components/browser_sync/profile_sync_test_util.cc @@ -7,6 +7,7 @@ #include <utility> #include "base/memory/ptr_util.h" +#include "base/single_thread_task_runner.h" #include "base/threading/thread_task_runner_handle.h" #include "components/bookmarks/browser/bookmark_model.h" #include "components/history/core/browser/history_model_worker.h" diff --git a/chromium/components/browser_sync/test_profile_sync_service.cc b/chromium/components/browser_sync/test_profile_sync_service.cc index a4bc8d080bd..9eab474c7b8 100644 --- a/chromium/components/browser_sync/test_profile_sync_service.cc +++ b/chromium/components/browser_sync/test_profile_sync_service.cc @@ -6,6 +6,8 @@ #include <utility> +#include "base/message_loop/message_loop.h" + namespace browser_sync { syncer::TestIdFactory* TestProfileSyncService::id_factory() { |