Chromium Code Reviews| 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..b0ff3ce9a8aca7dc6418554c1c503550c63a8245 100644 |
| --- a/chrome/browser/chromeos/app_mode/kiosk_app_launcher.cc |
| +++ b/chrome/browser/chromeos/app_mode/kiosk_app_launcher.cc |
| @@ -8,10 +8,12 @@ |
| #include "base/logging.h" |
| #include "base/memory/weak_ptr.h" |
| #include "base/message_loop.h" |
| +#include "chrome/browser/chromeos/app_mode/kiosk_app_manager.h" |
| #include "chrome/browser/chromeos/app_mode/startup_app_launcher.h" |
| #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/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 +28,6 @@ namespace chromeos { |
| namespace { |
| -std::string GetAppUserNameFromAppId(const std::string& app_id) { |
| - return app_id + "@" + UserManager::kKioskAppUserDomain; |
| -} |
| - |
| } // namespace |
|
Joao da Silva
2013/05/17 18:10:55
nit: The empty namespace { } can be removed
bartfab (slow)
2013/05/21 13:27:07
Done.
|
| // static |
| @@ -105,8 +103,13 @@ class KioskAppLauncher::CryptohomedChecker |
| class KioskAppLauncher::ProfileLoader : public LoginUtils::Delegate { |
| public: |
| - explicit ProfileLoader(KioskAppLauncher* launcher) |
| - : launcher_(launcher) { |
| + ProfileLoader(KioskAppManager* kiosk_app_manager, |
| + KioskAppLauncher* kiosk_app_launcher) |
| + : kiosk_app_launcher_(kiosk_app_launcher) { |
| + KioskAppManager::App app; |
| + if (!kiosk_app_manager->GetApp(kiosk_app_launcher->app_id_, &app)) |
| + NOTREACHED() << "Logging into nonexistent kiosk-app account."; |
| + user_id_ = app.user_id; |
| } |
| virtual ~ProfileLoader() { |
| @@ -115,7 +118,7 @@ class KioskAppLauncher::ProfileLoader : public LoginUtils::Delegate { |
| void Start() { |
| cryptohome::AsyncMethodCaller::GetInstance()->AsyncGetSanitizedUsername( |
| - GetAppUserNameFromAppId(launcher_->app_id_), |
| + user_id_, |
| base::Bind(&ProfileLoader::OnUsernameHashRetrieved, |
| base::Unretained(this))); |
| } |
| @@ -124,14 +127,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_) << "'"; |
| - launcher_->ReportLaunchResult( |
| + LOG(ERROR) << "Unable to retrieve username hash for user '" << user_id_ |
| + << "'."; |
| + kiosk_app_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), |
| @@ -143,18 +146,22 @@ class KioskAppLauncher::ProfileLoader : public LoginUtils::Delegate { |
| // LoginUtils::Delegate overrides: |
| virtual void OnProfilePrepared(Profile* profile) OVERRIDE { |
| - launcher_->OnProfilePrepared(profile); |
| + kiosk_app_launcher_->OnProfilePrepared(profile); |
| } |
| - KioskAppLauncher* launcher_; |
| + KioskAppLauncher* kiosk_app_launcher_; |
| + std::string user_id_; |
| + |
| DISALLOW_COPY_AND_ASSIGN(ProfileLoader); |
| }; |
| //////////////////////////////////////////////////////////////////////////////// |
| // KioskAppLauncher |
| -KioskAppLauncher::KioskAppLauncher(const std::string& app_id) |
| - : app_id_(app_id), |
| +KioskAppLauncher::KioskAppLauncher(KioskAppManager* kiosk_app_manager, |
| + const std::string& app_id) |
| + : kiosk_app_manager_(kiosk_app_manager), |
| + app_id_(app_id), |
| remove_attempted_(false) { |
| } |
| @@ -210,7 +217,7 @@ void KioskAppLauncher::StartMount() { |
| void KioskAppLauncher::MountCallback(bool mount_success, |
| cryptohome::MountError mount_error) { |
| if (mount_success) { |
| - profile_loader_.reset(new ProfileLoader(this)); |
| + profile_loader_.reset(new ProfileLoader(kiosk_app_manager_, this)); |
| profile_loader_->Start(); |
| return; |
| } |