| // Copyright (c) 2011 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_CUSTOMIZATION_DOCUMENT_H_ |
| #define CHROME_BROWSER_CHROMEOS_CUSTOMIZATION_DOCUMENT_H_ |
| #pragma once |
| |
| #include <string> |
| |
| #include "base/file_path.h" |
| #include "base/memory/scoped_ptr.h" |
| #include "base/values.h" |
| |
| class DictionaryValue; |
| class ListValue; |
| |
| namespace chromeos { |
| |
| // Base class for OEM customization document classes. |
| class CustomizationDocument { |
| public: |
| CustomizationDocument() {} |
| virtual ~CustomizationDocument() {} |
| |
| virtual bool LoadManifestFromFile(const FilePath& manifest_path); |
| virtual bool LoadManifestFromString(const std::string& manifest); |
| |
| protected: |
| std::string GetLocaleSpecificString(const std::string& locale, |
| const std::string& dictionary_name, |
| const std::string& entry_name) const; |
| |
| scoped_ptr<DictionaryValue> root_; |
| |
| private: |
| DISALLOW_COPY_AND_ASSIGN(CustomizationDocument); |
| }; |
| |
| // OEM startup customization document class. |
| class StartupCustomizationDocument : public CustomizationDocument { |
| public: |
| StartupCustomizationDocument() {} |
| |
| virtual bool LoadManifestFromString(const std::string& manifest); |
| |
| const std::string& initial_locale() const { return initial_locale_; } |
| const std::string& initial_timezone() const { return initial_timezone_; } |
| const std::string& keyboard_layout() const { return keyboard_layout_; } |
| const std::string& registration_url() const { return registration_url_; } |
| |
| std::string GetHelpPage(const std::string& locale) const; |
| std::string GetEULAPage(const std::string& locale) const; |
| |
| // Returns HWID for the machine. Declared as virtual to override in tests. |
| virtual std::string GetHWID() const; |
| |
| private: |
| typedef std::map<std::string, std::string> VPDMap; |
| |
| // Returns VPD as string. Declared as virtual to override in tests. |
| virtual std::string GetVPD() const; |
| |
| // Parse VPD file as string and initialize |vpd_map|. |
| bool ParseVPD(const std::string& vpd_string, VPDMap* vpd_map); |
| |
| // If |attr| exists in |vpd_map|, assign it value to |value|; |
| void InitFromVPD(const VPDMap& vpd_map, const char* attr, std::string* value); |
| |
| std::string initial_locale_; |
| std::string initial_timezone_; |
| std::string keyboard_layout_; |
| std::string registration_url_; |
| |
| DISALLOW_COPY_AND_ASSIGN(StartupCustomizationDocument); |
| }; |
| |
| // OEM services customization document class. |
| class ServicesCustomizationDocument : public CustomizationDocument { |
| public: |
| ServicesCustomizationDocument() {} |
| |
| std::string GetInitialStartPage(const std::string& locale) const; |
| std::string GetSupportPage(const std::string& locale) const; |
| |
| private: |
| DISALLOW_COPY_AND_ASSIGN(ServicesCustomizationDocument); |
| }; |
| |
| } // namespace chromeos |
| |
| #endif // CHROME_BROWSER_CHROMEOS_CUSTOMIZATION_DOCUMENT_H_ |