summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ui
diff options
context:
space:
mode:
authorjhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-29 03:10:52 +0000
committerjhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-29 03:10:52 +0000
commit85bce451897884e05b769ac380f357a980416b54 (patch)
tree295682af32e7c17ead25eae0d24bda4176e34390 /chrome/browser/ui
parent6790e994966a2986bab059b9ecd00ecf31e6bda6 (diff)
downloadchromium_src-85bce451897884e05b769ac380f357a980416b54.zip
chromium_src-85bce451897884e05b769ac380f357a980416b54.tar.gz
chromium_src-85bce451897884e05b769ac380f357a980416b54.tar.bz2
base::Bind: Convert the following files:
* theme_service.cc. * browser_browsertest.cc. * browser_init.cc. * certificate_dialogs.cc. * login_prompt.cc. BUG=none TEST=none R=groby@chromium.org Review URL: http://codereview.chromium.org/8725022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@111852 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/ui')
-rw-r--r--chrome/browser/ui/browser_browsertest.cc45
-rw-r--r--chrome/browser/ui/browser_init.cc48
-rw-r--r--chrome/browser/ui/certificate_dialogs.cc28
-rw-r--r--chrome/browser/ui/login/login_prompt.cc170
4 files changed, 100 insertions, 191 deletions
diff --git a/chrome/browser/ui/browser_browsertest.cc b/chrome/browser/ui/browser_browsertest.cc
index c9cb969..e521657 100644
--- a/chrome/browser/ui/browser_browsertest.cc
+++ b/chrome/browser/ui/browser_browsertest.cc
@@ -4,6 +4,7 @@
#include <string>
+#include "base/bind.h"
#include "base/compiler_specific.h"
#include "base/file_path.h"
#if defined(OS_MACOSX)
@@ -125,36 +126,18 @@ class MockTabStripModelObserver : public TabStripModelObserver {
};
// Used by CloseWithAppMenuOpen. Invokes CloseWindow on the supplied browser.
-class CloseWindowTask : public Task {
- public:
- explicit CloseWindowTask(Browser* browser) : browser_(browser) {}
-
- virtual void Run() {
- browser_->CloseWindow();
- }
-
- private:
- Browser* browser_;
-
- DISALLOW_COPY_AND_ASSIGN(CloseWindowTask);
-};
-
-// Used by CloseWithAppMenuOpen. Posts a CloseWindowTask and shows the app menu.
-class RunCloseWithAppMenuTask : public Task {
- public:
- explicit RunCloseWithAppMenuTask(Browser* browser) : browser_(browser) {}
-
- virtual void Run() {
- // ShowAppMenu is modal under views. Schedule a task that closes the window.
- MessageLoop::current()->PostTask(FROM_HERE, new CloseWindowTask(browser_));
- browser_->ShowAppMenu();
- }
-
- private:
- Browser* browser_;
+void CloseWindowCallback(Browser* browser) {
+ browser->CloseWindow();
+}
- DISALLOW_COPY_AND_ASSIGN(RunCloseWithAppMenuTask);
-};
+// Used by CloseWithAppMenuOpen. Posts a CloseWindowCallback and shows the app
+// menu.
+void RunCloseWithAppMenuCallback(Browser* browser) {
+ // ShowAppMenu is modal under views. Schedule a task that closes the window.
+ MessageLoop::current()->PostTask(
+ FROM_HERE, base::Bind(&CloseWindowCallback, browser));
+ browser->ShowAppMenu();
+}
} // namespace
@@ -1053,8 +1036,8 @@ IN_PROC_BROWSER_TEST_F(BrowserTest, CloseWithAppMenuOpen) {
return;
// We need a message loop running for menus on windows.
- MessageLoop::current()->PostTask(FROM_HERE,
- new RunCloseWithAppMenuTask(browser()));
+ MessageLoop::current()->PostTask(
+ FROM_HERE, base::Bind(&RunCloseWithAppMenuCallback, browser()));
}
#if !defined(OS_MACOSX)
diff --git a/chrome/browser/ui/browser_init.cc b/chrome/browser/ui/browser_init.cc
index 3e48507..ac3b172 100644
--- a/chrome/browser/ui/browser_init.cc
+++ b/chrome/browser/ui/browser_init.cc
@@ -219,27 +219,7 @@ bool DefaultBrowserInfoBarDelegate::Cancel() {
return true;
}
-
-// NotifyNotDefaultBrowserTask ------------------------------------------------
-
-class NotifyNotDefaultBrowserTask : public Task {
- public:
- NotifyNotDefaultBrowserTask();
- virtual ~NotifyNotDefaultBrowserTask();
-
- private:
- virtual void Run();
-
- DISALLOW_COPY_AND_ASSIGN(NotifyNotDefaultBrowserTask);
-};
-
-NotifyNotDefaultBrowserTask::NotifyNotDefaultBrowserTask() {
-}
-
-NotifyNotDefaultBrowserTask::~NotifyNotDefaultBrowserTask() {
-}
-
-void NotifyNotDefaultBrowserTask::Run() {
+void NotifyNotDefaultBrowserCallback() {
Browser* browser = BrowserList::GetLastActive();
if (!browser)
return; // Reached during ui tests.
@@ -260,33 +240,13 @@ void NotifyNotDefaultBrowserTask::Run() {
tab->profile()->GetPrefs()));
}
-
-// CheckDefaultBrowserTask ----------------------------------------------------
-
-class CheckDefaultBrowserTask : public Task {
- public:
- CheckDefaultBrowserTask();
- virtual ~CheckDefaultBrowserTask();
-
- private:
- virtual void Run();
-
- DISALLOW_COPY_AND_ASSIGN(CheckDefaultBrowserTask);
-};
-
-CheckDefaultBrowserTask::CheckDefaultBrowserTask() {
-}
-
-CheckDefaultBrowserTask::~CheckDefaultBrowserTask() {
-}
-
-void CheckDefaultBrowserTask::Run() {
+void CheckDefaultBrowserCallback() {
if (ShellIntegration::IsDefaultBrowser() ||
!ShellIntegration::CanSetAsDefaultBrowser()) {
return;
}
BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
- new NotifyNotDefaultBrowserTask());
+ base::Bind(&NotifyNotDefaultBrowserCallback));
}
@@ -1313,7 +1273,7 @@ void BrowserInit::LaunchWithProfile::CheckDefaultBrowser(Profile* profile) {
return;
}
BrowserThread::PostTask(
- BrowserThread::FILE, FROM_HERE, new CheckDefaultBrowserTask());
+ BrowserThread::FILE, FROM_HERE, base::Bind(&CheckDefaultBrowserCallback));
}
std::vector<GURL> BrowserInit::GetURLsFromCommandLine(
diff --git a/chrome/browser/ui/certificate_dialogs.cc b/chrome/browser/ui/certificate_dialogs.cc
index 56406d4..006a953 100644
--- a/chrome/browser/ui/certificate_dialogs.cc
+++ b/chrome/browser/ui/certificate_dialogs.cc
@@ -8,6 +8,7 @@
#include <vector>
#include "base/base64.h"
+#include "base/bind.h"
#include "base/file_util.h"
#include "base/logging.h"
#include "base/memory/scoped_ptr.h"
@@ -21,30 +22,17 @@ using content::BrowserThread;
namespace {
-////////////////////////////////////////////////////////////////////////////////
-// General utility functions.
-
-class Writer : public Task {
- public:
- Writer(const FilePath& path, const std::string& data)
- : path_(path), data_(data) {
+void WriterCallback(const FilePath& path, const std::string& data) {
+ int bytes_written = file_util::WriteFile(path, data.data(), data.size());
+ if (bytes_written != static_cast<ssize_t>(data.size())) {
+ LOG(ERROR) << "Writing " << path.value() << " ("
+ << data.size() << "B) returned " << bytes_written;
}
-
- virtual void Run() {
- int bytes_written = file_util::WriteFile(path_, data_.data(), data_.size());
- if (bytes_written != static_cast<ssize_t>(data_.size())) {
- LOG(ERROR) << "Writing " << path_.value() << " ("
- << data_.size() << "B) returned " << bytes_written;
- }
- }
- private:
- FilePath path_;
- std::string data_;
-};
+}
void WriteFileOnFileThread(const FilePath& path, const std::string& data) {
BrowserThread::PostTask(
- BrowserThread::FILE, FROM_HERE, new Writer(path, data));
+ BrowserThread::FILE, FROM_HERE, base::Bind(&WriterCallback, path, data));
}
std::string WrapAt64(const std::string &str) {
diff --git a/chrome/browser/ui/login/login_prompt.cc b/chrome/browser/ui/login/login_prompt.cc
index d8f2260..ccec8c8 100644
--- a/chrome/browser/ui/login/login_prompt.cc
+++ b/chrome/browser/ui/login/login_prompt.cc
@@ -395,105 +395,82 @@ void LoginHandler::CloseContentsDeferred() {
dialog_->CloseConstrainedWindow();
}
-// ----------------------------------------------------------------------------
-// LoginDialogTask
-
-// This task is run on the UI thread and creates a constrained window with
-// a LoginView to prompt the user. The response will be sent to LoginHandler,
-// which then routes it to the net::URLRequest on the I/O thread.
-class LoginDialogTask : public Task {
- public:
- LoginDialogTask(const GURL& request_url,
- net::AuthChallengeInfo* auth_info,
- LoginHandler* handler)
- : request_url_(request_url), auth_info_(auth_info), handler_(handler) {
- }
- virtual ~LoginDialogTask() {
+// Helper to create a PasswordForm and stuff it into a vector as input
+// for PasswordManager::PasswordFormsFound, the hook into PasswordManager.
+void MakeInputForPasswordManager(
+ const GURL& request_url,
+ net::AuthChallengeInfo* auth_info,
+ LoginHandler* handler,
+ std::vector<PasswordForm>* password_manager_input) {
+ PasswordForm dialog_form;
+ if (LowerCaseEqualsASCII(auth_info->scheme, "basic")) {
+ dialog_form.scheme = PasswordForm::SCHEME_BASIC;
+ } else if (LowerCaseEqualsASCII(auth_info->scheme, "digest")) {
+ dialog_form.scheme = PasswordForm::SCHEME_DIGEST;
+ } else {
+ dialog_form.scheme = PasswordForm::SCHEME_OTHER;
}
-
- void Run() {
- TabContents* parent_contents = handler_->GetTabContentsForLogin();
- if (!parent_contents || handler_->WasAuthHandled()) {
- // The request may have been cancelled, or it may be for a renderer
- // not hosted by a tab (e.g. an extension). Cancel just in case
- // (cancelling twice is a no-op).
- handler_->CancelAuth();
- return;
- }
-
- // Tell the password manager to look for saved passwords.
- TabContentsWrapper* wrapper =
- TabContentsWrapper::GetCurrentWrapperForContents(parent_contents);
- if (!wrapper) {
- NOTREACHED() << "Login dialog created for TabContents with no wrapper";
- return;
- }
- PasswordManager* password_manager = wrapper->password_manager();
- std::vector<PasswordForm> v;
- MakeInputForPasswordManager(&v);
- password_manager->OnPasswordFormsFound(v);
- handler_->SetPasswordManager(password_manager);
-
- // The realm is controlled by the remote server, so there is no reason
- // to believe it is of a reasonable length.
- string16 elided_realm;
- ui::ElideString(UTF8ToUTF16(auth_info_->realm), 120, &elided_realm);
-
- string16 host_and_port = ASCIIToUTF16(auth_info_->challenger.ToString());
- string16 explanation = elided_realm.empty() ?
- l10n_util::GetStringFUTF16(IDS_LOGIN_DIALOG_DESCRIPTION_NO_REALM,
- host_and_port) :
- l10n_util::GetStringFUTF16(IDS_LOGIN_DIALOG_DESCRIPTION,
- host_and_port,
- elided_realm);
- handler_->BuildViewForPasswordManager(password_manager, explanation);
+ std::string host_and_port(auth_info->challenger.ToString());
+ if (auth_info->is_proxy) {
+ std::string origin = host_and_port;
+ // We don't expect this to already start with http:// or https://.
+ DCHECK(origin.find("http://") != 0 && origin.find("https://") != 0);
+ origin = std::string("http://") + origin;
+ dialog_form.origin = GURL(origin);
+ } else if (!auth_info->challenger.Equals(
+ net::HostPortPair::FromURL(request_url))) {
+ dialog_form.origin = GURL();
+ NOTREACHED(); // crbug.com/32718
+ } else {
+ dialog_form.origin = GURL(request_url.scheme() + "://" + host_and_port);
}
+ dialog_form.signon_realm = GetSignonRealm(dialog_form.origin, *auth_info);
+ password_manager_input->push_back(dialog_form);
+ // Set the password form for the handler (by copy).
+ handler->SetPasswordForm(dialog_form);
+}
- private:
- // Helper to create a PasswordForm and stuff it into a vector as input
- // for PasswordManager::PasswordFormsFound, the hook into PasswordManager.
- void MakeInputForPasswordManager(
- std::vector<PasswordForm>* password_manager_input) {
- PasswordForm dialog_form;
- if (LowerCaseEqualsASCII(auth_info_->scheme, "basic")) {
- dialog_form.scheme = PasswordForm::SCHEME_BASIC;
- } else if (LowerCaseEqualsASCII(auth_info_->scheme, "digest")) {
- dialog_form.scheme = PasswordForm::SCHEME_DIGEST;
- } else {
- dialog_form.scheme = PasswordForm::SCHEME_OTHER;
- }
- std::string host_and_port(auth_info_->challenger.ToString());
- if (auth_info_->is_proxy) {
- std::string origin = host_and_port;
- // We don't expect this to already start with http:// or https://.
- DCHECK(origin.find("http://") != 0 && origin.find("https://") != 0);
- origin = std::string("http://") + origin;
- dialog_form.origin = GURL(origin);
- } else if (!auth_info_->challenger.Equals(
- net::HostPortPair::FromURL(request_url_))) {
- dialog_form.origin = GURL();
- NOTREACHED(); // crbug.com/32718
- } else {
- dialog_form.origin = GURL(request_url_.scheme() + "://" + host_and_port);
- }
- dialog_form.signon_realm = GetSignonRealm(dialog_form.origin, *auth_info_);
- password_manager_input->push_back(dialog_form);
- // Set the password form for the handler (by copy).
- handler_->SetPasswordForm(dialog_form);
+// This callback is run on the UI thread and creates a constrained window with
+// a LoginView to prompt the user. The response will be sent to LoginHandler,
+// which then routes it to the net::URLRequest on the I/O thread.
+void LoginDialogCallback(const GURL& request_url,
+ net::AuthChallengeInfo* auth_info,
+ LoginHandler* handler) {
+ TabContents* parent_contents = handler->GetTabContentsForLogin();
+ if (!parent_contents || handler->WasAuthHandled()) {
+ // The request may have been cancelled, or it may be for a renderer
+ // not hosted by a tab (e.g. an extension). Cancel just in case
+ // (cancelling twice is a no-op).
+ handler->CancelAuth();
+ return;
}
- // The url from the net::URLRequest initiating the auth challenge.
- GURL request_url_;
-
- // Info about who/where/what is asking for authentication.
- scoped_refptr<net::AuthChallengeInfo> auth_info_;
-
- // Where to send the authentication when obtained.
- // This is owned by the ResourceDispatcherHost that invoked us.
- LoginHandler* handler_;
-
- DISALLOW_COPY_AND_ASSIGN(LoginDialogTask);
-};
+ // Tell the password manager to look for saved passwords.
+ TabContentsWrapper* wrapper =
+ TabContentsWrapper::GetCurrentWrapperForContents(parent_contents);
+ if (!wrapper)
+ NOTREACHED() << "Login dialog created for TabContents with no wrapper";
+
+ PasswordManager* password_manager = wrapper->password_manager();
+ std::vector<PasswordForm> v;
+ MakeInputForPasswordManager(request_url, auth_info, handler, &v);
+ password_manager->OnPasswordFormsFound(v);
+ handler->SetPasswordManager(password_manager);
+
+ // The realm is controlled by the remote server, so there is no reason
+ // to believe it is of a reasonable length.
+ string16 elided_realm;
+ ui::ElideString(UTF8ToUTF16(auth_info->realm), 120, &elided_realm);
+
+ string16 host_and_port = ASCIIToUTF16(auth_info->challenger.ToString());
+ string16 explanation = elided_realm.empty() ?
+ l10n_util::GetStringFUTF16(IDS_LOGIN_DIALOG_DESCRIPTION_NO_REALM,
+ host_and_port) :
+ l10n_util::GetStringFUTF16(IDS_LOGIN_DIALOG_DESCRIPTION,
+ host_and_port,
+ elided_realm);
+ handler->BuildViewForPasswordManager(password_manager, explanation);
+}
// ----------------------------------------------------------------------------
// Public API
@@ -502,7 +479,8 @@ LoginHandler* CreateLoginPrompt(net::AuthChallengeInfo* auth_info,
net::URLRequest* request) {
LoginHandler* handler = LoginHandler::Create(auth_info, request);
BrowserThread::PostTask(
- BrowserThread::UI, FROM_HERE, new LoginDialogTask(
- request->url(), auth_info, handler));
+ BrowserThread::UI, FROM_HERE,
+ base::Bind(&LoginDialogCallback, request->url(),
+ make_scoped_refptr(auth_info), make_scoped_refptr(handler)));
return handler;
}