settings_overrides_handler.h revision f2477e01787aa58f445919b809d89e252beef54f
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_SETTINGS_OVERRIDES_HANDLER_H_ 6#define CHROME_COMMON_EXTENSIONS_MANIFEST_HANDLERS_SETTINGS_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 12namespace extensions { 13 14// SettingsOverride is associated with "chrome_settings_overrides" manifest key. 15// An extension can add a search engine as default or non-default, overwrite the 16// homepage and append a startup page to the list. 17struct SettingsOverrides : public Extension::ManifestData { 18 SettingsOverrides(); 19 virtual ~SettingsOverrides(); 20 21 static const SettingsOverrides* Get(const Extension* extension); 22 23 scoped_ptr<api::manifest_types::ChromeSettingsOverrides::Search_provider> 24 search_engine; 25 scoped_ptr<GURL> homepage; 26 std::vector<GURL> startup_pages; 27 28 private: 29 DISALLOW_COPY_AND_ASSIGN(SettingsOverrides); 30}; 31 32class SettingsOverridesHandler : public ManifestHandler { 33 public: 34 SettingsOverridesHandler(); 35 virtual ~SettingsOverridesHandler(); 36 37 virtual bool Parse(Extension* extension, string16* error) OVERRIDE; 38 39 private: 40 virtual const std::vector<std::string> Keys() const OVERRIDE; 41 42 DISALLOW_COPY_AND_ASSIGN(SettingsOverridesHandler); 43}; 44 45} // namespace extensions 46#endif // CHROME_COMMON_EXTENSIONS_MANIFEST_HANDLERS_SETTINGS_OVERRIDES_HANDLER_H_ 47