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

Side by Side Diff: chromeos/dbus/cryptohome_client.cc

Issue 10817007: Remove chromeos::CryptohomeLibrary::IsMounted and convert (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 8 years, 5 months 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "chromeos/dbus/cryptohome_client.h" 5 #include "chromeos/dbus/cryptohome_client.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/message_loop.h" 8 #include "base/message_loop.h"
9 #include "chromeos/dbus/blocking_method_caller.h" 9 #include "chromeos/dbus/blocking_method_caller.h"
10 #include "dbus/bus.h" 10 #include "dbus/bus.h"
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 OVERRIDE { 46 OVERRIDE {
47 async_call_status_handler_ = handler; 47 async_call_status_handler_ = handler;
48 } 48 }
49 49
50 // CryptohomeClient override. 50 // CryptohomeClient override.
51 virtual void ResetAsyncCallStatusHandler() OVERRIDE { 51 virtual void ResetAsyncCallStatusHandler() OVERRIDE {
52 async_call_status_handler_.Reset(); 52 async_call_status_handler_.Reset();
53 } 53 }
54 54
55 // CryptohomeClient override. 55 // CryptohomeClient override.
56 virtual bool IsMounted(bool* is_mounted) OVERRIDE { 56 virtual void IsMounted(const BoolMethodCallback& callback) {
57 INITIALIZE_METHOD_CALL(method_call, cryptohome::kCryptohomeIsMounted); 57 INITIALIZE_METHOD_CALL(method_call, cryptohome::kCryptohomeIsMounted);
58 return CallBoolMethodAndBlock(&method_call, is_mounted); 58 CallBoolMethod(&method_call, callback);
59 } 59 }
60 60
61 // CryptohomeClient override. 61 // CryptohomeClient override.
62 virtual bool Unmount(bool *success) OVERRIDE { 62 virtual bool Unmount(bool *success) OVERRIDE {
63 INITIALIZE_METHOD_CALL(method_call, cryptohome::kCryptohomeUnmount); 63 INITIALIZE_METHOD_CALL(method_call, cryptohome::kCryptohomeUnmount);
64 return CallBoolMethodAndBlock(&method_call, success); 64 return CallBoolMethodAndBlock(&method_call, success);
65 } 65 }
66 66
67 // CryptohomeClient override. 67 // CryptohomeClient override.
68 virtual void AsyncCheckKey(const std::string& username, 68 virtual void AsyncCheckKey(const std::string& username,
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 INITIALIZE_METHOD_CALL(method_call, cryptohome::kCryptohomeAsyncMountGuest); 146 INITIALIZE_METHOD_CALL(method_call, cryptohome::kCryptohomeAsyncMountGuest);
147 proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, 147 proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
148 base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall, 148 base::Bind(&CryptohomeClientImpl::OnAsyncMethodCall,
149 weak_ptr_factory_.GetWeakPtr(), 149 weak_ptr_factory_.GetWeakPtr(),
150 callback)); 150 callback));
151 } 151 }
152 152
153 // CryptohomeClient override. 153 // CryptohomeClient override.
154 virtual void TpmIsReady(const BoolMethodCallback& callback) OVERRIDE { 154 virtual void TpmIsReady(const BoolMethodCallback& callback) OVERRIDE {
155 INITIALIZE_METHOD_CALL(method_call, cryptohome::kCryptohomeTpmIsReady); 155 INITIALIZE_METHOD_CALL(method_call, cryptohome::kCryptohomeTpmIsReady);
156 proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, 156 CallBoolMethod(&method_call, callback);
157 base::Bind(
158 &CryptohomeClientImpl::OnBoolMethod,
159 weak_ptr_factory_.GetWeakPtr(),
160 callback));
161 } 157 }
162 158
163 // CryptohomeClient override. 159 // CryptohomeClient override.
164 virtual void TpmIsEnabled(const BoolMethodCallback& callback) OVERRIDE { 160 virtual void TpmIsEnabled(const BoolMethodCallback& callback) OVERRIDE {
165 INITIALIZE_METHOD_CALL(method_call, cryptohome::kCryptohomeTpmIsEnabled); 161 INITIALIZE_METHOD_CALL(method_call, cryptohome::kCryptohomeTpmIsEnabled);
166 proxy_->CallMethod(&method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, 162 CallBoolMethod(&method_call, callback);
167 base::Bind(
168 &CryptohomeClientImpl::OnBoolMethod,
169 weak_ptr_factory_.GetWeakPtr(),
170 callback));
171 } 163 }
172 164
173 // CryptohomeClient override. 165 // CryptohomeClient override.
174 // TODO(hashimoto): Remove this method. crosbug.com/28500 166 // TODO(hashimoto): Remove this method. crosbug.com/28500
175 virtual bool CallTpmIsEnabledAndBlock(bool* enabled) OVERRIDE { 167 virtual bool CallTpmIsEnabledAndBlock(bool* enabled) OVERRIDE {
176 // We don't use INITIALIZE_METHOD_CALL here because the C++ method name is 168 // We don't use INITIALIZE_METHOD_CALL here because the C++ method name is
177 // different from the D-Bus method name (TpmIsEnabled). 169 // different from the D-Bus method name (TpmIsEnabled).
178 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface, 170 dbus::MethodCall method_call(cryptohome::kCryptohomeInterface,
179 cryptohome::kCryptohomeTpmIsEnabled); 171 cryptohome::kCryptohomeTpmIsEnabled);
180 return CallBoolMethodAndBlock(&method_call, enabled); 172 return CallBoolMethodAndBlock(&method_call, enabled);
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 scoped_ptr<dbus::Response> response( 210 scoped_ptr<dbus::Response> response(
219 blocking_method_caller_.CallMethodAndBlock(&method_call)); 211 blocking_method_caller_.CallMethodAndBlock(&method_call));
220 return response.get() != NULL; 212 return response.get() != NULL;
221 } 213 }
222 214
223 // CryptohomeClient override. 215 // CryptohomeClient override.
224 virtual void Pkcs11IsTpmTokenReady(const BoolMethodCallback& callback) 216 virtual void Pkcs11IsTpmTokenReady(const BoolMethodCallback& callback)
225 OVERRIDE { 217 OVERRIDE {
226 INITIALIZE_METHOD_CALL(method_call, 218 INITIALIZE_METHOD_CALL(method_call,
227 cryptohome::kCryptohomePkcs11IsTpmTokenReady); 219 cryptohome::kCryptohomePkcs11IsTpmTokenReady);
228 proxy_->CallMethod( 220 CallBoolMethod(&method_call, callback);
229 &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
230 base::Bind(
231 &CryptohomeClientImpl::OnBoolMethod,
232 weak_ptr_factory_.GetWeakPtr(),
233 callback));
234 } 221 }
235 222
236 // CryptohomeClient override. 223 // CryptohomeClient override.
237 virtual void Pkcs11GetTpmTokenInfo( 224 virtual void Pkcs11GetTpmTokenInfo(
238 const Pkcs11GetTpmTokenInfoCallback& callback) OVERRIDE { 225 const Pkcs11GetTpmTokenInfoCallback& callback) OVERRIDE {
239 INITIALIZE_METHOD_CALL(method_call, 226 INITIALIZE_METHOD_CALL(method_call,
240 cryptohome::kCryptohomePkcs11GetTpmTokenInfo); 227 cryptohome::kCryptohomePkcs11GetTpmTokenInfo);
241 proxy_->CallMethod( 228 proxy_->CallMethod(
242 &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, 229 &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
243 base::Bind( 230 base::Bind(
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
328 bool CallBoolMethodAndBlock(dbus::MethodCall* method_call, 315 bool CallBoolMethodAndBlock(dbus::MethodCall* method_call,
329 bool* result) { 316 bool* result) {
330 scoped_ptr<dbus::Response> response( 317 scoped_ptr<dbus::Response> response(
331 blocking_method_caller_.CallMethodAndBlock(method_call)); 318 blocking_method_caller_.CallMethodAndBlock(method_call));
332 if (!response.get()) 319 if (!response.get())
333 return false; 320 return false;
334 dbus::MessageReader reader(response.get()); 321 dbus::MessageReader reader(response.get());
335 return reader.PopBool(result); 322 return reader.PopBool(result);
336 } 323 }
337 324
325 // Calls a method with a bool value result.
326 void CallBoolMethod(dbus::MethodCall* method_call,
327 const BoolMethodCallback& callback) {
328 proxy_->CallMethod(method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
329 base::Bind(
330 &CryptohomeClientImpl::OnBoolMethod,
331 weak_ptr_factory_.GetWeakPtr(),
332 callback));
333 }
334
338 // Handles responses for methods with a bool value result. 335 // Handles responses for methods with a bool value result.
339 void OnBoolMethod(const BoolMethodCallback& callback, 336 void OnBoolMethod(const BoolMethodCallback& callback,
340 dbus::Response* response) { 337 dbus::Response* response) {
341 if (!response) { 338 if (!response) {
342 callback.Run(DBUS_METHOD_CALL_FAILURE, false); 339 callback.Run(DBUS_METHOD_CALL_FAILURE, false);
343 return; 340 return;
344 } 341 }
345 dbus::MessageReader reader(response); 342 dbus::MessageReader reader(response);
346 bool result = false; 343 bool result = false;
347 if (!reader.PopBool(&result)) { 344 if (!reader.PopBool(&result)) {
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
433 OVERRIDE { 430 OVERRIDE {
434 async_call_status_handler_ = handler; 431 async_call_status_handler_ = handler;
435 } 432 }
436 433
437 // CryptohomeClient override. 434 // CryptohomeClient override.
438 virtual void ResetAsyncCallStatusHandler() OVERRIDE { 435 virtual void ResetAsyncCallStatusHandler() OVERRIDE {
439 async_call_status_handler_.Reset(); 436 async_call_status_handler_.Reset();
440 } 437 }
441 438
442 // CryptohomeClient override. 439 // CryptohomeClient override.
443 virtual bool IsMounted(bool* is_mounted) OVERRIDE { 440 virtual void IsMounted(const BoolMethodCallback& callback) OVERRIDE {
444 *is_mounted = true; 441 MessageLoop::current()->PostTask(
445 return true; 442 FROM_HERE, base::Bind(callback, DBUS_METHOD_CALL_SUCCESS, true));
446 } 443 }
447 444
448 // CryptohomeClient override. 445 // CryptohomeClient override.
449 virtual bool Unmount(bool* success) OVERRIDE { 446 virtual bool Unmount(bool* success) OVERRIDE {
450 *success = true; 447 *success = true;
451 return true; 448 return true;
452 } 449 }
453 450
454 // CryptohomeClient override. 451 // CryptohomeClient override.
455 virtual void AsyncCheckKey(const std::string& username, 452 virtual void AsyncCheckKey(const std::string& username,
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
649 // static 646 // static
650 CryptohomeClient* CryptohomeClient::Create(DBusClientImplementationType type, 647 CryptohomeClient* CryptohomeClient::Create(DBusClientImplementationType type,
651 dbus::Bus* bus) { 648 dbus::Bus* bus) {
652 if (type == REAL_DBUS_CLIENT_IMPLEMENTATION) 649 if (type == REAL_DBUS_CLIENT_IMPLEMENTATION)
653 return new CryptohomeClientImpl(bus); 650 return new CryptohomeClientImpl(bus);
654 DCHECK_EQ(STUB_DBUS_CLIENT_IMPLEMENTATION, type); 651 DCHECK_EQ(STUB_DBUS_CLIENT_IMPLEMENTATION, type);
655 return new CryptohomeClientStubImpl(); 652 return new CryptohomeClientStubImpl();
656 } 653 }
657 654
658 } // namespace chromeos 655 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698