Index: chrome/browser/login_prompt_win.cc |
=================================================================== |
--- chrome/browser/login_prompt_win.cc (revision 30691) |
+++ chrome/browser/login_prompt_win.cc (working copy) |
@@ -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 @@ |
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 @@ |
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 @@ |
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 @@ |
} |
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 @@ |
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 @@ |
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 @@ |
} |
} |
- // 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 @@ |
// 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 @@ |
// 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 @@ |
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 @@ |
}; |
// static |
-LoginHandler* LoginHandler::Create(URLRequest* request, MessageLoop* ui_loop) { |
- return new LoginHandlerWin(request, ui_loop); |
+LoginHandler* LoginHandler::Create(URLRequest* request) { |
+ return new LoginHandlerWin(request); |
} |