summaryrefslogtreecommitdiffstats
path: root/chrome/browser/chromeos
diff options
context:
space:
mode:
authorzelidrag@chromium.org <zelidrag@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-09 00:43:10 +0000
committerzelidrag@chromium.org <zelidrag@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-09 00:43:10 +0000
commit4333f21ceae038eb3a0756c9b83b57672d84e7c6 (patch)
tree358c479bd23d9b639bd3545c57a6c98e940d0ac6 /chrome/browser/chromeos
parentf18e74688fbc5215295841815c2c7c895e4ac7cd (diff)
downloadchromium_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.cc4
-rw-r--r--chrome/browser/chromeos/login/fake_user_manager.cc26
-rw-r--r--chrome/browser/chromeos/login/fake_user_manager.h10
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_;