Index: chrome/browser/chromeos/net/client_cert_filter_chromeos.cc |
diff --git a/chrome/browser/chromeos/net/client_cert_filter_chromeos.cc b/chrome/browser/chromeos/net/client_cert_filter_chromeos.cc |
index 1ff3a786138bd9f7011319eea968f24908b6c16c..6f735b8f17eb9dcacbd3c75269e7620d00c61751 100644 |
--- a/chrome/browser/chromeos/net/client_cert_filter_chromeos.cc |
+++ b/chrome/browser/chromeos/net/client_cert_filter_chromeos.cc |
@@ -26,7 +26,6 @@ bool ClientCertFilterChromeOS::Init(const base::Closure& callback) { |
DCHECK(!init_called_); |
init_called_ = true; |
- init_callback_ = callback; |
if (use_system_slot_) { |
system_slot_ = crypto::GetSystemNSSKeySlot( |
base::Bind(&ClientCertFilterChromeOS::GotSystemSlot, |
@@ -38,7 +37,11 @@ bool ClientCertFilterChromeOS::Init(const base::Closure& callback) { |
weak_ptr_factory_.GetWeakPtr())).Pass(); |
// Do not call back if we initialized synchronously. |
- return InitIfSlotsAvailable(); |
+ if (InitIfSlotsAvailable()) |
+ return true; |
+ |
+ init_callback_ = callback; |
+ return false; |
} |
bool ClientCertFilterChromeOS::IsCertAllowed( |