Home | History | Annotate | Download | only in manifest_handlers
      1 // Copyright 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_UI_OVERRIDES_HANDLER_H_
      6 #define CHROME_COMMON_EXTENSIONS_MANIFEST_HANDLERS_UI_OVERRIDES_HANDLER_H_
      7 
      8 #include "chrome/common/extensions/api/manifest_types.h"
      9 #include "extensions/common/extension.h"
     10 #include "extensions/common/manifest_handler.h"
     11 
     12 namespace extensions {
     13 
     14 class ManifestPermission;
     15 
     16 // UIOverrides is associated with "chrome_ui_overrides" manifest key, and
     17 // represents manifest settings to override aspects of the Chrome user
     18 // interface.
     19 struct UIOverrides : public Extension::ManifestData {
     20   UIOverrides();
     21   virtual ~UIOverrides();
     22 
     23   static const UIOverrides* Get(const Extension* extension);
     24 
     25   static bool RemovesBookmarkButton(const Extension* extension);
     26   static bool RemovesBookmarkShortcut(const Extension* extension);
     27   static bool RemovesBookmarkOpenPagesShortcut(const Extension* extension);
     28 
     29   scoped_ptr<api::manifest_types::ChromeUIOverrides::Bookmarks_ui> bookmarks_ui;
     30 
     31   scoped_ptr<ManifestPermission> manifest_permission;
     32 
     33  private:
     34   DISALLOW_COPY_AND_ASSIGN(UIOverrides);
     35 };
     36 
     37 class UIOverridesHandler : public ManifestHandler {
     38  public:
     39   UIOverridesHandler();
     40   virtual ~UIOverridesHandler();
     41 
     42   virtual bool Parse(Extension* extension, base::string16* error) OVERRIDE;
     43   virtual bool Validate(const Extension* extension,
     44                         std::string* error,
     45                         std::vector<InstallWarning>* warnings) const OVERRIDE;
     46 
     47   virtual ManifestPermission* CreatePermission() OVERRIDE;
     48   virtual ManifestPermission* CreateInitialRequiredPermission(
     49       const Extension* extension) OVERRIDE;
     50 
     51  private:
     52   class ManifestPermissionImpl;
     53 
     54   virtual const std::vector<std::string> Keys() const OVERRIDE;
     55 
     56   DISALLOW_COPY_AND_ASSIGN(UIOverridesHandler);
     57 };
     58 
     59 }  // namespace extensions
     60 #endif  // CHROME_COMMON_EXTENSIONS_MANIFEST_HANDLERS_UI_OVERRIDES_HANDLER_H_
     61