diff options
author | zelidrag@chromium.org <zelidrag@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-09 00:43:10 +0000 |
---|---|---|
committer | zelidrag@chromium.org <zelidrag@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-09 00:43:10 +0000 |
commit | 4333f21ceae038eb3a0756c9b83b57672d84e7c6 (patch) | |
tree | 358c479bd23d9b639bd3545c57a6c98e940d0ac6 /chrome/browser/chromeos | |
parent | f18e74688fbc5215295841815c2c7c895e4ac7cd (diff) | |
download | chromium_src-4333f21ceae038eb3a0756c9b83b57672d84e7c6.zip chromium_src-4333f21ceae038eb3a0756c9b83b57672d84e7c6.tar.gz chromium_src-4333f21ceae038eb3a0756c9b83b57672d84e7c6.tar.bz2 |
Merge 225400 "Add "kiosk_only" manifest attribute for platform a..."
> Add "kiosk_only" manifest attribute for platform apps.
>
> This top-level manifest attribute enforces that the app can only be installed and run in ChromeOS kiosk mode.
>
> BUG=284964
> TEST=added new tests
>
> Review URL: https://codereview.chromium.org/23604068
TBR=tengs@chromium.org
Review URL: https://codereview.chromium.org/26227005
git-svn-id: svn://svn.chromium.org/chrome/branches/1650/src@227636 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/chromeos')
-rw-r--r-- | chrome/browser/chromeos/app_mode/startup_app_launcher.cc | 4 | ||||
-rw-r--r-- | chrome/browser/chromeos/login/fake_user_manager.cc | 26 | ||||
-rw-r--r-- | chrome/browser/chromeos/login/fake_user_manager.h | 10 |
3 files changed, 29 insertions, 11 deletions
diff --git a/chrome/browser/chromeos/app_mode/startup_app_launcher.cc b/chrome/browser/chromeos/app_mode/startup_app_launcher.cc index 319e9aa..1a6444c 100644 --- a/chrome/browser/chromeos/app_mode/startup_app_launcher.cc +++ b/chrome/browser/chromeos/app_mode/startup_app_launcher.cc @@ -26,7 +26,7 @@ #include "chrome/common/chrome_paths.h" #include "chrome/common/chrome_switches.h" #include "chrome/common/extensions/extension.h" -#include "chrome/common/extensions/manifest_handlers/kiosk_enabled_info.h" +#include "chrome/common/extensions/manifest_handlers/kiosk_mode_info.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/notification_service.h" #include "google_apis/gaia/gaia_auth_consumer.h" @@ -222,7 +222,7 @@ void StartupAppLauncher::LaunchApp() { extension_service()->GetInstalledExtension(app_id_); CHECK(extension); - if (!extensions::KioskEnabledInfo::IsKioskEnabled(extension)) { + if (!extensions::KioskModeInfo::IsKioskEnabled(extension)) { OnLaunchFailure(KioskAppLaunchError::NOT_KIOSK_ENABLED); return; } diff --git a/chrome/browser/chromeos/login/fake_user_manager.cc b/chrome/browser/chromeos/login/fake_user_manager.cc index 7539d72..b6b311f 100644 --- a/chrome/browser/chromeos/login/fake_user_manager.cc +++ b/chrome/browser/chromeos/login/fake_user_manager.cc @@ -30,6 +30,12 @@ void FakeUserManager::AddUser(const std::string& email) { user_list_.push_back(user); } +void FakeUserManager::AddKioskAppUser(const std::string& kiosk_app_username) { + User* user = User::CreateKioskAppUser(kiosk_app_username); + user->set_username_hash(kiosk_app_username + kUserIdHashSuffix); + user_list_.push_back(user); +} + void FakeUserManager::LoginUser(const std::string& email) { UserLoggedIn(email, email + kUserIdHashSuffix, false); } @@ -70,15 +76,18 @@ void FakeUserManager::UserLoggedIn(const std::string& email, } } +User* FakeUserManager::GetActiveUserInternal() const { + if (user_list_.size()) + return user_list_[0]; + return NULL; +} + const User* FakeUserManager::GetActiveUser() const { - return GetActiveUser(); + return GetActiveUserInternal(); } User* FakeUserManager::GetActiveUser() { - // Just return the first user. - if (user_list_.size()) - return user_list_[0]; - return NULL; + return GetActiveUserInternal(); } void FakeUserManager::SaveUserDisplayName( @@ -198,7 +207,7 @@ bool FakeUserManager::CanCurrentUserLock() const { } bool FakeUserManager::IsUserLoggedIn() const { - return true; + return logged_in_users_.size() > 0; } bool FakeUserManager::IsLoggedInAsRegularUser() const { @@ -222,7 +231,10 @@ bool FakeUserManager::IsLoggedInAsLocallyManagedUser() const { } bool FakeUserManager::IsLoggedInAsKioskApp() const { - return false; + const User* active_user = GetActiveUser(); + return active_user ? + active_user->GetType() == User::USER_TYPE_KIOSK_APP : + false; } bool FakeUserManager::IsLoggedInAsStub() const { diff --git a/chrome/browser/chromeos/login/fake_user_manager.h b/chrome/browser/chromeos/login/fake_user_manager.h index 850a4f4..c7ca185 100644 --- a/chrome/browser/chromeos/login/fake_user_manager.h +++ b/chrome/browser/chromeos/login/fake_user_manager.h @@ -24,8 +24,11 @@ class FakeUserManager : public UserManager { // Create and add a new user. void AddUser(const std::string& email); - // Calculates the user name hash and calls UserLoggedIn to login a user. - void LoginUser(const std::string& email); + // Create and add a kiosk app user. + void AddKioskAppUser(const std::string& kiosk_app_username); + + // Calculates the user name hash and calls UserLoggedIn to login a user. + void LoginUser(const std::string& email); // UserManager overrides. virtual const UserList& GetUsers() const OVERRIDE; @@ -134,6 +137,9 @@ class FakeUserManager : public UserManager { } private: + // We use this internal function for const-correctness. + User* GetActiveUserInternal() const; + UserList user_list_; UserList logged_in_users_; std::string owner_email_; |