blob: 014758274e8322f23977f7b6e4d8230a09d500c5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_CHROMEOS_APP_MODE_KIOSK_PROFILE_LOADER_H_
#define CHROME_BROWSER_CHROMEOS_APP_MODE_KIOSK_PROFILE_LOADER_H_
#include <string>
#include "base/basictypes.h"
#include "base/callback.h"
#include "base/memory/scoped_ptr.h"
#include "chrome/browser/chromeos/app_mode/kiosk_app_launch_error.h"
#include "chrome/browser/chromeos/login/auth/login_performer.h"
#include "chrome/browser/chromeos/login/login_utils.h"
class Profile;
namespace chromeos {
// KioskProfileLoader loads a special profile for a given app. It first
// attempts to login for the app's generated user id. If the login is
// successful, it prepares app profile then calls the delegate.
class KioskProfileLoader : public LoginPerformer::Delegate,
public LoginUtils::Delegate {
public:
class Delegate {
public:
virtual void OnProfileLoaded(Profile* profile) = 0;
virtual void OnProfileLoadFailed(KioskAppLaunchError::Error error) = 0;
protected:
virtual ~Delegate() {}
};
KioskProfileLoader(const std::string& app_user_id,
bool use_guest_mount,
Delegate* delegate);
virtual ~KioskProfileLoader();
// Starts profile load. Calls delegate on success or failure.
void Start();
private:
class CryptohomedChecker;
void LoginAsKioskAccount();
void ReportLaunchResult(KioskAppLaunchError::Error error);
// LoginPerformer::Delegate overrides
virtual void OnAuthSuccess(const UserContext& user_context) OVERRIDE;
virtual void OnAuthFailure(const AuthFailure& error) OVERRIDE;
virtual void WhiteListCheckFailed(const std::string& email) OVERRIDE;
virtual void PolicyLoadFailed() OVERRIDE;
virtual void OnOnlineChecked(
const std::string& email, bool success) OVERRIDE;
// LoginUtils::Delegate implementation:
virtual void OnProfilePrepared(Profile* profile) OVERRIDE;
std::string user_id_;
bool use_guest_mount_;
Delegate* delegate_;
scoped_ptr<CryptohomedChecker> cryptohomed_checker_;
scoped_ptr<LoginPerformer> login_performer_;
DISALLOW_COPY_AND_ASSIGN(KioskProfileLoader);
};
} // namespace chromeos
#endif // CHROME_BROWSER_CHROMEOS_APP_MODE_KIOSK_PROFILE_LOADER_H_
|