Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2051)

Unified Diff: chrome/browser/login_prompt_mac.mm

Issue 345037: Fifth patch in getting rid of caching MessageLoop pointers. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/login_prompt_mac.mm
===================================================================
--- chrome/browser/login_prompt_mac.mm (revision 30691)
+++ chrome/browser/login_prompt_mac.mm (working copy)
@@ -7,8 +7,8 @@
#include "app/l10n_util.h"
#include "base/mac_util.h"
-#include "base/message_loop.h"
#include "base/sys_string_conversions.h"
+#include "chrome/browser/chrome_thread.h"
#include "chrome/browser/cocoa/constrained_window_mac.h"
#include "chrome/browser/login_model.h"
#include "chrome/browser/password_manager/password_manager.h"
@@ -35,12 +35,10 @@
public ConstrainedWindowMacDelegateCustomSheet,
public LoginModelObserver {
public:
- LoginHandlerMac(URLRequest* request, MessageLoop* ui_loop)
+ LoginHandlerMac(URLRequest* request)
: handled_auth_(false),
dialog_(NULL),
- ui_loop_(ui_loop),
request_(request),
- request_loop_(MessageLoop::current()),
password_manager_(NULL),
sheet_controller_(nil),
login_model_(NULL) {
@@ -80,7 +78,7 @@
// LoginHandler:
virtual void BuildViewForPasswordManager(PasswordManager* manager,
std::wstring explanation) {
- DCHECK(MessageLoop::current() == ui_loop_);
+ DCHECK(ChromeThread::CurrentlyOn(ChromeThread::UI));
// Load nib here instead of in constructor.
sheet_controller_ = [[[LoginHandlerSheet alloc]
@@ -111,7 +109,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_);
@@ -129,28 +127,35 @@
password_manager_->ProvisionallySavePassword(password_form_);
}
- ui_loop_->PostTask(FROM_HERE, NewRunnableMethod(
- this, &LoginHandlerMac::CloseContentsDeferred));
- ui_loop_->PostTask(FROM_HERE, NewRunnableMethod(
- this, &LoginHandlerMac::SendNotifications));
- request_loop_->PostTask(FROM_HERE, NewRunnableMethod(
- this, &LoginHandlerMac::SetAuthDeferred, username, password));
+ ChromeThread::PostTask(
+ ChromeThread::UI, FROM_HERE,
+ NewRunnableMethod(this, &LoginHandlerMac::CloseContentsDeferred));
+ ChromeThread::PostTask(
+ ChromeThread::UI, FROM_HERE,
+ NewRunnableMethod(this, &LoginHandlerMac::SendNotifications));
+ ChromeThread::PostTask(
+ ChromeThread::IO, FROM_HERE,
+ NewRunnableMethod(
+ this, &LoginHandlerMac::SetAuthDeferred, username, password));
}
virtual void CancelAuth() {
if (WasAuthHandled(true))
return;
- ui_loop_->PostTask(FROM_HERE, NewRunnableMethod(
- this, &LoginHandlerMac::CloseContentsDeferred));
- ui_loop_->PostTask(FROM_HERE, NewRunnableMethod(
- this, &LoginHandlerMac::SendNotifications));
- request_loop_->PostTask(FROM_HERE, NewRunnableMethod(
- this, &LoginHandlerMac::CancelAuthDeferred));
+ ChromeThread::PostTask(
+ ChromeThread::UI, FROM_HERE,
+ NewRunnableMethod(this, &LoginHandlerMac::CloseContentsDeferred));
+ ChromeThread::PostTask(
+ ChromeThread::UI, FROM_HERE,
+ NewRunnableMethod(this, &LoginHandlerMac::SendNotifications));
+ ChromeThread::PostTask(
+ ChromeThread::IO, FROM_HERE,
+ NewRunnableMethod(this, &LoginHandlerMac::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.
@@ -163,42 +168,44 @@
// Overridden from ConstrainedWindowMacDelegate:
virtual void DeleteDelegate() {
if (!WasAuthHandled(true)) {
- request_loop_->PostTask(FROM_HERE, NewRunnableMethod(
- this, &LoginHandlerMac::CancelAuthDeferred));
- ui_loop_->PostTask(FROM_HERE, NewRunnableMethod(
- this, &LoginHandlerMac::SendNotifications));
+ ChromeThread::PostTask(
+ ChromeThread::IO, FROM_HERE,
+ NewRunnableMethod(this, &LoginHandlerMac::CancelAuthDeferred));
+ ChromeThread::PostTask(
+ ChromeThread::UI, FROM_HERE,
+ NewRunnableMethod(this, &LoginHandlerMac::SendNotifications));
}
// Close sheet if it's still open, as required by
// ConstrainedWindowMacDelegate.
- DCHECK(MessageLoop::current() == ui_loop_);
+ DCHECK(ChromeThread::CurrentlyOn(ChromeThread::UI));
if (is_sheet_open())
[NSApp endSheet:sheet()];
SetModel(NULL);
// Delete this object once all InvokeLaters have been called.
- request_loop_->ReleaseSoon(FROM_HERE, this);
+ ChromeThread::ReleaseSoon(ChromeThread::IO, FROM_HERE, this);
}
void OnLoginPressed(const std::wstring& username,
const std::wstring& password) {
- DCHECK(MessageLoop::current() == ui_loop_);
+ DCHECK(ChromeThread::CurrentlyOn(ChromeThread::UI));
SetAuth(username, password);
}
void OnCancelPressed() {
- DCHECK(MessageLoop::current() == ui_loop_);
+ DCHECK(ChromeThread::CurrentlyOn(ChromeThread::UI));
CancelAuth();
}
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);
@@ -206,9 +213,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();
@@ -220,7 +227,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_)
@@ -240,7 +247,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();
@@ -266,28 +273,22 @@
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 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.
@@ -305,8 +306,8 @@
};
// static
-LoginHandler* LoginHandler::Create(URLRequest* request, MessageLoop* ui_loop) {
- return new LoginHandlerMac(request, ui_loop);
+LoginHandler* LoginHandler::Create(URLRequest* request) {
+ return new LoginHandlerMac(request);
}
// ----------------------------------------------------------------------------

Powered by Google App Engine
This is Rietveld 408576698