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

Side by Side Diff: chrome/browser/chromeos/login/lock/webui_screen_locker.cc

Issue 882423002: Listen OnDisplayMetricsChanged on lock screen (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/chromeos/login/lock/webui_screen_locker.h" 5 #include "chrome/browser/chromeos/login/lock/webui_screen_locker.h"
6 6
7 #include "ash/wm/lock_state_controller.h" 7 #include "ash/wm/lock_state_controller.h"
8 #include "ash/wm/lock_state_observer.h" 8 #include "ash/wm/lock_state_observer.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 WebUIScreenLocker::WebUIScreenLocker(ScreenLocker* screen_locker) 61 WebUIScreenLocker::WebUIScreenLocker(ScreenLocker* screen_locker)
62 : ScreenLockerDelegate(screen_locker), 62 : ScreenLockerDelegate(screen_locker),
63 lock_ready_(false), 63 lock_ready_(false),
64 webui_ready_(false), 64 webui_ready_(false),
65 network_state_helper_(new login::NetworkStateHelper), 65 network_state_helper_(new login::NetworkStateHelper),
66 is_observing_keyboard_(false), 66 is_observing_keyboard_(false),
67 weak_factory_(this) { 67 weak_factory_(this) {
68 set_should_emit_login_prompt_visible(false); 68 set_should_emit_login_prompt_visible(false);
69 ash::Shell::GetInstance()->lock_state_controller()->AddObserver(this); 69 ash::Shell::GetInstance()->lock_state_controller()->AddObserver(this);
70 ash::Shell::GetInstance()->delegate()->AddVirtualKeyboardStateObserver(this); 70 ash::Shell::GetInstance()->delegate()->AddVirtualKeyboardStateObserver(this);
71 ash::Shell::GetScreen()->AddObserver(this);
71 DBusThreadManager::Get()->GetPowerManagerClient()->AddObserver(this); 72 DBusThreadManager::Get()->GetPowerManagerClient()->AddObserver(this);
72 73
73 if (keyboard::KeyboardController::GetInstance()) { 74 if (keyboard::KeyboardController::GetInstance()) {
74 keyboard::KeyboardController::GetInstance()->AddObserver(this); 75 keyboard::KeyboardController::GetInstance()->AddObserver(this);
75 is_observing_keyboard_ = true; 76 is_observing_keyboard_ = true;
76 } 77 }
77 } 78 }
78 79
79 void WebUIScreenLocker::LockScreen() { 80 void WebUIScreenLocker::LockScreen() {
80 gfx::Rect bounds = 81 gfx::Rect bounds =
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 149
149 void WebUIScreenLocker::FocusUserPod() { 150 void WebUIScreenLocker::FocusUserPod() {
150 if (!webui_ready_) 151 if (!webui_ready_)
151 return; 152 return;
152 webui_login_->RequestFocus(); 153 webui_login_->RequestFocus();
153 GetWebUI()->CallJavascriptFunction("cr.ui.Oobe.forceLockedUserPodFocus"); 154 GetWebUI()->CallJavascriptFunction("cr.ui.Oobe.forceLockedUserPodFocus");
154 } 155 }
155 156
156 WebUIScreenLocker::~WebUIScreenLocker() { 157 WebUIScreenLocker::~WebUIScreenLocker() {
157 DBusThreadManager::Get()->GetPowerManagerClient()->RemoveObserver(this); 158 DBusThreadManager::Get()->GetPowerManagerClient()->RemoveObserver(this);
159 ash::Shell::GetScreen()->RemoveObserver(this);
158 ash::Shell::GetInstance()-> 160 ash::Shell::GetInstance()->
159 lock_state_controller()->RemoveObserver(this); 161 lock_state_controller()->RemoveObserver(this);
160 162
161 ash::Shell::GetInstance()->delegate()-> 163 ash::Shell::GetInstance()->delegate()->
162 RemoveVirtualKeyboardStateObserver(this); 164 RemoveVirtualKeyboardStateObserver(this);
163 // In case of shutdown, lock_window_ may be deleted before WebUIScreenLocker. 165 // In case of shutdown, lock_window_ may be deleted before WebUIScreenLocker.
164 if (lock_window_) { 166 if (lock_window_) {
165 lock_window_->RemoveObserver(this); 167 lock_window_->RemoveObserver(this);
166 lock_window_->Close(); 168 lock_window_->Close();
167 } 169 }
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
361 if (GetOobeUI()) { 363 if (GetOobeUI()) {
362 GetOobeUI()->GetCoreOobeActor()->ShowControlBar(false); 364 GetOobeUI()->GetCoreOobeActor()->ShowControlBar(false);
363 if (login::LoginScrollIntoViewEnabled()) 365 if (login::LoginScrollIntoViewEnabled())
364 GetOobeUI()->GetCoreOobeActor()->SetKeyboardState(true, new_bounds); 366 GetOobeUI()->GetCoreOobeActor()->SetKeyboardState(true, new_bounds);
365 } 367 }
366 } 368 }
367 369
368 keyboard_bounds_ = new_bounds; 370 keyboard_bounds_ = new_bounds;
369 } 371 }
370 372
373 ////////////////////////////////////////////////////////////////////////////////
374 // gfx::DisplayObserver implementation:
375
376 void WebUIScreenLocker::OnDisplayAdded(const gfx::Display& new_display) {
377 }
378
379 void WebUIScreenLocker::OnDisplayRemoved(const gfx::Display& old_display) {
380 }
381
382 void WebUIScreenLocker::OnDisplayMetricsChanged(const gfx::Display& display,
383 uint32_t changed_metrics) {
384 gfx::Display primary_display =
385 gfx::Screen::GetNativeScreen()->GetPrimaryDisplay();
386 if (display.id() != primary_display.id() ||
387 !(changed_metrics & DISPLAY_METRIC_BOUNDS)) {
388 return;
389 }
390
391 if (GetOobeUI()) {
392 const gfx::Size& size = primary_display.size();
393 GetOobeUI()->GetCoreOobeActor()->SetClientAreaSize(size.width(),
394 size.height());
395 }
396 }
397
371 } // namespace chromeos 398 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698