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

Unified Diff: chrome/browser/chromeos/app_mode/kiosk_app_launcher.cc

Issue 14927015: Translate device-local account IDs to user IDs (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Comments addressed. Kiosk apps fixed. Created 7 years, 7 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: chrome/browser/chromeos/app_mode/kiosk_app_launcher.cc
diff --git a/chrome/browser/chromeos/app_mode/kiosk_app_launcher.cc b/chrome/browser/chromeos/app_mode/kiosk_app_launcher.cc
index f5a760a82d62f08af34b4039062e2f560c123ca6..00c279b594cadf8eef3492d0709a60042be5bf35 100644
--- a/chrome/browser/chromeos/app_mode/kiosk_app_launcher.cc
+++ b/chrome/browser/chromeos/app_mode/kiosk_app_launcher.cc
@@ -4,6 +4,8 @@
#include "chrome/browser/chromeos/app_mode/kiosk_app_launcher.h"
+#include <vector>
+
#include "base/chromeos/chromeos_version.h"
#include "base/logging.h"
#include "base/memory/weak_ptr.h"
@@ -12,6 +14,8 @@
#include "chrome/browser/chromeos/login/login_display_host_impl.h"
#include "chrome/browser/chromeos/login/login_utils.h"
#include "chrome/browser/chromeos/login/user_manager.h"
+#include "chrome/browser/chromeos/policy/device_local_account.h"
+#include "chrome/browser/chromeos/settings/cros_settings.h"
#include "chrome/browser/chromeos/ui/app_launch_view.h"
#include "chrome/browser/lifetime/application_lifetime.h"
#include "chromeos/cryptohome/async_method_caller.h"
@@ -26,10 +30,6 @@ namespace chromeos {
namespace {
-std::string GetAppUserNameFromAppId(const std::string& app_id) {
- return app_id + "@" + UserManager::kKioskAppUserDomain;
-}
-
} // namespace
// static
@@ -114,8 +114,20 @@ class KioskAppLauncher::ProfileLoader : public LoginUtils::Delegate {
}
void Start() {
+ const std::vector<policy::DeviceLocalAccount> device_local_accounts =
Mattias Nissler (ping if slow) 2013/05/17 14:29:44 We might better go through KioskAppManager to find
xiyuan 2013/05/17 15:46:52 Let's add a new method to KioskAppManager and move
bartfab (slow) 2013/05/17 16:08:47 Done. I reused the existing KioskAppManager::GetA
+ policy::GetDeviceLocalAccounts(CrosSettings::Get());
+ for (std::vector<policy::DeviceLocalAccount>::const_iterator
+ it = device_local_accounts.begin();
+ it != device_local_accounts.end(); ++it) {
+ if (it->type == policy::DeviceLocalAccount::TYPE_KIOSK_APP &&
+ it->kiosk_app_id == launcher_->app_id_) {
+ user_id_ = it->user_id;
+ break;
+ }
+ }
+
cryptohome::AsyncMethodCaller::GetInstance()->AsyncGetSanitizedUsername(
- GetAppUserNameFromAppId(launcher_->app_id_),
+ user_id_,
base::Bind(&ProfileLoader::OnUsernameHashRetrieved,
base::Unretained(this)));
}
@@ -124,14 +136,14 @@ class KioskAppLauncher::ProfileLoader : public LoginUtils::Delegate {
void OnUsernameHashRetrieved(bool success,
const std::string& username_hash) {
if (!success) {
- LOG(ERROR) << "Unable to retrieve username hash for user '" <<
- GetAppUserNameFromAppId(launcher_->app_id_) << "'";
+ LOG(ERROR) << "Unable to retrieve username hash for user '" << user_id_
+ << "'.";
xiyuan 2013/05/17 15:46:52 nit: think "'" is more correct since we have an op
bartfab (slow) 2013/05/17 16:08:47 It is a single quote already - this is probably ha
launcher_->ReportLaunchResult(
KioskAppLaunchError::UNABLE_TO_RETRIEVE_HASH);
return;
}
LoginUtils::Get()->PrepareProfile(
- UserContext(GetAppUserNameFromAppId(launcher_->app_id_),
+ UserContext(user_id_,
std::string(), // password
std::string(), // auth_code
username_hash),
@@ -147,6 +159,8 @@ class KioskAppLauncher::ProfileLoader : public LoginUtils::Delegate {
}
KioskAppLauncher* launcher_;
+ std::string user_id_;
+
DISALLOW_COPY_AND_ASSIGN(ProfileLoader);
};

Powered by Google App Engine
This is Rietveld 408576698