Commit 448464a1 authored by Oksana Zhuravlova's avatar Oksana Zhuravlova Committed by Commit Bot

Update cloud print to use base::Value and base::BindOnce()

This change updates CloudPrintProxyService methods to take base::Value
instead of base::DictionaryValue pointers/references and call base::BindOnce()
instead of base::Bind(). ServiceProcessControl implementation was updated to
use base::OnceClosure accordingly.

Bug: 646113
Change-Id: Id4ff1b0ffd96ec27969bd489ab64503d85c7d6c6
Reviewed-on: https://chromium-review.googlesource.com/998522Reviewed-by: default avatarLei Zhang <thestig@chromium.org>
Commit-Queue: Oksana Zhuravlova <oksamyt@chromium.org>
Cr-Commit-Position: refs/heads/master@{#548643}
parent 852d7040
...@@ -55,8 +55,9 @@ bool CloudPrintPrivateSetupConnectorFunction::RunAsync() { ...@@ -55,8 +55,9 @@ bool CloudPrintPrivateSetupConnectorFunction::RunAsync() {
return true; return true;
} }
std::unique_ptr<base::DictionaryValue> user_settings( base::Value user_settings_value =
params->user_settings.ToValue()); base::Value::FromUniquePtrValue(params->user_settings.ToValue());
CloudPrintProxyService* service = CloudPrintProxyService* service =
CloudPrintProxyServiceFactory::GetForProfile(GetProfile()); CloudPrintProxyServiceFactory::GetForProfile(GetProfile());
if (!service) { if (!service) {
...@@ -64,7 +65,8 @@ bool CloudPrintPrivateSetupConnectorFunction::RunAsync() { ...@@ -64,7 +65,8 @@ bool CloudPrintPrivateSetupConnectorFunction::RunAsync() {
return false; return false;
} }
service->EnableForUserWithRobot(params->credentials, params->robot_email, service->EnableForUserWithRobot(params->credentials, params->robot_email,
params->user_email, *user_settings); params->user_email,
std::move(user_settings_value));
SendResponse(true); SendResponse(true);
return true; return true;
} }
......
...@@ -93,16 +93,16 @@ void CloudPrintProxyService::EnableForUserWithRobot( ...@@ -93,16 +93,16 @@ void CloudPrintProxyService::EnableForUserWithRobot(
const std::string& robot_auth_code, const std::string& robot_auth_code,
const std::string& robot_email, const std::string& robot_email,
const std::string& user_email, const std::string& user_email,
const base::DictionaryValue& user_preferences) { base::Value user_preferences) {
DCHECK_CURRENTLY_ON(BrowserThread::UI); DCHECK_CURRENTLY_ON(BrowserThread::UI);
UMA_HISTOGRAM_ENUMERATION("CloudPrint.ServiceEvents", UMA_HISTOGRAM_ENUMERATION("CloudPrint.ServiceEvents",
ServiceProcessControl::SERVICE_EVENT_ENABLE, ServiceProcessControl::SERVICE_EVENT_ENABLE,
ServiceProcessControl::SERVICE_EVENT_MAX); ServiceProcessControl::SERVICE_EVENT_MAX);
if (profile_->GetPrefs()->GetBoolean(prefs::kCloudPrintProxyEnabled)) { if (profile_->GetPrefs()->GetBoolean(prefs::kCloudPrintProxyEnabled)) {
InvokeServiceTask( InvokeServiceTask(
base::Bind(&CloudPrintProxyService::EnableCloudPrintProxyWithRobot, base::BindOnce(&CloudPrintProxyService::EnableCloudPrintProxyWithRobot,
weak_factory_.GetWeakPtr(), robot_auth_code, robot_email, weak_factory_.GetWeakPtr(), robot_auth_code, robot_email,
user_email, base::Owned(user_preferences.DeepCopy()))); user_email, std::move(user_preferences)));
} }
} }
...@@ -195,12 +195,11 @@ void CloudPrintProxyService::EnableCloudPrintProxyWithRobot( ...@@ -195,12 +195,11 @@ void CloudPrintProxyService::EnableCloudPrintProxyWithRobot(
const std::string& robot_auth_code, const std::string& robot_auth_code,
const std::string& robot_email, const std::string& robot_email,
const std::string& user_email, const std::string& user_email,
const base::DictionaryValue* user_preferences) { base::Value user_preferences) {
ServiceProcessControl* process_control = GetServiceProcessControl(); ServiceProcessControl* process_control = GetServiceProcessControl();
DCHECK(process_control->IsConnected()); DCHECK(process_control->IsConnected());
GetCloudPrintProxy().EnableCloudPrintProxyWithRobot( GetCloudPrintProxy().EnableCloudPrintProxyWithRobot(
robot_auth_code, robot_email, user_email, robot_auth_code, robot_email, user_email, std::move(user_preferences));
std::move(*user_preferences->CreateDeepCopy()));
// Assume the IPC worked. // Assume the IPC worked.
profile_->GetPrefs()->SetString(prefs::kCloudPrintEmail, user_email); profile_->GetPrefs()->SetString(prefs::kCloudPrintEmail, user_email);
...@@ -226,8 +225,8 @@ void CloudPrintProxyService::ProxyInfoCallback(bool enabled, ...@@ -226,8 +225,8 @@ void CloudPrintProxyService::ProxyInfoCallback(bool enabled,
ApplyCloudPrintConnectorPolicy(); ApplyCloudPrintConnectorPolicy();
} }
bool CloudPrintProxyService::InvokeServiceTask(const base::Closure& task) { bool CloudPrintProxyService::InvokeServiceTask(base::OnceClosure task) {
GetServiceProcessControl()->Launch(task, base::Closure()); GetServiceProcessControl()->Launch(std::move(task), base::OnceClosure());
return true; return true;
} }
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include "base/macros.h" #include "base/macros.h"
#include "base/memory/weak_ptr.h" #include "base/memory/weak_ptr.h"
#include "base/observer_list.h" #include "base/observer_list.h"
#include "base/values.h"
#include "build/build_config.h" #include "build/build_config.h"
#include "chrome/common/cloud_print.mojom.h" #include "chrome/common/cloud_print.mojom.h"
#include "components/keyed_service/core/keyed_service.h" #include "components/keyed_service/core/keyed_service.h"
...@@ -25,10 +26,6 @@ ...@@ -25,10 +26,6 @@
class Profile; class Profile;
class ServiceProcessControl; class ServiceProcessControl;
namespace base {
class DictionaryValue;
} // namespace base
// Layer between the browser user interface and the cloud print proxy code // Layer between the browser user interface and the cloud print proxy code
// running in the service process. // running in the service process.
class CloudPrintProxyService : public KeyedService { class CloudPrintProxyService : public KeyedService {
...@@ -47,11 +44,10 @@ class CloudPrintProxyService : public KeyedService { ...@@ -47,11 +44,10 @@ class CloudPrintProxyService : public KeyedService {
void GetPrinters(const PrintersCallback& callback); void GetPrinters(const PrintersCallback& callback);
// Enables/disables cloud printing for the user // Enables/disables cloud printing for the user
virtual void EnableForUserWithRobot( virtual void EnableForUserWithRobot(const std::string& robot_auth_code,
const std::string& robot_auth_code, const std::string& robot_email,
const std::string& robot_email, const std::string& user_email,
const std::string& user_email, base::Value user_settings);
const base::DictionaryValue& user_settings);
virtual void DisableForUser(); virtual void DisableForUser();
// Query the service process for the status of the cloud print proxy and // Query the service process for the status of the cloud print proxy and
...@@ -68,11 +64,10 @@ class CloudPrintProxyService : public KeyedService { ...@@ -68,11 +64,10 @@ class CloudPrintProxyService : public KeyedService {
// Methods that send an IPC to the service. // Methods that send an IPC to the service.
void GetCloudPrintProxyPrinters(const PrintersCallback& callback); void GetCloudPrintProxyPrinters(const PrintersCallback& callback);
void RefreshCloudPrintProxyStatus(); void RefreshCloudPrintProxyStatus();
void EnableCloudPrintProxyWithRobot( void EnableCloudPrintProxyWithRobot(const std::string& robot_auth_code,
const std::string& robot_auth_code, const std::string& robot_email,
const std::string& robot_email, const std::string& user_email,
const std::string& user_email, base::Value user_preferences);
const base::DictionaryValue* user_preferences);
void DisableCloudPrintProxy(); void DisableCloudPrintProxy();
// Callback that gets the cloud print proxy info. // Callback that gets the cloud print proxy info.
...@@ -83,7 +78,7 @@ class CloudPrintProxyService : public KeyedService { ...@@ -83,7 +78,7 @@ class CloudPrintProxyService : public KeyedService {
// Invoke a task that gets run after the service process successfully // Invoke a task that gets run after the service process successfully
// launches. The task typically involves sending an IPC to the service // launches. The task typically involves sending an IPC to the service
// process. // process.
bool InvokeServiceTask(const base::Closure& task); bool InvokeServiceTask(base::OnceClosure task);
// Checks the policy. Returns true if nothing needs to be done (the policy is // Checks the policy. Returns true if nothing needs to be done (the policy is
// not set or the connector is not enabled). // not set or the connector is not enabled).
......
...@@ -51,12 +51,16 @@ class MockServiceProcessControl : public ServiceProcessControl { ...@@ -51,12 +51,16 @@ class MockServiceProcessControl : public ServiceProcessControl {
MockServiceProcessControl() : connected_(false) { } MockServiceProcessControl() : connected_(false) { }
~MockServiceProcessControl() override {}
MOCK_CONST_METHOD0(IsConnected, bool()); MOCK_CONST_METHOD0(IsConnected, bool());
MOCK_METHOD2(Launch, void(const base::Closure&, const base::Closure&)); void Launch(base::OnceClosure success_task,
base::OnceClosure failure_task) override;
MOCK_METHOD0(Disconnect, void()); MOCK_METHOD0(Disconnect, void());
void SetConnectSuccessMockExpectations(bool post_task); void SetConnectSuccessMockExpectations();
private: private:
bool connected_; bool connected_;
...@@ -68,28 +72,22 @@ std::string MockServiceProcessControl::EnabledUserId() { ...@@ -68,28 +72,22 @@ std::string MockServiceProcessControl::EnabledUserId() {
return std::string("dorothy@somewhere.otr"); return std::string("dorothy@somewhere.otr");
} }
void CallTask(const base::Closure& task) { void CallTask(base::OnceClosure task) {
if (!task.is_null()) if (task)
task.Run(); std::move(task).Run();
} }
void PostTask(const base::Closure& task) { void MockServiceProcessControl::Launch(base::OnceClosure success_task,
if (!task.is_null()) base::OnceClosure failure_task) {
base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, task); connected_ = true;
CallTask(std::move(success_task));
} }
void MockServiceProcessControl::SetConnectSuccessMockExpectations( void MockServiceProcessControl::SetConnectSuccessMockExpectations() {
bool post_task) {
EXPECT_CALL(*this, IsConnected()).WillRepeatedly(ReturnPointee(&connected_)); EXPECT_CALL(*this, IsConnected()).WillRepeatedly(ReturnPointee(&connected_));
EXPECT_CALL(*this, Launch(_, _))
.WillRepeatedly(
DoAll(Assign(&connected_, true),
WithArgs<0>(Invoke(post_task ? PostTask : CallTask))));
EXPECT_CALL(*this, Disconnect()).Times(AtMost(1)) EXPECT_CALL(*this, Disconnect()).Times(AtMost(1))
.WillRepeatedly(Assign(&connected_, false)); .WillRepeatedly(Assign(&connected_, false));
} }
class MockCloudPrintProxy : public cloud_print::mojom::CloudPrint { class MockCloudPrintProxy : public cloud_print::mojom::CloudPrint {
...@@ -189,7 +187,7 @@ class TestCloudPrintProxyService : public CloudPrintProxyService { ...@@ -189,7 +187,7 @@ class TestCloudPrintProxyService : public CloudPrintProxyService {
void EnableForUser() { void EnableForUser() {
EnableForUserWithRobot("123", "123@gmail.com", EnableForUserWithRobot("123", "123@gmail.com",
MockServiceProcessControl::EnabledUserId(), MockServiceProcessControl::EnabledUserId(),
base::DictionaryValue()); base::Value(base::Value::Type::DICTIONARY));
} }
private: private:
...@@ -220,12 +218,12 @@ class CloudPrintProxyPolicyTest : public ::testing::Test { ...@@ -220,12 +218,12 @@ class CloudPrintProxyPolicyTest : public ::testing::Test {
TEST_F(CloudPrintProxyPolicyTest, VerifyExpectations) { TEST_F(CloudPrintProxyPolicyTest, VerifyExpectations) {
MockServiceProcessControl mock_control; MockServiceProcessControl mock_control;
mock_control.SetConnectSuccessMockExpectations(false); mock_control.SetConnectSuccessMockExpectations();
EXPECT_FALSE(mock_control.IsConnected()); EXPECT_FALSE(mock_control.IsConnected());
mock_control.Launch(base::Closure(), base::Closure()); mock_control.Launch(base::OnceClosure(), base::OnceClosure());
EXPECT_TRUE(mock_control.IsConnected()); EXPECT_TRUE(mock_control.IsConnected());
mock_control.Launch(base::Closure(), base::Closure()); mock_control.Launch(base::OnceClosure(), base::OnceClosure());
EXPECT_TRUE(mock_control.IsConnected()); EXPECT_TRUE(mock_control.IsConnected());
mock_control.Disconnect(); mock_control.Disconnect();
EXPECT_FALSE(mock_control.IsConnected()); EXPECT_FALSE(mock_control.IsConnected());
...@@ -235,8 +233,7 @@ TEST_F(CloudPrintProxyPolicyTest, StartWithNoPolicyProxyDisabled) { ...@@ -235,8 +233,7 @@ TEST_F(CloudPrintProxyPolicyTest, StartWithNoPolicyProxyDisabled) {
TestCloudPrintProxyService service(&profile_); TestCloudPrintProxyService service(&profile_);
service.GetMockCloudPrintProxy().ReturnDisabledInfo(); service.GetMockCloudPrintProxy().ReturnDisabledInfo();
service.GetMockServiceProcessControl()->SetConnectSuccessMockExpectations( service.GetMockServiceProcessControl()->SetConnectSuccessMockExpectations();
false);
sync_preferences::TestingPrefServiceSyncable* prefs = sync_preferences::TestingPrefServiceSyncable* prefs =
profile_.GetTestingPrefService(); profile_.GetTestingPrefService();
...@@ -252,8 +249,7 @@ TEST_F(CloudPrintProxyPolicyTest, StartWithNoPolicyProxyDisabled) { ...@@ -252,8 +249,7 @@ TEST_F(CloudPrintProxyPolicyTest, StartWithNoPolicyProxyDisabled) {
TEST_F(CloudPrintProxyPolicyTest, StartWithNoPolicyProxyEnabled) { TEST_F(CloudPrintProxyPolicyTest, StartWithNoPolicyProxyEnabled) {
TestCloudPrintProxyService service(&profile_); TestCloudPrintProxyService service(&profile_);
service.GetMockServiceProcessControl()->SetConnectSuccessMockExpectations( service.GetMockServiceProcessControl()->SetConnectSuccessMockExpectations();
false);
service.GetMockCloudPrintProxy().ReturnEnabledInfo(); service.GetMockCloudPrintProxy().ReturnEnabledInfo();
sync_preferences::TestingPrefServiceSyncable* prefs = sync_preferences::TestingPrefServiceSyncable* prefs =
...@@ -271,8 +267,7 @@ TEST_F(CloudPrintProxyPolicyTest, StartWithNoPolicyProxyEnabled) { ...@@ -271,8 +267,7 @@ TEST_F(CloudPrintProxyPolicyTest, StartWithNoPolicyProxyEnabled) {
TEST_F(CloudPrintProxyPolicyTest, StartWithPolicySetProxyDisabled) { TEST_F(CloudPrintProxyPolicyTest, StartWithPolicySetProxyDisabled) {
TestCloudPrintProxyService service(&profile_); TestCloudPrintProxyService service(&profile_);
service.GetMockServiceProcessControl()->SetConnectSuccessMockExpectations( service.GetMockServiceProcessControl()->SetConnectSuccessMockExpectations();
false);
service.GetMockCloudPrintProxy().ReturnDisabledInfo(); service.GetMockCloudPrintProxy().ReturnDisabledInfo();
sync_preferences::TestingPrefServiceSyncable* prefs = sync_preferences::TestingPrefServiceSyncable* prefs =
...@@ -290,8 +285,7 @@ TEST_F(CloudPrintProxyPolicyTest, StartWithPolicySetProxyDisabled) { ...@@ -290,8 +285,7 @@ TEST_F(CloudPrintProxyPolicyTest, StartWithPolicySetProxyDisabled) {
TEST_F(CloudPrintProxyPolicyTest, StartWithPolicySetProxyEnabled) { TEST_F(CloudPrintProxyPolicyTest, StartWithPolicySetProxyEnabled) {
TestCloudPrintProxyService service(&profile_); TestCloudPrintProxyService service(&profile_);
service.GetMockServiceProcessControl()->SetConnectSuccessMockExpectations( service.GetMockServiceProcessControl()->SetConnectSuccessMockExpectations();
false);
service.GetMockCloudPrintProxy().ReturnEnabledInfo(); service.GetMockCloudPrintProxy().ReturnEnabledInfo();
sync_preferences::TestingPrefServiceSyncable* prefs = sync_preferences::TestingPrefServiceSyncable* prefs =
...@@ -310,8 +304,7 @@ TEST_F(CloudPrintProxyPolicyTest, StartWithPolicySetProxyEnabled) { ...@@ -310,8 +304,7 @@ TEST_F(CloudPrintProxyPolicyTest, StartWithPolicySetProxyEnabled) {
TEST_F(CloudPrintProxyPolicyTest, StartWithNoPolicyProxyDisabledThenSetPolicy) { TEST_F(CloudPrintProxyPolicyTest, StartWithNoPolicyProxyDisabledThenSetPolicy) {
TestCloudPrintProxyService service(&profile_); TestCloudPrintProxyService service(&profile_);
service.GetMockServiceProcessControl()->SetConnectSuccessMockExpectations( service.GetMockServiceProcessControl()->SetConnectSuccessMockExpectations();
false);
service.GetMockCloudPrintProxy().ReturnDisabledInfo(); service.GetMockCloudPrintProxy().ReturnDisabledInfo();
sync_preferences::TestingPrefServiceSyncable* prefs = sync_preferences::TestingPrefServiceSyncable* prefs =
...@@ -333,8 +326,7 @@ TEST_F(CloudPrintProxyPolicyTest, StartWithNoPolicyProxyDisabledThenSetPolicy) { ...@@ -333,8 +326,7 @@ TEST_F(CloudPrintProxyPolicyTest, StartWithNoPolicyProxyDisabledThenSetPolicy) {
TEST_F(CloudPrintProxyPolicyTest, StartWithNoPolicyProxyEnabledThenSetPolicy) { TEST_F(CloudPrintProxyPolicyTest, StartWithNoPolicyProxyEnabledThenSetPolicy) {
TestCloudPrintProxyService service(&profile_); TestCloudPrintProxyService service(&profile_);
service.GetMockServiceProcessControl()->SetConnectSuccessMockExpectations( service.GetMockServiceProcessControl()->SetConnectSuccessMockExpectations();
false);
service.GetMockCloudPrintProxy().ReturnEnabledInfo(); service.GetMockCloudPrintProxy().ReturnEnabledInfo();
sync_preferences::TestingPrefServiceSyncable* prefs = sync_preferences::TestingPrefServiceSyncable* prefs =
...@@ -359,8 +351,7 @@ TEST_F(CloudPrintProxyPolicyTest, ...@@ -359,8 +351,7 @@ TEST_F(CloudPrintProxyPolicyTest,
StartWithPolicySetProxyDisabledThenClearPolicy) { StartWithPolicySetProxyDisabledThenClearPolicy) {
TestCloudPrintProxyService service(&profile_); TestCloudPrintProxyService service(&profile_);
service.GetMockServiceProcessControl()->SetConnectSuccessMockExpectations( service.GetMockServiceProcessControl()->SetConnectSuccessMockExpectations();
false);
service.GetMockCloudPrintProxy().ReturnDisabledInfo(); service.GetMockCloudPrintProxy().ReturnDisabledInfo();
sync_preferences::TestingPrefServiceSyncable* prefs = sync_preferences::TestingPrefServiceSyncable* prefs =
...@@ -381,8 +372,7 @@ TEST_F(CloudPrintProxyPolicyTest, ...@@ -381,8 +372,7 @@ TEST_F(CloudPrintProxyPolicyTest,
StartWithPolicySetProxyEnabledThenClearPolicy) { StartWithPolicySetProxyEnabledThenClearPolicy) {
TestCloudPrintProxyService service(&profile_); TestCloudPrintProxyService service(&profile_);
service.GetMockServiceProcessControl()->SetConnectSuccessMockExpectations( service.GetMockServiceProcessControl()->SetConnectSuccessMockExpectations();
false);
service.GetMockCloudPrintProxy().ReturnEnabledInfo(); service.GetMockCloudPrintProxy().ReturnEnabledInfo();
sync_preferences::TestingPrefServiceSyncable* prefs = sync_preferences::TestingPrefServiceSyncable* prefs =
...@@ -403,8 +393,7 @@ TEST_F(CloudPrintProxyPolicyTest, ...@@ -403,8 +393,7 @@ TEST_F(CloudPrintProxyPolicyTest,
TEST_F(CloudPrintProxyPolicyTest, StartWithNoPolicyProxyDisabledThenEnable) { TEST_F(CloudPrintProxyPolicyTest, StartWithNoPolicyProxyDisabledThenEnable) {
TestCloudPrintProxyService service(&profile_); TestCloudPrintProxyService service(&profile_);
service.GetMockServiceProcessControl()->SetConnectSuccessMockExpectations( service.GetMockServiceProcessControl()->SetConnectSuccessMockExpectations();
false);
service.GetMockCloudPrintProxy().ReturnDisabledInfo(); service.GetMockCloudPrintProxy().ReturnDisabledInfo();
sync_preferences::TestingPrefServiceSyncable* prefs = sync_preferences::TestingPrefServiceSyncable* prefs =
...@@ -427,8 +416,7 @@ TEST_F(CloudPrintProxyPolicyTest, ...@@ -427,8 +416,7 @@ TEST_F(CloudPrintProxyPolicyTest,
StartWithPolicySetProxyEnabledThenClearPolicyAndEnable) { StartWithPolicySetProxyEnabledThenClearPolicyAndEnable) {
TestCloudPrintProxyService service(&profile_); TestCloudPrintProxyService service(&profile_);
service.GetMockServiceProcessControl()->SetConnectSuccessMockExpectations( service.GetMockServiceProcessControl()->SetConnectSuccessMockExpectations();
false);
service.GetMockCloudPrintProxy().ReturnEnabledInfo(); service.GetMockCloudPrintProxy().ReturnEnabledInfo();
sync_preferences::TestingPrefServiceSyncable* prefs = sync_preferences::TestingPrefServiceSyncable* prefs =
......
...@@ -159,7 +159,7 @@ void ServiceProcessControl::RunConnectDoneTasks() { ...@@ -159,7 +159,7 @@ void ServiceProcessControl::RunConnectDoneTasks() {
void ServiceProcessControl::RunAllTasksHelper(TaskList* task_list) { void ServiceProcessControl::RunAllTasksHelper(TaskList* task_list) {
TaskList::iterator index = task_list->begin(); TaskList::iterator index = task_list->begin();
while (index != task_list->end()) { while (index != task_list->end()) {
(*index).Run(); std::move(*index).Run();
index = task_list->erase(index); index = task_list->erase(index);
} }
} }
...@@ -168,16 +168,15 @@ bool ServiceProcessControl::IsConnected() const { ...@@ -168,16 +168,15 @@ bool ServiceProcessControl::IsConnected() const {
return !!service_process_; return !!service_process_;
} }
void ServiceProcessControl::Launch(const base::Closure& success_task, void ServiceProcessControl::Launch(base::OnceClosure success_task,
const base::Closure& failure_task) { base::OnceClosure failure_task) {
DCHECK_CURRENTLY_ON(BrowserThread::UI); DCHECK_CURRENTLY_ON(BrowserThread::UI);
base::Closure failure = failure_task; if (success_task)
if (!success_task.is_null()) connect_success_tasks_.emplace_back(std::move(success_task));
connect_success_tasks_.push_back(success_task);
if (!failure.is_null()) if (failure_task)
connect_failure_tasks_.push_back(failure); connect_failure_tasks_.emplace_back(std::move(failure_task));
// If we already in the process of launching, then we are done. // If we already in the process of launching, then we are done.
if (launcher_.get()) if (launcher_.get())
......
...@@ -87,8 +87,8 @@ class ServiceProcessControl : public UpgradeObserver { ...@@ -87,8 +87,8 @@ class ServiceProcessControl : public UpgradeObserver {
// Note that if we are already connected to service process then // Note that if we are already connected to service process then
// |success_task| can be invoked in the context of the Launch call. // |success_task| can be invoked in the context of the Launch call.
// Virtual for testing. // Virtual for testing.
virtual void Launch(const base::Closure& success_task, virtual void Launch(base::OnceClosure success_task,
const base::Closure& failure_task); base::OnceClosure failure_task);
// Disconnect the IPC channel from the service process. // Disconnect the IPC channel from the service process.
// Virtual for testing. // Virtual for testing.
...@@ -155,7 +155,7 @@ class ServiceProcessControl : public UpgradeObserver { ...@@ -155,7 +155,7 @@ class ServiceProcessControl : public UpgradeObserver {
friend struct base::DefaultSingletonTraits<ServiceProcessControl>; friend struct base::DefaultSingletonTraits<ServiceProcessControl>;
typedef std::vector<base::Closure> TaskList; using TaskList = std::vector<base::OnceClosure>;
void OnChannelConnected(); void OnChannelConnected();
void OnChannelError(); void OnChannelError();
......
...@@ -33,11 +33,8 @@ void CloudPrintMessageHandler::EnableCloudPrintProxyWithRobot( ...@@ -33,11 +33,8 @@ void CloudPrintMessageHandler::EnableCloudPrintProxyWithRobot(
const std::string& robot_email, const std::string& robot_email,
const std::string& user_email, const std::string& user_email,
base::Value user_settings) { base::Value user_settings) {
std::unique_ptr<base::DictionaryValue> user_settings_dict =
base::DictionaryValue::From(
base::Value::ToUniquePtrValue(std::move(user_settings)));
proxy_provider_->GetCloudPrintProxy()->EnableForUserWithRobot( proxy_provider_->GetCloudPrintProxy()->EnableForUserWithRobot(
robot_auth_code, robot_email, user_email, *user_settings_dict); robot_auth_code, robot_email, user_email, std::move(user_settings));
} }
void CloudPrintMessageHandler::GetCloudPrintProxyInfo( void CloudPrintMessageHandler::GetCloudPrintProxyInfo(
......
...@@ -73,11 +73,10 @@ void CloudPrintProxy::EnableForUser() { ...@@ -73,11 +73,10 @@ void CloudPrintProxy::EnableForUser() {
} }
} }
void CloudPrintProxy::EnableForUserWithRobot( void CloudPrintProxy::EnableForUserWithRobot(const std::string& robot_auth_code,
const std::string& robot_auth_code, const std::string& robot_email,
const std::string& robot_email, const std::string& user_email,
const std::string& user_email, base::Value user_settings) {
const base::DictionaryValue& user_settings) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
ShutdownBackend(); ShutdownBackend();
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include "base/macros.h" #include "base/macros.h"
#include "base/sequence_checker.h" #include "base/sequence_checker.h"
#include "base/values.h"
#include "chrome/service/cloud_print/cloud_print_proxy_backend.h" #include "chrome/service/cloud_print/cloud_print_proxy_backend.h"
#include "chrome/service/cloud_print/cloud_print_wipeout.h" #include "chrome/service/cloud_print/cloud_print_wipeout.h"
...@@ -47,11 +48,10 @@ class CloudPrintProxy : public CloudPrintProxyFrontend, ...@@ -47,11 +48,10 @@ class CloudPrintProxy : public CloudPrintProxyFrontend,
// Enables/disables cloud printing for the user // Enables/disables cloud printing for the user
void EnableForUser(); void EnableForUser();
void EnableForUserWithRobot( void EnableForUserWithRobot(const std::string& robot_auth_code,
const std::string& robot_auth_code, const std::string& robot_email,
const std::string& robot_email, const std::string& user_email,
const std::string& user_email, base::Value user_settings);
const base::DictionaryValue& user_settings);
void UnregisterPrintersAndDisableForUser(); void UnregisterPrintersAndDisableForUser();
void DisableForUser(); void DisableForUser();
// Returns the proxy info. // Returns the proxy info.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment