From 4333f21ceae038eb3a0756c9b83b57672d84e7c6 Mon Sep 17 00:00:00 2001 From: "zelidrag@chromium.org" Date: Wed, 9 Oct 2013 00:43:10 +0000 Subject: 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 --- .../chromeos/app_mode/startup_app_launcher.cc | 4 ++-- chrome/browser/chromeos/login/fake_user_manager.cc | 26 ++++++++++++++++------ chrome/browser/chromeos/login/fake_user_manager.h | 10 +++++++-- 3 files changed, 29 insertions(+), 11 deletions(-) (limited to 'chrome/browser/chromeos') 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_; -- cgit v1.1