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

Side by Side Diff: chrome/browser/chromeos/login/signed_settings_helper.cc

Issue 5671003: [Chrome OS] Plumb new error codes from SignedSettings to consumers of the API (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: remove untoward log statement Created 10 years 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/chromeos/login/signed_settings_helper.h" 5 #include "chrome/browser/chromeos/login/signed_settings_helper.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 virtual void CreateOp() = 0; 83 virtual void CreateOp() = 0;
84 84
85 // Callback on op completion. 85 // Callback on op completion.
86 virtual void OnOpCompleted() { 86 virtual void OnOpCompleted() {
87 if (delegate_) 87 if (delegate_)
88 delegate_->OnOpCompleted(this); 88 delegate_->OnOpCompleted(this);
89 89
90 delete this; 90 delete this;
91 } 91 }
92 92
93 // Callback on op failure.
94 virtual void OnOpFailed() {
95 OnOpCompleted();
96 }
97
98 bool executing_; 93 bool executing_;
99 Delegate* delegate_; 94 Delegate* delegate_;
100 95
101 scoped_refptr<SignedSettings> op_; 96 scoped_refptr<SignedSettings> op_;
102 SignedSettingsHelper::Callback* callback_; 97 SignedSettingsHelper::Callback* callback_;
103 }; 98 };
104 99
105 class WhitelistOpContext : public SignedSettings::Delegate<bool>, 100 class WhitelistOpContext : public SignedSettings::Delegate<bool>,
106 public OpContext { 101 public OpContext {
107 public: 102 public:
108 enum Type { 103 enum Type {
109 CHECK, 104 CHECK,
110 ADD, 105 ADD,
111 REMOVE, 106 REMOVE,
112 }; 107 };
113 108
114 WhitelistOpContext(Type type, 109 WhitelistOpContext(Type type,
115 const std::string& email, 110 const std::string& email,
116 SignedSettingsHelper::Callback* callback, 111 SignedSettingsHelper::Callback* callback,
117 Delegate* delegate) 112 Delegate* delegate)
118 : OpContext(callback, delegate), 113 : OpContext(callback, delegate),
119 type_(type), 114 type_(type),
120 email_(email) { 115 email_(email) {
121 } 116 }
122 117
123 // chromeos::SignedSettings::Delegate implementation 118 // chromeos::SignedSettings::Delegate implementation
124 virtual void OnSettingsOpSucceeded(bool value) { 119 virtual void OnSettingsOpCompleted(SignedSettings::ReturnCode code,
120 bool value) {
125 if (callback_) { 121 if (callback_) {
126 switch (type_) { 122 switch (type_) {
127 case CHECK: 123 case CHECK:
128 callback_->OnCheckWhiteListCompleted(value, email_); 124 callback_->OnCheckWhitelistCompleted(code, email_);
129 break; 125 break;
130 case ADD: 126 case ADD:
131 callback_->OnWhitelistCompleted(value, email_); 127 callback_->OnWhitelistCompleted(code, email_);
132 break; 128 break;
133 case REMOVE: 129 case REMOVE:
134 callback_->OnUnwhitelistCompleted(value, email_); 130 callback_->OnUnwhitelistCompleted(code, email_);
135 break; 131 break;
136 default: 132 default:
137 LOG(ERROR) << "Unknown WhitelistOpContext type " << type_; 133 LOG(ERROR) << "Unknown WhitelistOpContext type " << type_;
138 break; 134 break;
139 } 135 }
140 } 136 }
141
142 OnOpCompleted(); 137 OnOpCompleted();
143 } 138 }
144 139
145 virtual void OnSettingsOpFailed(SignedSettings::FailureCode code) {
146 OnOpFailed();
147 }
148
149 protected: 140 protected:
150 // OpContext implemenetation 141 // OpContext implemenetation
151 virtual void CreateOp() { 142 virtual void CreateOp() {
152 switch (type_) { 143 switch (type_) {
153 case CHECK: 144 case CHECK:
154 op_ = SignedSettings::CreateCheckWhitelistOp(email_, this); 145 op_ = SignedSettings::CreateCheckWhitelistOp(email_, this);
155 break; 146 break;
156 case ADD: 147 case ADD:
157 op_ = SignedSettings::CreateWhitelistOp(email_, true, this); 148 op_ = SignedSettings::CreateWhitelistOp(email_, true, this);
158 break; 149 break;
159 case REMOVE: 150 case REMOVE:
160 op_ = SignedSettings::CreateWhitelistOp(email_, false, this); 151 op_ = SignedSettings::CreateWhitelistOp(email_, false, this);
161 break; 152 break;
162 default: 153 default:
163 LOG(ERROR) << "Unknown WhitelistOpContext type " << type_; 154 LOG(ERROR) << "Unknown WhitelistOpContext type " << type_;
164 break; 155 break;
165 } 156 }
166 } 157 }
167 158
168 virtual void OnOpFailed() {
169 if (callback_) {
170 switch (type_) {
171 case CHECK:
172 callback_->OnCheckWhiteListCompleted(false, email_);
173 break;
174 case ADD:
175 callback_->OnWhitelistCompleted(false, email_);
176 break;
177 case REMOVE:
178 callback_->OnUnwhitelistCompleted(false, email_);
179 break;
180 default:
181 LOG(ERROR) << "Unknown WhitelistOpContext type " << type_;
182 break;
183 }
184 }
185
186 OnOpCompleted();
187 }
188
189 private: 159 private:
190 Type type_; 160 Type type_;
191 std::string email_; 161 std::string email_;
192 162
193 DISALLOW_COPY_AND_ASSIGN(WhitelistOpContext); 163 DISALLOW_COPY_AND_ASSIGN(WhitelistOpContext);
194 }; 164 };
195 165
196 class StorePropertyOpContext : public SignedSettings::Delegate<bool>, 166 class StorePropertyOpContext : public SignedSettings::Delegate<bool>,
197 public OpContext { 167 public OpContext {
198 public: 168 public:
199 StorePropertyOpContext(const std::string& name, 169 StorePropertyOpContext(const std::string& name,
200 const std::string& value, 170 const std::string& value,
201 SignedSettingsHelper::Callback* callback, 171 SignedSettingsHelper::Callback* callback,
202 Delegate* delegate) 172 Delegate* delegate)
203 : OpContext(callback, delegate), 173 : OpContext(callback, delegate),
204 name_(name), 174 name_(name),
205 value_(value) { 175 value_(value) {
206 } 176 }
207 177
208 // chromeos::SignedSettings::Delegate implementation 178 // chromeos::SignedSettings::Delegate implementation
209 virtual void OnSettingsOpSucceeded(bool value) { 179 virtual void OnSettingsOpCompleted(SignedSettings::ReturnCode code,
180 bool unused) {
181 VLOG(2) << "OnSettingsOpCompleted, code = " << code;
210 if (callback_) 182 if (callback_)
211 callback_->OnStorePropertyCompleted(true, name_, value_); 183 callback_->OnStorePropertyCompleted(code, name_, value_);
212 OnOpCompleted(); 184 OnOpCompleted();
213 } 185 }
214 186
215 virtual void OnSettingsOpFailed(SignedSettings::FailureCode code) {
216 OnOpFailed();
217 }
218
219 protected: 187 protected:
220 // OpContext implemenetation 188 // OpContext implemenetation
221 virtual void CreateOp() { 189 virtual void CreateOp() {
222 op_ = SignedSettings::CreateStorePropertyOp(name_, value_, this); 190 op_ = SignedSettings::CreateStorePropertyOp(name_, value_, this);
223 } 191 }
224 192
225 virtual void OnOpFailed() {
226 if (callback_)
227 callback_->OnStorePropertyCompleted(false, name_, value_);
228 OnOpCompleted();
229 }
230
231 private: 193 private:
232 std::string name_; 194 std::string name_;
233 std::string value_; 195 std::string value_;
234 196
235 DISALLOW_COPY_AND_ASSIGN(StorePropertyOpContext); 197 DISALLOW_COPY_AND_ASSIGN(StorePropertyOpContext);
236 }; 198 };
237 199
238 class RetrievePropertyOpContext 200 class RetrievePropertyOpContext
239 : public SignedSettings::Delegate<std::string>, 201 : public SignedSettings::Delegate<std::string>,
240 public OpContext { 202 public OpContext {
241 public: 203 public:
242 RetrievePropertyOpContext(const std::string& name, 204 RetrievePropertyOpContext(const std::string& name,
243 SignedSettingsHelper::Callback* callback, 205 SignedSettingsHelper::Callback* callback,
244 Delegate* delegate) 206 Delegate* delegate)
245 : OpContext(callback, delegate), 207 : OpContext(callback, delegate),
246 name_(name) { 208 name_(name) {
247 } 209 }
248 210
249 // chromeos::SignedSettings::Delegate implementation 211 // chromeos::SignedSettings::Delegate implementation
250 virtual void OnSettingsOpSucceeded(std::string value) { 212 virtual void OnSettingsOpCompleted(SignedSettings::ReturnCode code,
213 std::string value) {
251 if (callback_) 214 if (callback_)
252 callback_->OnRetrievePropertyCompleted(true, name_, value); 215 callback_->OnRetrievePropertyCompleted(code, name_, value);
253 216
254 OnOpCompleted(); 217 OnOpCompleted();
255 } 218 }
256 219
257 virtual void OnSettingsOpFailed(SignedSettings::FailureCode code) {
258 OnOpFailed();
259 }
260
261 protected: 220 protected:
262 // OpContext implemenetation 221 // OpContext implemenetation
263 virtual void CreateOp() { 222 virtual void CreateOp() {
264 op_ = SignedSettings::CreateRetrievePropertyOp(name_, this); 223 op_ = SignedSettings::CreateRetrievePropertyOp(name_, this);
265 } 224 }
266 225
267 virtual void OnOpFailed() {
268 if (callback_)
269 callback_->OnRetrievePropertyCompleted(false, name_, std::string());
270 OnOpCompleted();
271 }
272
273 private: 226 private:
274 std::string name_; 227 std::string name_;
275 228
276 DISALLOW_COPY_AND_ASSIGN(RetrievePropertyOpContext); 229 DISALLOW_COPY_AND_ASSIGN(RetrievePropertyOpContext);
277 }; 230 };
278 231
279 } // namespace 232 } // namespace
280 233
281 234
282 class SignedSettingsHelperImpl : public SignedSettingsHelper, 235 class SignedSettingsHelperImpl : public SignedSettingsHelper,
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
415 368
416 if (test_delegate_) 369 if (test_delegate_)
417 test_delegate_->OnOpCompleted(context->op()); 370 test_delegate_->OnOpCompleted(context->op());
418 } 371 }
419 372
420 SignedSettingsHelper* SignedSettingsHelper::Get() { 373 SignedSettingsHelper* SignedSettingsHelper::Get() {
421 return Singleton<SignedSettingsHelperImpl>::get(); 374 return Singleton<SignedSettingsHelperImpl>::get();
422 } 375 }
423 376
424 } // namespace chromeos 377 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698