summaryrefslogtreecommitdiff
path: root/chromium/components/browser_sync
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2017-07-17 13:57:45 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2017-07-19 13:44:40 +0000
commit6ec7b8da05d21a3878bd21c691b41e675d74bb1c (patch)
treeb87f250bc19413750b9bb9cdbf2da20ef5014820 /chromium/components/browser_sync
parentec02ee4181c49b61fce1c8fb99292dbb8139cc90 (diff)
downloadqtwebengine-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')
-rw-r--r--chromium/components/browser_sync/profile_sync_components_factory_impl.cc13
-rw-r--r--chromium/components/browser_sync/profile_sync_service.cc105
-rw-r--r--chromium/components/browser_sync/profile_sync_service.h7
-rw-r--r--chromium/components/browser_sync/profile_sync_service_autofill_unittest.cc25
-rw-r--r--chromium/components/browser_sync/profile_sync_service_startup_unittest.cc1
-rw-r--r--chromium/components/browser_sync/profile_sync_service_typed_url_unittest.cc87
-rw-r--r--chromium/components/browser_sync/profile_sync_service_unittest.cc29
-rw-r--r--chromium/components/browser_sync/profile_sync_test_util.cc1
-rw-r--r--chromium/components/browser_sync/test_profile_sync_service.cc2
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() {