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

Unified Diff: trunk/src/chrome/browser/ui/ash/chrome_shell_delegate_chromeos.cc

Issue 14200034: Revert 194578 "Add ash SessionStateDelegate" (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 7 years, 8 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: trunk/src/chrome/browser/ui/ash/chrome_shell_delegate_chromeos.cc
===================================================================
--- trunk/src/chrome/browser/ui/ash/chrome_shell_delegate_chromeos.cc (revision 194588)
+++ trunk/src/chrome/browser/ui/ash/chrome_shell_delegate_chromeos.cc (working copy)
@@ -8,6 +8,7 @@
#include "ash/system/chromeos/network/network_observer.h"
#include "ash/system/tray/system_tray_notifier.h"
#include "ash/wm/window_util.h"
+#include "base/chromeos/chromeos_version.h"
#include "base/command_line.h"
#include "base/prefs/pref_service.h"
#include "base/utf_string_conversions.h"
@@ -23,6 +24,7 @@
#include "chrome/browser/chromeos/input_method/input_method_configuration.h"
#include "chrome/browser/chromeos/input_method/input_method_manager.h"
#include "chrome/browser/chromeos/login/screen_locker.h"
+#include "chrome/browser/chromeos/login/user_manager.h"
#include "chrome/browser/chromeos/login/webui_login_display_host.h"
#include "chrome/browser/chromeos/system/ash_system_tray_delegate.h"
#include "chrome/browser/extensions/api/terminal/terminal_extension_helper.h"
@@ -41,17 +43,60 @@
#include "chromeos/chromeos_switches.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/power_manager_client.h"
+#include "chromeos/dbus/session_manager_client.h"
#include "content/public/browser/user_metrics.h"
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_contents_view.h"
#include "grit/generated_resources.h"
#include "ui/base/l10n/l10n_util.h"
+bool ChromeShellDelegate::IsUserLoggedIn() const {
+ // When running a Chrome OS build outside of a device (i.e. on a developer's
+ // workstation) and not running as login-manager, pretend like we're always
+ // logged in.
+ if (!base::chromeos::IsRunningOnChromeOS() &&
+ !CommandLine::ForCurrentProcess()->HasSwitch(
+ chromeos::switches::kLoginManager)) {
+ return true;
+ }
+
+ return chromeos::UserManager::Get()->IsUserLoggedIn();
+}
+
+bool ChromeShellDelegate::IsSessionStarted() const {
+ // Returns true if we're logged in and browser has been started
+ return chromeos::UserManager::Get()->IsSessionStarted();
+}
+
+bool ChromeShellDelegate::IsGuestSession() const {
+ return CommandLine::ForCurrentProcess()->HasSwitch(
+ chromeos::switches::kGuestSession);
+}
+
bool ChromeShellDelegate::IsFirstRunAfterBoot() const {
return CommandLine::ForCurrentProcess()->HasSwitch(
chromeos::switches::kFirstBoot);
}
+bool ChromeShellDelegate::CanLockScreen() const {
+ return chromeos::UserManager::Get()->CanCurrentUserLock();
+}
+
+void ChromeShellDelegate::LockScreen() {
+ if (CanLockScreen()) {
+ // TODO(antrim) : additional logging for crbug/173178
+ LOG(WARNING) << "Requesting screen lock from ChromeShellDelegate";
+ chromeos::DBusThreadManager::Get()->GetSessionManagerClient()->
+ RequestLockScreen();
+ }
+}
+
+bool ChromeShellDelegate::IsScreenLocked() const {
+ if (!chromeos::ScreenLocker::default_screen_locker())
+ return false;
+ return chromeos::ScreenLocker::default_screen_locker()->locked();
+}
+
void ChromeShellDelegate::PreInit() {
chromeos::LoadDisplayPreferences(IsFirstRunAfterBoot());
}
@@ -202,6 +247,9 @@
}
bool ChromeShellDelegate::ShouldAlwaysShowAccessibilityMenu() const {
+ if (!IsUserLoggedIn())
+ return true;
+
Profile* profile = ProfileManager::GetDefaultProfile();
if (!profile)
return false;

Powered by Google App Engine
This is Rietveld 408576698