| Index: chrome/browser/chromeos/login/signed_settings_helper.cc
|
| diff --git a/chrome/browser/chromeos/login/signed_settings_helper.cc b/chrome/browser/chromeos/login/signed_settings_helper.cc
|
| index d8f5613b587c720d371c5b1f53c46c0062f890c7..b83a170d0874764eb3aa861c5501ae8bed1df28f 100644
|
| --- a/chrome/browser/chromeos/login/signed_settings_helper.cc
|
| +++ b/chrome/browser/chromeos/login/signed_settings_helper.cc
|
| @@ -11,6 +11,7 @@
|
| #include "base/logging.h"
|
| #include "base/memory/ref_counted.h"
|
| #include "chrome/browser/chromeos/login/signed_settings.h"
|
| +#include "chrome/browser/policy/proto/device_management_backend.pb.h"
|
| #include "content/browser/browser_thread.h"
|
|
|
| namespace chromeos {
|
| @@ -54,7 +55,7 @@ class OpContext {
|
| void Cancel() {
|
| CancelCallback();
|
|
|
| - if (!executing_)
|
| + if (!executing_)
|
| OnOpCompleted();
|
| }
|
|
|
| @@ -117,7 +118,7 @@ class WhitelistOpContext : public SignedSettings::Delegate<bool>,
|
|
|
| // chromeos::SignedSettings::Delegate implementation
|
| virtual void OnSettingsOpCompleted(SignedSettings::ReturnCode code,
|
| - bool value) {
|
| + bool value) OVERRIDE {
|
| if (callback_) {
|
| switch (type_) {
|
| case CHECK:
|
| @@ -139,7 +140,7 @@ class WhitelistOpContext : public SignedSettings::Delegate<bool>,
|
|
|
| protected:
|
| // OpContext implemenetation
|
| - virtual void CreateOp() {
|
| + virtual void CreateOp() OVERRIDE {
|
| switch (type_) {
|
| case CHECK:
|
| op_ = SignedSettings::CreateCheckWhitelistOp(email_, this);
|
| @@ -177,7 +178,7 @@ class StorePropertyOpContext : public SignedSettings::Delegate<bool>,
|
|
|
| // chromeos::SignedSettings::Delegate implementation
|
| virtual void OnSettingsOpCompleted(SignedSettings::ReturnCode code,
|
| - bool unused) {
|
| + bool unused) OVERRIDE {
|
| VLOG(2) << "OnSettingsOpCompleted, code = " << code;
|
| if (callback_)
|
| callback_->OnStorePropertyCompleted(code, name_, value_);
|
| @@ -186,7 +187,7 @@ class StorePropertyOpContext : public SignedSettings::Delegate<bool>,
|
|
|
| protected:
|
| // OpContext implemenetation
|
| - virtual void CreateOp() {
|
| + virtual void CreateOp() OVERRIDE {
|
| op_ = SignedSettings::CreateStorePropertyOp(name_, value_, this);
|
| }
|
|
|
| @@ -210,7 +211,7 @@ class RetrievePropertyOpContext
|
|
|
| // chromeos::SignedSettings::Delegate implementation
|
| virtual void OnSettingsOpCompleted(SignedSettings::ReturnCode code,
|
| - std::string value) {
|
| + std::string value) OVERRIDE {
|
| if (callback_)
|
| callback_->OnRetrievePropertyCompleted(code, name_, value);
|
|
|
| @@ -219,7 +220,7 @@ class RetrievePropertyOpContext
|
|
|
| protected:
|
| // OpContext implemenetation
|
| - virtual void CreateOp() {
|
| + virtual void CreateOp() OVERRIDE {
|
| op_ = SignedSettings::CreateRetrievePropertyOp(name_, this);
|
| }
|
|
|
| @@ -229,6 +230,64 @@ class RetrievePropertyOpContext
|
| DISALLOW_COPY_AND_ASSIGN(RetrievePropertyOpContext);
|
| };
|
|
|
| +class StorePolicyOpContext : public SignedSettings::Delegate<bool>,
|
| + public OpContext {
|
| + public:
|
| + StorePolicyOpContext(const em::PolicyFetchResponse& policy,
|
| + SignedSettingsHelper::Callback* callback,
|
| + Delegate* delegate)
|
| + : OpContext(callback, delegate),
|
| + policy_(policy) {
|
| + }
|
| +
|
| + // chromeos::SignedSettings::Delegate implementation
|
| + virtual void OnSettingsOpCompleted(SignedSettings::ReturnCode code,
|
| + bool unused) OVERRIDE {
|
| + VLOG(2) << "OnSettingsOpCompleted, code = " << code;
|
| + if (callback_)
|
| + callback_->OnStorePolicyCompleted(code);
|
| + OnOpCompleted();
|
| + }
|
| +
|
| + protected:
|
| + // OpContext implementation
|
| + virtual void CreateOp() OVERRIDE {
|
| + op_ = SignedSettings::CreateStorePolicyOp(&policy_, this);
|
| + }
|
| +
|
| + private:
|
| + em::PolicyFetchResponse policy_;
|
| + DISALLOW_COPY_AND_ASSIGN(StorePolicyOpContext);
|
| +};
|
| +
|
| +class RetrievePolicyOpContext
|
| + : public SignedSettings::Delegate<const em::PolicyFetchResponse&>,
|
| + public OpContext {
|
| + public:
|
| + RetrievePolicyOpContext(SignedSettingsHelper::Callback* callback,
|
| + Delegate* delegate)
|
| + : OpContext(callback, delegate) {
|
| + }
|
| +
|
| + // chromeos::SignedSettings::Delegate implementation
|
| + virtual void OnSettingsOpCompleted(
|
| + SignedSettings::ReturnCode code,
|
| + const em::PolicyFetchResponse& policy) OVERRIDE {
|
| + if (callback_)
|
| + callback_->OnRetrievePolicyCompleted(code, policy);
|
| + OnOpCompleted();
|
| + }
|
| +
|
| + protected:
|
| + // OpContext implementation
|
| + virtual void CreateOp() OVERRIDE {
|
| + op_ = SignedSettings::CreateRetrievePolicyOp(this);
|
| + }
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(RetrievePolicyOpContext);
|
| +};
|
| +
|
| } // namespace
|
|
|
|
|
| @@ -237,16 +296,19 @@ class SignedSettingsHelperImpl : public SignedSettingsHelper,
|
| public:
|
| // SignedSettingsHelper implementation
|
| virtual void StartCheckWhitelistOp(const std::string& email,
|
| - Callback* callback);
|
| + Callback* callback) OVERRIDE;
|
| virtual void StartWhitelistOp(const std::string& email,
|
| bool add_to_whitelist,
|
| - Callback* callback);
|
| + Callback* callback) OVERRIDE;
|
| virtual void StartStorePropertyOp(const std::string& name,
|
| const std::string& value,
|
| - Callback* callback);
|
| + Callback* callback) OVERRIDE;
|
| virtual void StartRetrieveProperty(const std::string& name,
|
| - Callback* callback);
|
| - virtual void CancelCallback(Callback* callback);
|
| + Callback* callback) OVERRIDE;
|
| + virtual void StartStorePolicyOp(const em::PolicyFetchResponse& policy,
|
| + Callback* callback) OVERRIDE;
|
| + virtual void StartRetrievePolicyOp(Callback* callback) OVERRIDE;
|
| + virtual void CancelCallback(Callback* callback) OVERRIDE;
|
|
|
| // OpContext::Delegate implementation
|
| virtual void OnOpCreated(OpContext* context);
|
| @@ -304,7 +366,7 @@ void SignedSettingsHelperImpl::StartWhitelistOp(
|
| void SignedSettingsHelperImpl::StartStorePropertyOp(
|
| const std::string& name,
|
| const std::string& value,
|
| - SignedSettingsHelper::SignedSettingsHelper::Callback* callback) {
|
| + SignedSettingsHelper::Callback* callback) {
|
| AddOpContext(new StorePropertyOpContext(
|
| name,
|
| value,
|
| @@ -321,6 +383,17 @@ void SignedSettingsHelperImpl::StartRetrieveProperty(
|
| this));
|
| }
|
|
|
| +void SignedSettingsHelperImpl::StartStorePolicyOp(
|
| + const em::PolicyFetchResponse& policy,
|
| + SignedSettingsHelper::Callback* callback) {
|
| + AddOpContext(new StorePolicyOpContext(policy, callback, this));
|
| +}
|
| +
|
| +void SignedSettingsHelperImpl::StartRetrievePolicyOp(
|
| + SignedSettingsHelper::Callback* callback) {
|
| + AddOpContext(new RetrievePolicyOpContext(callback, this));
|
| +}
|
| +
|
| void SignedSettingsHelperImpl::CancelCallback(
|
| SignedSettingsHelper::Callback* callback) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
|
|