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

Unified Diff: chrome/browser/chromeos/login/screen_locker_tester.cc

Issue 23694025: Remove calls to deprecated session_manager DBus methods (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix use-after-free in tests. Created 7 years, 3 months 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/chromeos/login/screen_locker_tester.cc
diff --git a/chrome/browser/chromeos/login/screen_locker_tester.cc b/chrome/browser/chromeos/login/screen_locker_tester.cc
index 07d3ba71f17b70c76fe2798b7467a8ff23758999..33ce5b124be01f95fc7a9e2ea3bc4586df2fe62a 100644
--- a/chrome/browser/chromeos/login/screen_locker_tester.cc
+++ b/chrome/browser/chromeos/login/screen_locker_tester.cc
@@ -28,9 +28,12 @@ using content::WebContents;
namespace {
+// This class is used to observe state of the global ScreenLocker instance,
+// which can go away as a result of a successful authentication. As such,
+// it needs to directly reference the global ScreenLocker.
class LoginAttemptObserver : public chromeos::LoginStatusConsumer {
public:
- explicit LoginAttemptObserver(chromeos::ScreenLocker* locker);
+ LoginAttemptObserver();
virtual ~LoginAttemptObserver();
void WaitForAttempt();
@@ -50,23 +53,24 @@ class LoginAttemptObserver : public chromeos::LoginStatusConsumer {
private:
void LoginAttempted();
- chromeos::ScreenLocker* locker_;
bool login_attempted_;
bool waiting_;
DISALLOW_COPY_AND_ASSIGN(LoginAttemptObserver);
};
-LoginAttemptObserver::LoginAttemptObserver(chromeos::ScreenLocker* locker)
+LoginAttemptObserver::LoginAttemptObserver()
: chromeos::LoginStatusConsumer(),
- locker_(locker),
login_attempted_(false),
waiting_(false) {
- locker_->SetLoginStatusConsumer(this);
+ chromeos::ScreenLocker::default_screen_locker()->SetLoginStatusConsumer(this);
}
LoginAttemptObserver::~LoginAttemptObserver() {
- locker_->SetLoginStatusConsumer(NULL);
+ chromeos::ScreenLocker* global_locker =
+ chromeos::ScreenLocker::default_screen_locker();
+ if (global_locker)
+ global_locker->SetLoginStatusConsumer(NULL);
}
void LoginAttemptObserver::WaitForAttempt() {
@@ -84,7 +88,7 @@ void LoginAttemptObserver::LoginAttempted() {
base::MessageLoopForUI::current()->Quit();
}
-}
+} // anyonymous namespace
namespace chromeos {
@@ -148,7 +152,7 @@ void WebUIScreenLockerTester::EnterPassword(const std::string& password) {
ASSERT_TRUE(result);
// Attempt to sign in.
- LoginAttemptObserver login(ScreenLocker::screen_locker_);
+ LoginAttemptObserver login;
v = content::ExecuteScriptAndGetValue(
RenderViewHost(),
"$('pod-row').pods[0].activate();");
« no previous file with comments | « chrome/browser/chromeos/login/screen_locker_browsertest.cc ('k') | chrome/browser/chromeos/power/screen_lock_observer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698