Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(683)

Unified Diff: chrome/browser/chromeos/login/signed_settings_helper.cc

Issue 8727037: Signed settings refactoring: Proper caching and more tests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed comments. Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 e61cdb181db1048303838a131865e3febc474f86..200dab6428763d400cbc2a43df539863f11faeb4 100644
--- a/chrome/browser/chromeos/login/signed_settings_helper.cc
+++ b/chrome/browser/chromeos/login/signed_settings_helper.cc
@@ -49,15 +49,8 @@ class OpContext {
delegate->OnOpStarted(this);
}
- // Cancels the callback.
- void CancelCallback() {
- callback_ = NULL;
- }
-
// Cancels the callback and cancels the op if it is not executing.
void Cancel() {
- CancelCallback();
-
if (!executing_)
OnOpCompleted();
}
@@ -67,20 +60,14 @@ class OpContext {
return op_.get();
}
- SignedSettingsHelper::Callback* callback() const {
- return callback_;
- }
-
void set_delegate(Delegate* delegate) {
delegate_ = delegate;
}
protected:
- OpContext(SignedSettingsHelper::Callback* callback,
- Delegate* delegate)
+ explicit OpContext(Delegate* delegate)
: executing_(false),
- delegate_(delegate),
- callback_(callback) {
+ delegate_(delegate) {
}
// Creates the op to execute.
@@ -98,82 +85,17 @@ class OpContext {
Delegate* delegate_;
scoped_refptr<SignedSettings> op_;
- SignedSettingsHelper::Callback* callback_;
-};
-
-class StorePropertyOpContext : public SignedSettings::Delegate<bool>,
- public OpContext {
- public:
- StorePropertyOpContext(const std::string& name,
- const base::Value& value,
- SignedSettingsHelper::Callback* callback,
- OpContext::Delegate* delegate)
- : OpContext(callback, delegate),
- name_(name),
- value_(value.DeepCopy()) {
- }
-
- // chromeos::SignedSettings::Delegate implementation
- virtual void OnSettingsOpCompleted(SignedSettings::ReturnCode code,
- bool unused) OVERRIDE {
- VLOG(2) << "OnSettingsOpCompleted, code = " << code;
- if (callback_)
- callback_->OnStorePropertyCompleted(code, name_, *value_);
- OnOpCompleted();
- }
-
- protected:
- // OpContext implemenetation
- virtual void CreateOp() OVERRIDE {
- op_ = SignedSettings::CreateStorePropertyOp(name_, *value_, this);
- }
-
- private:
- std::string name_;
- scoped_ptr<base::Value> value_;
-
- DISALLOW_COPY_AND_ASSIGN(StorePropertyOpContext);
};
-class RetrievePropertyOpContext
- : public SignedSettings::Delegate<const base::Value*>,
+class StorePolicyOpContext
+ : public SignedSettings::Delegate<bool>,
public OpContext {
public:
- RetrievePropertyOpContext(const std::string& name,
- SignedSettingsHelper::Callback* callback,
- OpContext::Delegate* delegate)
- : OpContext(callback, delegate),
- name_(name) {
- }
-
- // chromeos::SignedSettings::Delegate implementation
- virtual void OnSettingsOpCompleted(SignedSettings::ReturnCode code,
- const base::Value* value) OVERRIDE {
- if (callback_)
- callback_->OnRetrievePropertyCompleted(code, name_, value);
-
- OnOpCompleted();
- }
-
- protected:
- // OpContext implemenetation
- virtual void CreateOp() OVERRIDE {
- op_ = SignedSettings::CreateRetrievePropertyOp(name_, this);
- }
-
- private:
- std::string name_;
-
- DISALLOW_COPY_AND_ASSIGN(RetrievePropertyOpContext);
-};
-
-class StorePolicyOpContext : public SignedSettings::Delegate<bool>,
- public OpContext {
- public:
StorePolicyOpContext(const em::PolicyFetchResponse& policy,
- SignedSettingsHelper::Callback* callback,
+ SignedSettingsHelper::StorePolicyCallback callback,
OpContext::Delegate* delegate)
- : OpContext(callback, delegate),
+ : OpContext(delegate),
+ callback_(callback),
policy_(policy) {
}
@@ -181,8 +103,7 @@ class StorePolicyOpContext : public SignedSettings::Delegate<bool>,
virtual void OnSettingsOpCompleted(SignedSettings::ReturnCode code,
bool unused) OVERRIDE {
VLOG(2) << "OnSettingsOpCompleted, code = " << code;
- if (callback_)
- callback_->OnStorePolicyCompleted(code);
+ callback_.Run(code);
OnOpCompleted();
}
@@ -193,7 +114,9 @@ class StorePolicyOpContext : public SignedSettings::Delegate<bool>,
}
private:
+ SignedSettingsHelper::StorePolicyCallback callback_;
em::PolicyFetchResponse policy_;
+
DISALLOW_COPY_AND_ASSIGN(StorePolicyOpContext);
};
@@ -201,17 +124,17 @@ class RetrievePolicyOpContext
: public SignedSettings::Delegate<const em::PolicyFetchResponse&>,
public OpContext {
public:
- RetrievePolicyOpContext(SignedSettingsHelper::Callback* callback,
+ RetrievePolicyOpContext(SignedSettingsHelper::RetrievePolicyCallback callback,
OpContext::Delegate* delegate)
- : OpContext(callback, delegate) {
+ : OpContext(delegate),
+ callback_(callback){
}
// chromeos::SignedSettings::Delegate implementation
virtual void OnSettingsOpCompleted(
SignedSettings::ReturnCode code,
const em::PolicyFetchResponse& policy) OVERRIDE {
- if (callback_)
- callback_->OnRetrievePolicyCompleted(code, policy);
+ callback_.Run(code, policy);
OnOpCompleted();
}
@@ -222,6 +145,8 @@ class RetrievePolicyOpContext
}
private:
+ SignedSettingsHelper::RetrievePolicyCallback callback_;
+
DISALLOW_COPY_AND_ASSIGN(RetrievePolicyOpContext);
};
@@ -232,15 +157,9 @@ class SignedSettingsHelperImpl : public SignedSettingsHelper,
public OpContext::Delegate {
public:
// SignedSettingsHelper implementation
- virtual void StartStorePropertyOp(const std::string& name,
- const base::Value& value,
- Callback* callback) OVERRIDE;
- virtual void StartRetrieveProperty(const std::string& name,
- 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;
+ StorePolicyCallback callback) OVERRIDE;
+ virtual void StartRetrievePolicyOp(RetrievePolicyCallback callback) OVERRIDE;
// OpContext::Delegate implementation
virtual void OnOpCreated(OpContext* context);
@@ -249,7 +168,7 @@ class SignedSettingsHelperImpl : public SignedSettingsHelper,
private:
SignedSettingsHelperImpl();
- ~SignedSettingsHelperImpl();
+ virtual ~SignedSettingsHelperImpl();
void AddOpContext(OpContext* context);
void ClearAll();
@@ -274,48 +193,17 @@ SignedSettingsHelperImpl::~SignedSettingsHelperImpl() {
}
}
-void SignedSettingsHelperImpl::StartStorePropertyOp(
- const std::string& name,
- const base::Value& value,
- SignedSettingsHelper::Callback* callback) {
- AddOpContext(new StorePropertyOpContext(
- name,
- value,
- callback,
- this));
-}
-
-void SignedSettingsHelperImpl::StartRetrieveProperty(
- const std::string& name,
- SignedSettingsHelper::Callback* callback) {
- AddOpContext(new RetrievePropertyOpContext(
- name,
- callback,
- this));
-}
-
void SignedSettingsHelperImpl::StartStorePolicyOp(
const em::PolicyFetchResponse& policy,
- SignedSettingsHelper::Callback* callback) {
+ StorePolicyCallback callback) {
AddOpContext(new StorePolicyOpContext(policy, callback, this));
}
void SignedSettingsHelperImpl::StartRetrievePolicyOp(
- SignedSettingsHelper::Callback* callback) {
+ RetrievePolicyCallback callback) {
AddOpContext(new RetrievePolicyOpContext(callback, this));
}
-void SignedSettingsHelperImpl::CancelCallback(
- SignedSettingsHelper::Callback* callback) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
-
- for (size_t i = 0; i < pending_contexts_.size(); ++i) {
- if (pending_contexts_[i]->callback() == callback) {
- pending_contexts_[i]->CancelCallback();
- }
- }
-}
-
void SignedSettingsHelperImpl::AddOpContext(OpContext* context) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
CHECK(context);

Powered by Google App Engine
This is Rietveld 408576698