1// Copyright (c) 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CHROMEOS_APP_MODE_KIOSK_OEM_MANIFEST_PARSER_H_
6#define CHROMEOS_APP_MODE_KIOSK_OEM_MANIFEST_PARSER_H_
7
8#include <string>
9
10#include "base/files/file_path.h"
11#include "chromeos/chromeos_export.h"
12
13namespace chromeos {
14
15// Parser for app kiosk OEM manifest files.
16class CHROMEOS_EXPORT KioskOemManifestParser {
17 public:
18  // Kiosk OEM manifest.
19  struct Manifest {
20    Manifest();
21
22    // True if OOBE flow should enforce enterprise enrollment.
23    bool enterprise_managed;
24    // True user can exit enterprise enrollment during OOBE.
25    bool can_exit_enrollment;
26    // Intended purpose of the device. Meant to be pass-through value for
27    // enterprise enrollment.
28    std::string device_requisition;
29    // True if OOBE flow should be adapted for keyboard flow.
30    bool keyboard_driven_oobe;
31  };
32
33  // Loads manifest from |kiosk_oem_file|. Returns true if manifest was
34  // found and successfully parsed.
35  static bool Load(const base::FilePath& kiosk_oem_file,
36                   Manifest* manifest);
37
38 private:
39  DISALLOW_IMPLICIT_CONSTRUCTORS(KioskOemManifestParser);
40};
41
42}  // namespace chromeos
43
44#endif  // CHROMEOS_APP_MODE_KIOSK_OEM_MANIFEST_PARSER_H_
45