Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / chromeos / login / lock / screen_locker.cc
index 7404e0b..dff2cd4 100644 (file)
@@ -23,9 +23,7 @@
 #include "base/metrics/histogram.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/string_util.h"
-#include "base/timer/timer.h"
 #include "chrome/browser/chrome_notification_types.h"
-#include "chrome/browser/chromeos/login/auth/login_performer.h"
 #include "chrome/browser/chromeos/login/lock/webui_screen_locker.h"
 #include "chrome/browser/chromeos/login/login_utils.h"
 #include "chrome/browser/chromeos/login/session/user_session_manager.h"
@@ -94,14 +92,14 @@ class ScreenLockObserver : public SessionManagerClient::StubDelegate,
   bool session_started() const { return session_started_; }
 
   // SessionManagerClient::StubDelegate overrides:
-  virtual void LockScreenForStub() OVERRIDE {
+  virtual void LockScreenForStub() override {
     ScreenLocker::HandleLockScreenRequest();
   }
 
   // NotificationObserver overrides:
   virtual void Observe(int type,
                        const content::NotificationSource& source,
-                       const content::NotificationDetails& details) OVERRIDE {
+                       const content::NotificationDetails& details) override {
     if (type == chrome::NOTIFICATION_SESSION_STARTED)
       session_started_ = true;
     else
@@ -109,7 +107,7 @@ class ScreenLockObserver : public SessionManagerClient::StubDelegate,
   }
 
   // UserAddingScreen::Observer overrides:
-  virtual void OnUserAddingFinished() OVERRIDE {
+  virtual void OnUserAddingFinished() override {
     UserAddingScreen::Get()->RemoveObserver(this);
     ScreenLocker::HandleLockScreenRequest();
   }
@@ -364,7 +362,10 @@ void ScreenLocker::HandleLockScreenRequest() {
   if (g_screen_lock_observer->session_started() &&
       user_manager::UserManager::Get()->CanCurrentUserLock()) {
     ScreenLocker::Show();
+#if !defined(USE_ATHENA)
+    // TOOD(dpolukhin): crbug.com/413926.
     ash::Shell::GetInstance()->lock_state_controller()->OnStartingLock();
+#endif
   } else {
     // If the current user's session cannot be locked or the user has not
     // completed all sign-in steps yet, log out instead. The latter is done to
@@ -378,11 +379,6 @@ void ScreenLocker::HandleLockScreenRequest() {
 
 // static
 void ScreenLocker::Show() {
-#if defined(USE_ATHENA)
-  // crbug.com/413926
-  return;
-#endif
-
   content::RecordAction(UserMetricsAction("ScreenLocker_Show"));
   DCHECK(base::MessageLoopForUI::IsCurrent());
 
@@ -395,6 +391,7 @@ void ScreenLocker::Show() {
     return;
   }
 
+#if !defined(USE_ATHENA)
   // If the active window is fullscreen, exit fullscreen to avoid the web page
   // or app mimicking the lock screen. Do not exit fullscreen if the shelf is
   // visible while in fullscreen because the shelf makes it harder for a web
@@ -406,6 +403,7 @@ void ScreenLocker::Show() {
     const ash::wm::WMEvent event(ash::wm::WM_EVENT_TOGGLE_FULLSCREEN);
     active_window_state->OnWMEvent(&event);
   }
+#endif
 
   if (!screen_locker_) {
     ScreenLocker* locker =
@@ -422,11 +420,6 @@ void ScreenLocker::Show() {
 
 // static
 void ScreenLocker::Hide() {
-#if defined(USE_ATHENA)
-  // crbug.com/413926
-  return;
-#endif
-
   DCHECK(base::MessageLoopForUI::IsCurrent());
   // For a guest/demo user, screen_locker_ would have never been initialized.
   if (user_manager::UserManager::Get()->IsLoggedInAsGuest() ||
@@ -438,8 +431,12 @@ void ScreenLocker::Hide() {
   DCHECK(screen_locker_);
   base::Callback<void(void)> callback =
       base::Bind(&ScreenLocker::ScheduleDeletion);
+#if !defined(USE_ATHENA)
   ash::Shell::GetInstance()->lock_state_controller()->
     OnLockScreenHide(callback);
+#else
+  BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, callback);
+#endif
 }
 
 void ScreenLocker::ScheduleDeletion() {
@@ -448,7 +445,9 @@ void ScreenLocker::ScheduleDeletion() {
     return;
   VLOG(1) << "Deleting ScreenLocker " << screen_locker_;
 
+#if !defined(USE_ATHENA)
   ash::PlaySystemSoundIfSpokenFeedback(SOUND_UNLOCK);
+#endif
 
   delete screen_locker_;
   screen_locker_ = NULL;
@@ -465,9 +464,12 @@ ScreenLocker::~ScreenLocker() {
     authenticator_->SetConsumer(NULL);
   ClearErrors();
 
+#if !defined(USE_ATHENA)
+  // TOOD(dpolukhin): we need to to something similar for Athena.
   VLOG(1) << "Moving desktop background to unlocked container";
   ash::Shell::GetInstance()->
       desktop_background_controller()->MoveDesktopToUnlockedContainer();
+#endif
 
   screen_locker_ = NULL;
   bool state = false;
@@ -498,12 +500,10 @@ void ScreenLocker::ScreenLockReady() {
   UMA_HISTOGRAM_TIMES("ScreenLocker.ScreenLockTime", delta);
 
   VLOG(1) << "Moving desktop background to locked container";
+#if !defined(USE_ATHENA)
   ash::Shell::GetInstance()->
       desktop_background_controller()->MoveDesktopToLockedContainer();
-
-  input_method::InputMethodManager::Get()
-      ->GetActiveIMEState()
-      ->EnableLockScreenLayouts();
+#endif
 
   bool state = true;
   VLOG(1) << "Emitting SCREEN_LOCK_STATE_CHANGED with state=" << state;
@@ -513,6 +513,10 @@ void ScreenLocker::ScreenLockReady() {
       content::Details<bool>(&state));
   VLOG(1) << "Calling session manager's HandleLockScreenShown D-Bus method";
   DBusThreadManager::Get()->GetSessionManagerClient()->NotifyLockScreenShown();
+
+  input_method::InputMethodManager::Get()
+      ->GetActiveIMEState()
+      ->EnableLockScreenLayouts();
 }
 
 content::WebUI* ScreenLocker::GetAssociatedWebUI() {