Index: crypto/nss_crypto_module_delegate.h |
diff --git a/crypto/nss_crypto_module_delegate.h b/crypto/nss_crypto_module_delegate.h |
index 05be77d69a5166e10360df77e5d564c9205e83e5..cb870705165c3a776fe51de46f8663a699b43b03 100644 |
--- a/crypto/nss_crypto_module_delegate.h |
+++ b/crypto/nss_crypto_module_delegate.h |
@@ -7,6 +7,8 @@ |
#include <string> |
+#include "base/memory/ref_counted.h" |
+ |
namespace crypto { |
// PK11_SetPasswordFunc is a global setting. An implementation of |
@@ -14,9 +16,9 @@ namespace crypto { |
// user data argument (|wincx|) to relevant NSS functions, which the global |
// password handler will call to do the actual work. This delegate should only |
// be used in NSS calls on worker threads due to the blocking nature. |
-class CryptoModuleBlockingPasswordDelegate { |
+class CryptoModuleBlockingPasswordDelegate |
+ : public base::RefCountedThreadSafe<CryptoModuleBlockingPasswordDelegate> { |
public: |
- virtual ~CryptoModuleBlockingPasswordDelegate() {} |
// Return a value suitable for passing to the |wincx| argument of relevant NSS |
// functions. This should be used instead of passing the object pointer |
@@ -32,6 +34,11 @@ class CryptoModuleBlockingPasswordDelegate { |
// user entered. |
virtual std::string RequestPassword(const std::string& slot_name, bool retry, |
bool* cancelled) = 0; |
+ |
+ protected: |
+ friend class base::RefCountedThreadSafe<CryptoModuleBlockingPasswordDelegate>; |
+ |
+ virtual ~CryptoModuleBlockingPasswordDelegate() {} |
}; |
} // namespace crypto |