summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/certificate_manager_model.cc6
-rw-r--r--chrome/browser/ui/crypto_module_password_dialog.h10
-rw-r--r--chrome/browser/ui/crypto_module_password_dialog_nss.cc17
-rw-r--r--chrome/browser/ui/crypto_module_password_dialog_openssl.cc4
-rw-r--r--chrome/browser/ui/gtk/crypto_module_password_dialog.cc49
-rw-r--r--chrome/browser/ui/gtk/ssl_client_certificate_selector.cc4
-rw-r--r--chrome/browser/ui/views/stubs_aura.cc2
-rw-r--r--chrome/browser/ui/webui/options/certificate_manager_handler.cc9
8 files changed, 54 insertions, 47 deletions
diff --git a/chrome/browser/certificate_manager_model.cc b/chrome/browser/certificate_manager_model.cc
index 1dbd985..e722ad8 100644
--- a/chrome/browser/certificate_manager_model.cc
+++ b/chrome/browser/certificate_manager_model.cc
@@ -4,7 +4,7 @@
#include "chrome/browser/certificate_manager_model.h"
-#include "base/callback_old.h"
+#include "base/bind.h"
#include "base/i18n/time_formatting.h"
#include "base/logging.h"
#include "base/utf_string_conversions.h"
@@ -38,8 +38,8 @@ void CertificateManagerModel::Refresh() {
modules,
browser::kCryptoModulePasswordListCerts,
"", // unused.
- NewCallback(this,
- &CertificateManagerModel::RefreshSlotsUnlocked));
+ base::Bind(&CertificateManagerModel::RefreshSlotsUnlocked,
+ base::Unretained(this)));
}
void CertificateManagerModel::RefreshSlotsUnlocked() {
diff --git a/chrome/browser/ui/crypto_module_password_dialog.h b/chrome/browser/ui/crypto_module_password_dialog.h
index 5b669e0..7a25bd8 100644
--- a/chrome/browser/ui/crypto_module_password_dialog.h
+++ b/chrome/browser/ui/crypto_module_password_dialog.h
@@ -9,7 +9,7 @@
#include <string>
#include <vector>
-#include "base/callback_old.h"
+#include "base/callback.h"
#include "base/memory/ref_counted.h"
namespace crypto {
@@ -34,7 +34,7 @@ enum CryptoModulePasswordReason {
kCryptoModulePasswordCertExport,
};
-typedef Callback1<const char*>::Type CryptoModulePasswordCallback;
+typedef base::Callback<void(const char*)> CryptoModulePasswordCallback;
// Display a dialog, prompting the user to authenticate to unlock
// |module|. |reason| describes the purpose of the authentication and
@@ -44,7 +44,7 @@ void ShowCryptoModulePasswordDialog(const std::string& module_name,
bool retry,
CryptoModulePasswordReason reason,
const std::string& server,
- CryptoModulePasswordCallback* callback);
+ const CryptoModulePasswordCallback& callback);
// Returns a CryptoModuleBlockingPasswordDelegate to open a dialog and block
// until returning. Should only be used on a worker thread.
@@ -59,7 +59,7 @@ crypto::CryptoModuleBlockingPasswordDelegate*
void UnlockSlotsIfNecessary(const net::CryptoModuleList& modules,
browser::CryptoModulePasswordReason reason,
const std::string& server,
- Callback0::Type* callback);
+ const base::Closure& callback);
// Asynchronously unlock the |cert|'s module, if necessary. |callback| is
// called when done (regardless if module was successfully unlocked or not).
@@ -67,7 +67,7 @@ void UnlockSlotsIfNecessary(const net::CryptoModuleList& modules,
void UnlockCertSlotIfNecessary(net::X509Certificate* cert,
browser::CryptoModulePasswordReason reason,
const std::string& server,
- Callback0::Type* callback);
+ const base::Closure& callback);
} // namespace browser
diff --git a/chrome/browser/ui/crypto_module_password_dialog_nss.cc b/chrome/browser/ui/crypto_module_password_dialog_nss.cc
index 20f62f7..a45913f 100644
--- a/chrome/browser/ui/crypto_module_password_dialog_nss.cc
+++ b/chrome/browser/ui/crypto_module_password_dialog_nss.cc
@@ -6,6 +6,7 @@
#include <pk11pub.h>
+#include "base/bind.h"
#include "base/logging.h"
#include "content/browser/browser_thread.h"
#include "net/base/crypto_module.h"
@@ -31,7 +32,7 @@ class SlotUnlocker {
SlotUnlocker(const net::CryptoModuleList& modules,
browser::CryptoModulePasswordReason reason,
const std::string& host,
- Callback0::Type* callback);
+ const base::Closure& callback);
void Start();
@@ -43,14 +44,14 @@ class SlotUnlocker {
net::CryptoModuleList modules_;
browser::CryptoModulePasswordReason reason_;
std::string host_;
- Callback0::Type* callback_;
+ base::Closure callback_;
PRBool retry_;
};
SlotUnlocker::SlotUnlocker(const net::CryptoModuleList& modules,
browser::CryptoModulePasswordReason reason,
const std::string& host,
- Callback0::Type* callback)
+ const base::Closure& callback)
: current_(0),
modules_(modules),
reason_(reason),
@@ -84,7 +85,7 @@ void SlotUnlocker::Start() {
retry_,
reason_,
host_,
- NewCallback(this, &SlotUnlocker::GotPassword));
+ base::Bind(&SlotUnlocker::GotPassword, base::Unretained(this)));
return;
}
}
@@ -124,7 +125,7 @@ void SlotUnlocker::GotPassword(const char* password) {
void SlotUnlocker::Done() {
DCHECK_EQ(current_, modules_.size());
- callback_->Run();
+ callback_.Run();
delete this;
}
@@ -135,7 +136,7 @@ namespace browser {
void UnlockSlotsIfNecessary(const net::CryptoModuleList& modules,
browser::CryptoModulePasswordReason reason,
const std::string& host,
- Callback0::Type* callback) {
+ const base::Closure& callback) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
for (size_t i = 0; i < modules.size(); ++i) {
if (ShouldShowDialog(modules[i].get())) {
@@ -143,13 +144,13 @@ void UnlockSlotsIfNecessary(const net::CryptoModuleList& modules,
return;
}
}
- callback->Run();
+ callback.Run();
}
void UnlockCertSlotIfNecessary(net::X509Certificate* cert,
browser::CryptoModulePasswordReason reason,
const std::string& host,
- Callback0::Type* callback) {
+ const base::Closure& callback) {
net::CryptoModuleList modules;
modules.push_back(net::CryptoModule::CreateFromHandle(
cert->os_cert_handle()->slot));
diff --git a/chrome/browser/ui/crypto_module_password_dialog_openssl.cc b/chrome/browser/ui/crypto_module_password_dialog_openssl.cc
index 5de2d24..6c80486 100644
--- a/chrome/browser/ui/crypto_module_password_dialog_openssl.cc
+++ b/chrome/browser/ui/crypto_module_password_dialog_openssl.cc
@@ -11,7 +11,7 @@ namespace browser {
void UnlockSlotsIfNecessary(const net::CryptoModuleList& modules,
browser::CryptoModulePasswordReason reason,
const std::string& host,
- Callback0::Type* callback) {
+ const base::Closure& callback) {
// TODO(bulach): implement me.
NOTREACHED();
}
@@ -19,7 +19,7 @@ void UnlockSlotsIfNecessary(const net::CryptoModuleList& modules,
void UnlockCertSlotIfNecessary(net::X509Certificate* cert,
browser::CryptoModulePasswordReason reason,
const std::string& host,
- Callback0::Type* callback) {
+ const base::Closure& callback) {
// TODO(bulach): implement me.
NOTREACHED();
}
diff --git a/chrome/browser/ui/gtk/crypto_module_password_dialog.cc b/chrome/browser/ui/gtk/crypto_module_password_dialog.cc
index c411452..b189436 100644
--- a/chrome/browser/ui/gtk/crypto_module_password_dialog.cc
+++ b/chrome/browser/ui/gtk/crypto_module_password_dialog.cc
@@ -7,8 +7,8 @@
#include <gtk/gtk.h>
#include "base/basictypes.h"
+#include "base/bind.h"
#include "base/synchronization/waitable_event.h"
-#include "base/task.h"
#include "base/utf_string_conversions.h"
#include "crypto/crypto_module_blocking_password_delegate.h"
#include "chrome/browser/ui/gtk/gtk_util.h"
@@ -43,12 +43,15 @@ class CryptoModuleBlockingDialogDelegate
DCHECK(!BrowserThread::CurrentlyOn(BrowserThread::UI));
DCHECK(!event_.IsSignaled());
event_.Reset();
+
if (BrowserThread::PostTask(
BrowserThread::UI, FROM_HERE,
- NewRunnableMethod(this,
- &CryptoModuleBlockingDialogDelegate::ShowDialog,
- slot_name,
- retry))) {
+ base::Bind(&CryptoModuleBlockingDialogDelegate::ShowDialog,
+ // We block on event_ until the task completes, so
+ // there's no need to ref-count.
+ base::Unretained(this),
+ slot_name,
+ retry))) {
event_.Wait();
}
*cancelled = cancelled_;
@@ -60,7 +63,8 @@ class CryptoModuleBlockingDialogDelegate
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
ShowCryptoModulePasswordDialog(
slot_name, retry, reason_, server_,
- NewCallback(this, &CryptoModuleBlockingDialogDelegate::GotPassword));
+ base::Bind(&CryptoModuleBlockingDialogDelegate::GotPassword,
+ base::Unretained(this)));
}
void GotPassword(const char* password) {
if (password)
@@ -81,11 +85,12 @@ class CryptoModuleBlockingDialogDelegate
// TODO(mattm): change into a constrained dialog.
class CryptoModulePasswordDialog {
public:
- CryptoModulePasswordDialog(const std::string& slot_name,
- bool retry,
- browser::CryptoModulePasswordReason reason,
- const std::string& server,
- browser::CryptoModulePasswordCallback* callback);
+ CryptoModulePasswordDialog(
+ const std::string& slot_name,
+ bool retry,
+ browser::CryptoModulePasswordReason reason,
+ const std::string& server,
+ const browser::CryptoModulePasswordCallback& callback);
virtual ~CryptoModulePasswordDialog() {}
@@ -95,7 +100,7 @@ class CryptoModulePasswordDialog {
CHROMEGTK_CALLBACK_1(CryptoModulePasswordDialog, void, OnResponse, int);
CHROMEGTK_CALLBACK_0(CryptoModulePasswordDialog, void, OnWindowDestroy);
- scoped_ptr<browser::CryptoModulePasswordCallback> callback_;
+ browser::CryptoModulePasswordCallback callback_;
GtkWidget* dialog_;
GtkWidget* password_entry_;
@@ -108,7 +113,7 @@ CryptoModulePasswordDialog::CryptoModulePasswordDialog(
bool retry,
browser::CryptoModulePasswordReason reason,
const std::string& server,
- browser::CryptoModulePasswordCallback* callback)
+ const browser::CryptoModulePasswordCallback& callback)
: callback_(callback) {
dialog_ = gtk_dialog_new_with_buttons(
l10n_util::GetStringUTF8(IDS_CRYPTO_MODULE_AUTH_DIALOG_TITLE).c_str(),
@@ -192,9 +197,9 @@ void CryptoModulePasswordDialog::Show() {
void CryptoModulePasswordDialog::OnResponse(GtkWidget* dialog,
int response_id) {
if (response_id == GTK_RESPONSE_ACCEPT)
- callback_->Run(gtk_entry_get_text(GTK_ENTRY(password_entry_)));
+ callback_.Run(gtk_entry_get_text(GTK_ENTRY(password_entry_)));
else
- callback_->Run(static_cast<const char*>(NULL));
+ callback_.Run(static_cast<const char*>(NULL));
// This will cause gtk to zero out the buffer. (see
// gtk_entry_buffer_normal_delete_text:
@@ -209,16 +214,14 @@ void CryptoModulePasswordDialog::OnWindowDestroy(GtkWidget* widget) {
} // namespace
-// Every post-task we do blocks, so there's no need to ref-count.
-DISABLE_RUNNABLE_METHOD_REFCOUNT(CryptoModuleBlockingDialogDelegate);
-
namespace browser {
-void ShowCryptoModulePasswordDialog(const std::string& slot_name,
- bool retry,
- CryptoModulePasswordReason reason,
- const std::string& server,
- CryptoModulePasswordCallback* callback) {
+void ShowCryptoModulePasswordDialog(
+ const std::string& slot_name,
+ bool retry,
+ CryptoModulePasswordReason reason,
+ const std::string& server,
+ const CryptoModulePasswordCallback& callback) {
(new CryptoModulePasswordDialog(slot_name, retry, reason, server,
callback))->Show();
}
diff --git a/chrome/browser/ui/gtk/ssl_client_certificate_selector.cc b/chrome/browser/ui/gtk/ssl_client_certificate_selector.cc
index 0fc6050..4d7b67a 100644
--- a/chrome/browser/ui/gtk/ssl_client_certificate_selector.cc
+++ b/chrome/browser/ui/gtk/ssl_client_certificate_selector.cc
@@ -9,6 +9,7 @@
#include <string>
#include <vector>
+#include "base/bind.h"
#include "base/i18n/time_formatting.h"
#include "base/logging.h"
#include "base/utf_string_conversions.h"
@@ -376,7 +377,8 @@ void SSLClientCertificateSelector::OnOkClicked(GtkWidget* button) {
cert,
browser::kCryptoModulePasswordClientAuth,
cert_request_info_->host_and_port,
- NewCallback(this, &SSLClientCertificateSelector::Unlocked));
+ base::Bind(&SSLClientCertificateSelector::Unlocked,
+ base::Unretained(this)));
}
void SSLClientCertificateSelector::OnPromptShown(GtkWidget* widget,
diff --git a/chrome/browser/ui/views/stubs_aura.cc b/chrome/browser/ui/views/stubs_aura.cc
index 7317057..455d057 100644
--- a/chrome/browser/ui/views/stubs_aura.cc
+++ b/chrome/browser/ui/views/stubs_aura.cc
@@ -119,7 +119,7 @@ void ShowCryptoModulePasswordDialog(const std::string& module_name,
bool retry,
CryptoModulePasswordReason reason,
const std::string& server,
- CryptoModulePasswordCallback* callback) {
+ const CryptoModulePasswordCallback& callback) {
// TODO(saintlou):
NOTIMPLEMENTED();
}
diff --git a/chrome/browser/ui/webui/options/certificate_manager_handler.cc b/chrome/browser/ui/webui/options/certificate_manager_handler.cc
index 16e9cf7..f610e65 100644
--- a/chrome/browser/ui/webui/options/certificate_manager_handler.cc
+++ b/chrome/browser/ui/webui/options/certificate_manager_handler.cc
@@ -4,6 +4,7 @@
#include "chrome/browser/ui/webui/options/certificate_manager_handler.h"
+#include "base/bind.h"
#include "base/file_util.h" // for FileAccessProvider
#include "base/memory/scoped_vector.h"
#include "base/safe_strerror_posix.h"
@@ -566,8 +567,8 @@ void CertificateManagerHandler::ExportPersonalPasswordSelected(
selected_cert_list_[0].get(),
browser::kCryptoModulePasswordCertExport,
"", // unused.
- NewCallback(this,
- &CertificateManagerHandler::ExportPersonalSlotsUnlocked));
+ base::Bind(&CertificateManagerHandler::ExportPersonalSlotsUnlocked,
+ base::Unretained(this)));
}
void CertificateManagerHandler::ExportPersonalSlotsUnlocked() {
@@ -671,8 +672,8 @@ void CertificateManagerHandler::ImportPersonalFileRead(
modules,
browser::kCryptoModulePasswordCertImport,
"", // unused.
- NewCallback(this,
- &CertificateManagerHandler::ImportPersonalSlotUnlocked));
+ base::Bind(&CertificateManagerHandler::ImportPersonalSlotUnlocked,
+ base::Unretained(this)));
}
void CertificateManagerHandler::ImportPersonalSlotUnlocked() {