| 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
|
| deleted file mode 100644
|
| index 76f1fefc3f1dd4440305418a77983fd0376243d1..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/chromeos/login/signed_settings_helper.cc
|
| +++ /dev/null
|
| @@ -1,251 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "chrome/browser/chromeos/login/signed_settings_helper.h"
|
| -
|
| -#include <vector>
|
| -
|
| -#include "base/lazy_instance.h"
|
| -#include "base/logging.h"
|
| -#include "base/memory/ref_counted.h"
|
| -#include "chrome/browser/policy/proto/device_management_backend.pb.h"
|
| -#include "content/public/browser/browser_thread.h"
|
| -
|
| -using content::BrowserThread;
|
| -
|
| -namespace em = enterprise_management;
|
| -
|
| -namespace chromeos {
|
| -
|
| -namespace {
|
| -
|
| -class OpContext {
|
| - public:
|
| - class Delegate {
|
| - public:
|
| - virtual void OnOpCreated(OpContext* context) = 0;
|
| - virtual void OnOpStarted(OpContext* context) = 0;
|
| - virtual void OnOpCompleted(OpContext* context) = 0;
|
| - };
|
| -
|
| - virtual ~OpContext() {}
|
| -
|
| - // Creates and execute op.
|
| - void Execute() {
|
| - CreateOp();
|
| - CHECK(op_.get());
|
| - if (delegate_)
|
| - delegate_->OnOpCreated(this);
|
| -
|
| - // Note that the context could be released when op_->Execute() returns.
|
| - // So keep a local copy of delegate and executing flag to use after
|
| - // the call.
|
| - Delegate* delegate = delegate_;
|
| - executing_ = true;
|
| - op_->Execute();
|
| - if (delegate)
|
| - delegate->OnOpStarted(this);
|
| - }
|
| -
|
| - // Cancels the callback and cancels the op if it is not executing.
|
| - void Cancel() {
|
| - if (!executing_)
|
| - OnOpCompleted();
|
| - }
|
| -
|
| - // Accessors.
|
| - SignedSettings* op() const {
|
| - return op_.get();
|
| - }
|
| -
|
| - void set_delegate(Delegate* delegate) {
|
| - delegate_ = delegate;
|
| - }
|
| -
|
| - protected:
|
| - explicit OpContext(Delegate* delegate)
|
| - : executing_(false),
|
| - delegate_(delegate) {
|
| - }
|
| -
|
| - // Creates the op to execute.
|
| - virtual void CreateOp() = 0;
|
| -
|
| - // Callback on op completion.
|
| - virtual void OnOpCompleted() {
|
| - if (delegate_)
|
| - delegate_->OnOpCompleted(this);
|
| -
|
| - delete this;
|
| - }
|
| -
|
| - bool executing_;
|
| - Delegate* delegate_;
|
| -
|
| - scoped_refptr<SignedSettings> op_;
|
| -};
|
| -
|
| -class StorePolicyOpContext
|
| - : public SignedSettings::Delegate<bool>,
|
| - public OpContext {
|
| - public:
|
| - StorePolicyOpContext(const em::PolicyFetchResponse& policy,
|
| - SignedSettingsHelper::StorePolicyCallback callback,
|
| - OpContext::Delegate* delegate)
|
| - : OpContext(delegate),
|
| - callback_(callback),
|
| - policy_(policy) {
|
| - }
|
| -
|
| - // chromeos::SignedSettings::Delegate implementation
|
| - virtual void OnSettingsOpCompleted(SignedSettings::ReturnCode code,
|
| - bool unused) OVERRIDE {
|
| - VLOG(2) << "OnSettingsOpCompleted, code = " << code;
|
| - callback_.Run(code);
|
| - OnOpCompleted();
|
| - }
|
| -
|
| - protected:
|
| - // OpContext implementation
|
| - virtual void CreateOp() OVERRIDE {
|
| - op_ = SignedSettings::CreateStorePolicyOp(&policy_, this);
|
| - }
|
| -
|
| - private:
|
| - SignedSettingsHelper::StorePolicyCallback callback_;
|
| - em::PolicyFetchResponse policy_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(StorePolicyOpContext);
|
| -};
|
| -
|
| -class RetrievePolicyOpContext
|
| - : public SignedSettings::Delegate<const em::PolicyFetchResponse&>,
|
| - public OpContext {
|
| - public:
|
| - RetrievePolicyOpContext(SignedSettingsHelper::RetrievePolicyCallback callback,
|
| - OpContext::Delegate* delegate)
|
| - : OpContext(delegate),
|
| - callback_(callback){
|
| - }
|
| -
|
| - // chromeos::SignedSettings::Delegate implementation
|
| - virtual void OnSettingsOpCompleted(
|
| - SignedSettings::ReturnCode code,
|
| - const em::PolicyFetchResponse& policy) OVERRIDE {
|
| - callback_.Run(code, policy);
|
| - OnOpCompleted();
|
| - }
|
| -
|
| - protected:
|
| - // OpContext implementation
|
| - virtual void CreateOp() OVERRIDE {
|
| - op_ = SignedSettings::CreateRetrievePolicyOp(this);
|
| - }
|
| -
|
| - private:
|
| - SignedSettingsHelper::RetrievePolicyCallback callback_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(RetrievePolicyOpContext);
|
| -};
|
| -
|
| -} // namespace
|
| -
|
| -
|
| -class SignedSettingsHelperImpl : public SignedSettingsHelper,
|
| - public OpContext::Delegate {
|
| - public:
|
| - // SignedSettingsHelper implementation
|
| - virtual void StartStorePolicyOp(const em::PolicyFetchResponse& policy,
|
| - StorePolicyCallback callback) OVERRIDE;
|
| - virtual void StartRetrievePolicyOp(RetrievePolicyCallback callback) OVERRIDE;
|
| -
|
| - // OpContext::Delegate implementation
|
| - virtual void OnOpCreated(OpContext* context);
|
| - virtual void OnOpStarted(OpContext* context);
|
| - virtual void OnOpCompleted(OpContext* context);
|
| -
|
| - private:
|
| - SignedSettingsHelperImpl();
|
| - virtual ~SignedSettingsHelperImpl();
|
| -
|
| - void AddOpContext(OpContext* context);
|
| - void ClearAll();
|
| -
|
| - std::vector<OpContext*> pending_contexts_;
|
| -
|
| - friend struct base::DefaultLazyInstanceTraits<SignedSettingsHelperImpl>;
|
| - DISALLOW_COPY_AND_ASSIGN(SignedSettingsHelperImpl);
|
| -};
|
| -
|
| -static base::LazyInstance<SignedSettingsHelperImpl>
|
| - g_signed_settings_helper_impl = LAZY_INSTANCE_INITIALIZER;
|
| -
|
| -SignedSettingsHelperImpl::SignedSettingsHelperImpl() {
|
| -}
|
| -
|
| -SignedSettingsHelperImpl::~SignedSettingsHelperImpl() {
|
| - if (!pending_contexts_.empty()) {
|
| - LOG(WARNING) << "SignedSettingsHelperImpl shutdown with pending ops, "
|
| - << "changes will be lost.";
|
| - ClearAll();
|
| - }
|
| -}
|
| -
|
| -void SignedSettingsHelperImpl::StartStorePolicyOp(
|
| - const em::PolicyFetchResponse& policy,
|
| - StorePolicyCallback callback) {
|
| - AddOpContext(new StorePolicyOpContext(policy, callback, this));
|
| -}
|
| -
|
| -void SignedSettingsHelperImpl::StartRetrievePolicyOp(
|
| - RetrievePolicyCallback callback) {
|
| - AddOpContext(new RetrievePolicyOpContext(callback, this));
|
| -}
|
| -
|
| -void SignedSettingsHelperImpl::AddOpContext(OpContext* context) {
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| - CHECK(context);
|
| -
|
| - pending_contexts_.push_back(context);
|
| - if (pending_contexts_.size() == 1)
|
| - context->Execute();
|
| -}
|
| -
|
| -void SignedSettingsHelperImpl::ClearAll() {
|
| - for (size_t i = 0; i < pending_contexts_.size(); ++i) {
|
| - pending_contexts_[i]->set_delegate(NULL);
|
| - pending_contexts_[i]->Cancel();
|
| - }
|
| - pending_contexts_.clear();
|
| -}
|
| -
|
| -void SignedSettingsHelperImpl::OnOpCreated(OpContext* context) {
|
| - if (test_delegate_)
|
| - test_delegate_->OnOpCreated(context->op());
|
| -}
|
| -
|
| -void SignedSettingsHelperImpl::OnOpStarted(OpContext* context) {
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| -
|
| - if (test_delegate_)
|
| - test_delegate_->OnOpStarted(context->op());
|
| -}
|
| -
|
| -void SignedSettingsHelperImpl::OnOpCompleted(OpContext* context) {
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| - DCHECK(pending_contexts_.front() == context);
|
| -
|
| - pending_contexts_.erase(pending_contexts_.begin());
|
| - if (!pending_contexts_.empty())
|
| - pending_contexts_.front()->Execute();
|
| -
|
| - if (test_delegate_)
|
| - test_delegate_->OnOpCompleted(context->op());
|
| -}
|
| -
|
| -SignedSettingsHelper* SignedSettingsHelper::Get() {
|
| - return g_signed_settings_helper_impl.Pointer();
|
| -}
|
| -
|
| -} // namespace chromeos
|
|
|