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 CHROME_COMMON_EXTENSIONS_MANIFEST_HANDLERS_THEME_HANDLER_H_ 6 #define CHROME_COMMON_EXTENSIONS_MANIFEST_HANDLERS_THEME_HANDLER_H_ 7 8 #include "extensions/common/extension.h" 9 #include "extensions/common/manifest_handler.h" 10 11 namespace base { 12 class DictionaryValue; 13 } 14 15 namespace extensions { 16 17 // A structure to hold the parsed theme data. 18 struct ThemeInfo : public Extension::ManifestData { 19 // Define out of line constructor/destructor to please Clang. 20 ThemeInfo(); 21 virtual ~ThemeInfo(); 22 23 static const base::DictionaryValue* GetImages(const Extension* extension); 24 static const base::DictionaryValue* GetColors(const Extension* extension); 25 static const base::DictionaryValue* GetTints(const Extension* extension); 26 static const base::DictionaryValue* GetDisplayProperties( 27 const Extension* extension); 28 29 // A map of resource id's to relative file paths. 30 scoped_ptr<base::DictionaryValue> theme_images_; 31 32 // A map of color names to colors. 33 scoped_ptr<base::DictionaryValue> theme_colors_; 34 35 // A map of color names to colors. 36 scoped_ptr<base::DictionaryValue> theme_tints_; 37 38 // A map of display properties. 39 scoped_ptr<base::DictionaryValue> theme_display_properties_; 40 }; 41 42 // Parses the "theme" manifest key. 43 class ThemeHandler : public ManifestHandler { 44 public: 45 ThemeHandler(); 46 virtual ~ThemeHandler(); 47 48 virtual bool Parse(Extension* extension, base::string16* error) OVERRIDE; 49 virtual bool Validate(const Extension* extension, 50 std::string* error, 51 std::vector<InstallWarning>* warnings) const OVERRIDE; 52 53 private: 54 virtual const std::vector<std::string> Keys() const OVERRIDE; 55 56 DISALLOW_COPY_AND_ASSIGN(ThemeHandler); 57 }; 58 59 } // namespace extensions 60 61 #endif // CHROME_COMMON_EXTENSIONS_MANIFEST_HANDLERS_THEME_HANDLER_H_ 62