summaryrefslogtreecommitdiffstats
path: root/chrome/browser/login_prompt_win.cc
diff options
context:
space:
mode:
authorjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-03 02:27:01 +0000
committerjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-03 02:27:01 +0000
commit0d3dc8e2804b0adc4f572944db027929e2b5af5a (patch)
treeefe4a3ecde226002698017cceba2952b8979a66f /chrome/browser/login_prompt_win.cc
parent8dc291a4dbeed088fbdc36115b250c5f83d3edde (diff)
downloadchromium_src-0d3dc8e2804b0adc4f572944db027929e2b5af5a.zip
chromium_src-0d3dc8e2804b0adc4f572944db027929e2b5af5a.tar.gz
chromium_src-0d3dc8e2804b0adc4f572944db027929e2b5af5a.tar.bz2
Fifth patch in getting rid of caching MessageLoop pointers.
BUG=25354 Review URL: http://codereview.chromium.org/345037 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30790 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/login_prompt_win.cc')
-rw-r--r--chrome/browser/login_prompt_win.cc86
1 files changed, 43 insertions, 43 deletions
diff --git a/chrome/browser/login_prompt_win.cc b/chrome/browser/login_prompt_win.cc
index b3da33a..f95a0d2 100644
--- a/chrome/browser/login_prompt_win.cc
+++ b/chrome/browser/login_prompt_win.cc
@@ -5,7 +5,7 @@
#include "chrome/browser/login_prompt.h"
#include "app/l10n_util.h"
-#include "base/message_loop.h"
+#include "chrome/browser/chrome_thread.h"
#include "chrome/browser/password_manager/password_manager.h"
#include "chrome/browser/renderer_host/resource_dispatcher_host.h"
#include "chrome/browser/tab_contents/navigation_controller.h"
@@ -30,12 +30,10 @@ class LoginHandlerWin : public LoginHandler,
public base::RefCountedThreadSafe<LoginHandlerWin>,
public views::DialogDelegate {
public:
- LoginHandlerWin(URLRequest* request, MessageLoop* ui_loop)
+ LoginHandlerWin(URLRequest* request)
: dialog_(NULL),
handled_auth_(false),
request_(request),
- request_loop_(MessageLoop::current()),
- ui_loop_(ui_loop),
password_manager_(NULL) {
DCHECK(request_) << "LoginHandler constructed with NULL request";
@@ -65,29 +63,30 @@ class LoginHandlerWin : public LoginHandler,
return l10n_util::GetString(IDS_LOGIN_DIALOG_TITLE);
}
virtual void WindowClosing() {
- DCHECK(MessageLoop::current() == ui_loop_);
+ DCHECK(ChromeThread::CurrentlyOn(ChromeThread::UI));
// Reference is no longer valid.
dialog_ = NULL;
if (!WasAuthHandled(true)) {
- request_loop_->PostTask(FROM_HERE, NewRunnableMethod(
- this, &LoginHandlerWin::CancelAuthDeferred));
+ ChromeThread::PostTask(
+ ChromeThread::IO, FROM_HERE,
+ NewRunnableMethod(this, &LoginHandlerWin::CancelAuthDeferred));
SendNotifications();
}
}
virtual void DeleteDelegate() {
// Delete this object once all InvokeLaters have been called.
- request_loop_->ReleaseSoon(FROM_HERE, this);
+ ChromeThread::ReleaseSoon(ChromeThread::IO, FROM_HERE, this);
}
virtual bool Cancel() {
- DCHECK(MessageLoop::current() == ui_loop_);
+ DCHECK(ChromeThread::CurrentlyOn(ChromeThread::UI));
DCHECK(dialog_) << "LoginHandler invoked without being attached";
CancelAuth();
return true;
}
virtual bool Accept() {
- DCHECK(MessageLoop::current() == ui_loop_);
+ DCHECK(ChromeThread::CurrentlyOn(ChromeThread::UI));
DCHECK(dialog_) << "LoginHandler invoked without being attached";
SetAuth(login_view_->GetUsername(), login_view_->GetPassword());
return true;
@@ -100,7 +99,7 @@ class LoginHandlerWin : public LoginHandler,
virtual void BuildViewForPasswordManager(PasswordManager* manager,
std::wstring explanation) {
- DCHECK(MessageLoop::current() == ui_loop_);
+ DCHECK(ChromeThread::CurrentlyOn(ChromeThread::UI));
LoginView* view = new LoginView(explanation);
@@ -130,7 +129,7 @@ class LoginHandlerWin : public LoginHandler,
}
virtual TabContents* GetTabContentsForLogin() {
- DCHECK(MessageLoop::current() == ui_loop_);
+ DCHECK(ChromeThread::CurrentlyOn(ChromeThread::UI));
return tab_util::GetTabContentsByID(render_process_host_id_,
tab_contents_id_);
@@ -148,28 +147,35 @@ class LoginHandlerWin : public LoginHandler,
password_manager_->ProvisionallySavePassword(password_form_);
}
- ui_loop_->PostTask(FROM_HERE, NewRunnableMethod(
- this, &LoginHandlerWin::CloseContentsDeferred));
- ui_loop_->PostTask(FROM_HERE, NewRunnableMethod(
- this, &LoginHandlerWin::SendNotifications));
- request_loop_->PostTask(FROM_HERE, NewRunnableMethod(
- this, &LoginHandlerWin::SetAuthDeferred, username, password));
+ ChromeThread::PostTask(
+ ChromeThread::UI, FROM_HERE,
+ NewRunnableMethod(this, &LoginHandlerWin::CloseContentsDeferred));
+ ChromeThread::PostTask(
+ ChromeThread::UI, FROM_HERE,
+ NewRunnableMethod(this, &LoginHandlerWin::SendNotifications));
+ ChromeThread::PostTask(
+ ChromeThread::IO, FROM_HERE,
+ NewRunnableMethod(
+ this, &LoginHandlerWin::SetAuthDeferred, username, password));
}
virtual void CancelAuth() {
if (WasAuthHandled(true))
return;
- ui_loop_->PostTask(FROM_HERE, NewRunnableMethod(
- this, &LoginHandlerWin::CloseContentsDeferred));
- ui_loop_->PostTask(FROM_HERE, NewRunnableMethod(
- this, &LoginHandlerWin::SendNotifications));
- request_loop_->PostTask(FROM_HERE, NewRunnableMethod(
- this, &LoginHandlerWin::CancelAuthDeferred));
+ ChromeThread::PostTask(
+ ChromeThread::UI, FROM_HERE,
+ NewRunnableMethod(this, &LoginHandlerWin::CloseContentsDeferred));
+ ChromeThread::PostTask(
+ ChromeThread::UI, FROM_HERE,
+ NewRunnableMethod(this, &LoginHandlerWin::SendNotifications));
+ ChromeThread::PostTask(
+ ChromeThread::IO, FROM_HERE,
+ NewRunnableMethod(this, &LoginHandlerWin::CancelAuthDeferred));
}
virtual void OnRequestCancelled() {
- DCHECK(MessageLoop::current() == request_loop_) <<
+ DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO)) <<
"Why is OnRequestCancelled called from the UI thread?";
// Reference is no longer valid.
@@ -182,10 +188,10 @@ class LoginHandlerWin : public LoginHandler,
private:
friend class LoginPrompt;
- // Calls SetAuth from the request_loop.
+ // Calls SetAuth from the IO loop.
void SetAuthDeferred(const std::wstring& username,
const std::wstring& password) {
- DCHECK(MessageLoop::current() == request_loop_);
+ DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO));
if (request_) {
request_->SetAuth(username, password);
@@ -193,9 +199,9 @@ class LoginHandlerWin : public LoginHandler,
}
}
- // Calls CancelAuth from the request_loop.
+ // Calls CancelAuth from the IO loop.
void CancelAuthDeferred() {
- DCHECK(MessageLoop::current() == request_loop_);
+ DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO));
if (request_) {
request_->CancelAuth();
@@ -207,7 +213,7 @@ class LoginHandlerWin : public LoginHandler,
// Closes the view_contents from the UI loop.
void CloseContentsDeferred() {
- DCHECK(MessageLoop::current() == ui_loop_);
+ DCHECK(ChromeThread::CurrentlyOn(ChromeThread::UI));
// The hosting ConstrainedWindow may have been freed.
if (dialog_)
@@ -227,7 +233,7 @@ class LoginHandlerWin : public LoginHandler,
// Notify observers that authentication is needed or received. The automation
// proxy uses this for testing.
void SendNotifications() {
- DCHECK(MessageLoop::current() == ui_loop_);
+ DCHECK(ChromeThread::CurrentlyOn(ChromeThread::UI));
NotificationService* service = NotificationService::current();
TabContents* requesting_contents = GetTabContentsForLogin();
@@ -253,31 +259,25 @@ class LoginHandlerWin : public LoginHandler,
Lock handled_auth_lock_;
// The ConstrainedWindow that is hosting our LoginView.
- // This should only be accessed on the ui_loop_.
+ // This should only be accessed on the UI loop.
ConstrainedWindow* dialog_;
- // The MessageLoop of the thread that the ChromeViewContents lives in.
- MessageLoop* ui_loop_;
-
// The request that wants login data.
- // This should only be accessed on the request_loop_.
+ // This should only be accessed on the IO loop.
URLRequest* request_;
- // The MessageLoop of the thread that the URLRequest lives in.
- MessageLoop* request_loop_;
-
// The LoginView that contains the user's login information
LoginView* login_view_;
// The PasswordForm sent to the PasswordManager. This is so we can refer to it
// when later notifying the password manager if the credentials were accepted
// or rejected.
- // This should only be accessed on the ui_loop_.
+ // This should only be accessed on the UI loop.
PasswordForm password_form_;
// Points to the password manager owned by the TabContents requesting auth.
// Can be null if the TabContents is not a TabContents.
- // This should only be accessed on the ui_loop_.
+ // This should only be accessed on the UI loop.
PasswordManager* password_manager_;
// Cached from the URLRequest, in case it goes NULL on us.
@@ -288,6 +288,6 @@ class LoginHandlerWin : public LoginHandler,
};
// static
-LoginHandler* LoginHandler::Create(URLRequest* request, MessageLoop* ui_loop) {
- return new LoginHandlerWin(request, ui_loop);
+LoginHandler* LoginHandler::Create(URLRequest* request) {
+ return new LoginHandlerWin(request);
}