diff options
author | jhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-29 03:10:52 +0000 |
---|---|---|
committer | jhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-29 03:10:52 +0000 |
commit | 85bce451897884e05b769ac380f357a980416b54 (patch) | |
tree | 295682af32e7c17ead25eae0d24bda4176e34390 /chrome/browser/ui | |
parent | 6790e994966a2986bab059b9ecd00ecf31e6bda6 (diff) | |
download | chromium_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.cc | 45 | ||||
-rw-r--r-- | chrome/browser/ui/browser_init.cc | 48 | ||||
-rw-r--r-- | chrome/browser/ui/certificate_dialogs.cc | 28 | ||||
-rw-r--r-- | chrome/browser/ui/login/login_prompt.cc | 170 |
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; } |