Home | History | Annotate | Download | only in manifest_handlers
      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