diff options
author | oshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-03 21:38:36 +0000 |
---|---|---|
committer | oshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-03 21:38:36 +0000 |
commit | 7009d9b8d8bee27f40080f6dca4af72281e579dc (patch) | |
tree | bbe00ea6599abbb711488b1aa4253b170365b4d6 /ash/shell/shell_delegate_impl.cc | |
parent | fc2b46bc8a826bbce32c0a1cfef6678aa7b0bb2b (diff) | |
download | chromium_src-7009d9b8d8bee27f40080f6dca4af72281e579dc.zip chromium_src-7009d9b8d8bee27f40080f6dca4af72281e579dc.tar.gz chromium_src-7009d9b8d8bee27f40080f6dca4af72281e579dc.tar.bz2 |
Media indicator for background recording task
BUG=323766
TEST=MediaTrayItemTest.NotifyMediaCaptureChange
Review URL: https://codereview.chromium.org/253183003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@268077 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash/shell/shell_delegate_impl.cc')
-rw-r--r-- | ash/shell/shell_delegate_impl.cc | 107 |
1 files changed, 105 insertions, 2 deletions
diff --git a/ash/shell/shell_delegate_impl.cc b/ash/shell/shell_delegate_impl.cc index 2bf14e8..289d769 100644 --- a/ash/shell/shell_delegate_impl.cc +++ b/ash/shell/shell_delegate_impl.cc @@ -11,7 +11,7 @@ #include "ash/media_delegate.h" #include "ash/new_window_delegate.h" #include "ash/session/session_state_delegate.h" -#include "ash/session/session_state_delegate_stub.h" +#include "ash/session/user_info.h" #include "ash/shell/context_menu.h" #include "ash/shell/example_factory.h" #include "ash/shell/keyboard_controller_proxy_stub.h" @@ -21,6 +21,7 @@ #include "ash/system/tray/default_system_tray_delegate.h" #include "ash/wm/window_state.h" #include "base/message_loop/message_loop.h" +#include "base/strings/utf_string_conversions.h" #include "ui/aura/window.h" #include "ui/wm/core/input_method_event_filter.h" @@ -33,6 +34,7 @@ class NewWindowDelegateImpl : public NewWindowDelegate { NewWindowDelegateImpl() {} virtual ~NewWindowDelegateImpl() {} + // NewWindowDelegate: virtual void NewTab() OVERRIDE {} virtual void NewWindow(bool incognito) OVERRIDE { ash::shell::ToplevelWindow::CreateParams create_params; @@ -56,14 +58,115 @@ class MediaDelegateImpl : public MediaDelegate { MediaDelegateImpl() {} virtual ~MediaDelegateImpl() {} + // MediaDelegate: virtual void HandleMediaNextTrack() OVERRIDE {} virtual void HandleMediaPlayPause() OVERRIDE {} virtual void HandleMediaPrevTrack() OVERRIDE {} + virtual MediaCaptureState GetMediaCaptureState( + content::BrowserContext* context) OVERRIDE { + return MEDIA_CAPTURE_VIDEO; + } private: DISALLOW_COPY_AND_ASSIGN(MediaDelegateImpl); }; +class UserInfoImpl : public UserInfo { + public: + UserInfoImpl() {} + virtual ~UserInfoImpl() {} + + // UserInfo: + virtual base::string16 GetDisplayName() const OVERRIDE { + return base::UTF8ToUTF16("stub-user"); + } + virtual base::string16 GetGivenName() const OVERRIDE { + return base::UTF8ToUTF16("Stub"); + } + virtual std::string GetEmail() const OVERRIDE { + return "stub-user@domain.com"; + } + virtual std::string GetUserID() const OVERRIDE { return GetEmail(); } + virtual const gfx::ImageSkia& GetImage() const OVERRIDE { + return user_image_; + } + + private: + gfx::ImageSkia user_image_; + + DISALLOW_COPY_AND_ASSIGN(UserInfoImpl); +}; + +class SessionStateDelegateImpl : public SessionStateDelegate { + public: + SessionStateDelegateImpl() + : screen_locked_(false), user_info_(new UserInfoImpl()) {} + + virtual ~SessionStateDelegateImpl() {} + + // SessionStateDelegate: + virtual content::BrowserContext* GetBrowserContextByIndex( + MultiProfileIndex index) OVERRIDE { + return Shell::GetInstance()->delegate()->GetActiveBrowserContext(); + } + virtual content::BrowserContext* GetBrowserContextForWindow( + aura::Window* window) OVERRIDE { + return Shell::GetInstance()->delegate()->GetActiveBrowserContext(); + } + virtual int GetMaximumNumberOfLoggedInUsers() const OVERRIDE { return 3; } + virtual int NumberOfLoggedInUsers() const OVERRIDE { + // ash_shell has 2 users. + return 2; + } + virtual bool IsActiveUserSessionStarted() const OVERRIDE { return true; } + virtual bool CanLockScreen() const OVERRIDE { return true; } + virtual bool IsScreenLocked() const OVERRIDE { return screen_locked_; } + virtual bool ShouldLockScreenBeforeSuspending() const OVERRIDE { + return false; + } + virtual void LockScreen() OVERRIDE { + shell::CreateLockScreen(); + screen_locked_ = true; + Shell::GetInstance()->UpdateShelfVisibility(); + } + virtual void UnlockScreen() OVERRIDE { + screen_locked_ = false; + Shell::GetInstance()->UpdateShelfVisibility(); + } + virtual bool IsUserSessionBlocked() const OVERRIDE { + return !IsActiveUserSessionStarted() || IsScreenLocked(); + } + virtual SessionState GetSessionState() const OVERRIDE { + // Assume that if session is not active we're at login. + return IsActiveUserSessionStarted() ? SESSION_STATE_ACTIVE + : SESSION_STATE_LOGIN_PRIMARY; + } + virtual const UserInfo* GetUserInfo(MultiProfileIndex index) const OVERRIDE { + return user_info_.get(); + } + virtual const UserInfo* GetUserInfo( + content::BrowserContext* context) const OVERRIDE { + return user_info_.get(); + } + virtual bool ShouldShowAvatar(aura::Window* window) const OVERRIDE { + return !user_info_->GetImage().isNull(); + } + virtual void SwitchActiveUser(const std::string& user_id) OVERRIDE {} + virtual void CycleActiveUser(CycleUser cycle_user) OVERRIDE {} + virtual void AddSessionStateObserver( + ash::SessionStateObserver* observer) OVERRIDE {} + virtual void RemoveSessionStateObserver( + ash::SessionStateObserver* observer) OVERRIDE {} + + private: + bool screen_locked_; + + // A pseudo user info. + scoped_ptr<UserInfo> user_info_; + + DISALLOW_COPY_AND_ASSIGN(SessionStateDelegateImpl); +}; + } // namespace ShellDelegateImpl::ShellDelegateImpl() @@ -149,7 +252,7 @@ ash::UserWallpaperDelegate* ShellDelegateImpl::CreateUserWallpaperDelegate() { } ash::SessionStateDelegate* ShellDelegateImpl::CreateSessionStateDelegate() { - return new SessionStateDelegateStub; + return new SessionStateDelegateImpl; } ash::AccessibilityDelegate* ShellDelegateImpl::CreateAccessibilityDelegate() { |