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

Unified Diff: chrome/browser/chromeos/login/ui/login_display_host_impl.cc

Issue 2654003008: cros: Clear out LoginDisplayHostImpl::login_view_ before login_window_. (Closed)
Patch Set: Add comment, do not use inverted ifs Created 3 years, 10 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
« no previous file with comments | « chrome/browser/chromeos/login/ui/login_display_host_impl.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/chromeos/login/ui/login_display_host_impl.cc
diff --git a/chrome/browser/chromeos/login/ui/login_display_host_impl.cc b/chrome/browser/chromeos/login/ui/login_display_host_impl.cc
index 8220357b40475a90cee41fa3380d917ff89ed536..1c9ecf8eb6f7d89b89f03de4e5a71cc959724919 100644
--- a/chrome/browser/chromeos/login/ui/login_display_host_impl.cc
+++ b/chrome/browser/chromeos/login/ui/login_display_host_impl.cc
@@ -271,21 +271,6 @@ const int LoginDisplayHostImpl::kShowLoginWebUIid = 0x1111;
LoginDisplayHostImpl::LoginDisplayHostImpl(const gfx::Rect& wallpaper_bounds)
: wallpaper_bounds_(wallpaper_bounds),
- shutting_down_(false),
- oobe_progress_bar_visible_(false),
- session_starting_(false),
- login_window_(NULL),
- login_view_(NULL),
- webui_login_display_(NULL),
- is_showing_login_(false),
- is_wallpaper_loaded_(false),
- status_area_saved_visibility_(false),
- crash_count_(0),
- restore_path_(RESTORE_UNKNOWN),
- finalize_animation_type_(ANIMATION_WORKSPACE),
- startup_sound_played_(false),
- startup_sound_honors_spoken_feedback_(false),
- is_observing_keyboard_(false),
pointer_factory_(this),
animation_weak_ptr_factory_(this) {
if (chrome::IsRunningInMash()) {
@@ -463,7 +448,7 @@ LoginDisplay* LoginDisplayHostImpl::CreateLoginDisplay(
}
gfx::NativeWindow LoginDisplayHostImpl::GetNativeWindow() const {
- return login_window_ ? login_window_->GetNativeWindow() : NULL;
+ return login_window_ ? login_window_->GetNativeWindow() : nullptr;
}
WebUILoginView* LoginDisplayHostImpl::GetWebUILoginView() const {
@@ -590,7 +575,7 @@ void LoginDisplayHostImpl::StartUserAdding(
// after the animation is finished.
chrome::MultiUserWindowManager* window_manager =
chrome::MultiUserWindowManager::GetInstance();
- // MultiUserWindowManager instance might be null in a unit test.
+ // MultiUserWindowManager instance might be nullptr in a unit test.
if (window_manager)
window_manager->AddObserver(this);
@@ -1005,7 +990,7 @@ void LoginDisplayHostImpl::OnWillRemoveView(views::Widget* widget,
views::View* view) {
if (view != static_cast<views::View*>(login_view_))
return;
- login_view_ = NULL;
+ login_view_ = nullptr;
widget->RemoveRemovalsObserver(this);
}
@@ -1198,15 +1183,18 @@ void LoginDisplayHostImpl::InitLoginWindowAndView() {
}
void LoginDisplayHostImpl::ResetLoginWindowAndView() {
- if (!login_window_)
- return;
- login_window_->Close();
- login_window_ = NULL;
+ // Make sure to reset the |login_view_| pointer first; it is owned by
+ // |login_window_|. Closing |login_window_| could immediately invalidate the
+ // |login_view_| pointer.
+ if (login_view_) {
+ login_view_->SetUIEnabled(true);
+ login_view_ = nullptr;
+ }
- if (!login_view_)
- return;
- login_view_->SetUIEnabled(true);
- login_view_ = NULL;
+ if (login_window_) {
+ login_window_->Close();
+ login_window_ = nullptr;
+ }
}
void LoginDisplayHostImpl::OnAuthPrewarmDone() {
« no previous file with comments | « chrome/browser/chromeos/login/ui/login_display_host_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698