Chromium Code Reviews| Index: chrome/browser/extensions/extension_management_internal.h |
| diff --git a/chrome/browser/extensions/extension_management_internal.h b/chrome/browser/extensions/extension_management_internal.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..26235eed081e884d7bdb5ce6dae7b077b378fbf2 |
| --- /dev/null |
| +++ b/chrome/browser/extensions/extension_management_internal.h |
| @@ -0,0 +1,80 @@ |
| +// Copyright 2014 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_EXTENSIONS_EXTENSION_MANAGEMENT_INTERNAL_H_ |
| +#define CHROME_BROWSER_EXTENSIONS_EXTENSION_MANAGEMENT_INTERNAL_H_ |
| + |
| +#include <string> |
| +#include <vector> |
| + |
| +#include "chrome/browser/extensions/extension_management.h" |
| +#include "extensions/common/manifest.h" |
| + |
| +namespace base { |
| +class DictionaryValue; |
| +} // namespace base |
| + |
| +namespace extensions { |
| + |
| +class URLPatternSet; |
| + |
| +namespace internal { |
|
Joao da Silva
2014/09/25 08:53:51
The names in this file are specific to the Extensi
binjin
2014/09/25 13:19:19
I moved Scope Into IndividualSettings instead. "ex
|
| + |
| +enum Scope { |
| + // Parses the default settings. |
| + SCOPE_DEFAULT = 0, |
| + // Parses the settings for an extension with specified extension ID. |
| + SCOPE_INDIVIDUAL, |
| +}; |
| + |
| +// Class to hold extension management settings for one or a group of |
| +// extensions. Settings can be applied to an individual extension identified |
| +// by an ID, a group of extensions with specific |update_url| or all |
| +// extensions at once. |
| +struct IndividualSettings { |
| + IndividualSettings(); |
| + ~IndividualSettings(); |
| + |
| + void Reset(); |
| + |
| + // Parses the individual settings. |dict| is the a sub-dictionary in extension |
| + // management preference and |scope| represents the applicable range of the |
| + // settings, a single extension, a group of extensions or default settings. |
| + // Note that in case of parsing errors, |this| will NOT be left untouched. |
| + bool Parse(const base::DictionaryValue* dict, Scope scope); |
| + |
| + // Extension installation mode. Setting this to INSTALLATION_FORCED or |
| + // INSTALLATION_RECOMMENDED will enable extension auto-loading (only |
| + // applicable to single extension), and in this case the |update_url| must |
| + // be specified, containing the update URL for this extension. |
| + // Note that |update_url| will be ignored for INSTALLATION_ALLOWED and |
| + // INSTALLATION_BLOCKED installation mode. |
| + // These settings will override the default settings, and unspecified |
| + // settings will take value from default settings. |
| + ExtensionManagement::InstallationMode installation_mode; |
| + std::string update_url; |
| +}; |
|
Joao da Silva
2014/09/25 08:53:51
DISALLOW_COPY_AND_ASSIGN
binjin
2014/09/25 13:19:19
Done. I actually explicitly used copy constructor
|
| + |
| +// Global extension management settings, applicable to all extensions. |
| +struct GlobalSettings { |
| + GlobalSettings(); |
| + ~GlobalSettings(); |
| + |
| + void Reset(); |
| + |
| + // Settings specifying which URLs are allowed to install extensions, will be |
| + // enforced only if |has_restricted_install_sources| is set to true. |
| + URLPatternSet install_sources; |
| + bool has_restricted_install_sources; |
| + |
| + // Settings specifying all allowed app/extension types, will be enforced |
| + // only of |has_restricted_allowed_types| is set to true. |
| + std::vector<Manifest::Type> allowed_types; |
| + bool has_restricted_allowed_types; |
| +}; |
|
Joao da Silva
2014/09/25 08:53:51
DISALLOW_COPY_AND_ASSIGN
binjin
2014/09/25 13:19:19
Done.
|
| + |
| +} // namespace internal |
| + |
| +} // namespace extensions |
| + |
| +#endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_MANAGEMENT_INTERNAL_H_ |