// Copyright 2014 The Chromium Authors // 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 <memory> #include <optional> #include <string> #include <vector> #include "base/values.h" #include "chrome/browser/extensions/extension_management.h" #include "extensions/common/manifest.h" #include "extensions/common/permissions/api_permission_set.h" namespace base { class Version; } // namespace base namespace extensions { class URLPatternSet; namespace internal { // 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. // The settings applied to all extensions are the default settings and can be // overridden by per-extension or per-update-url settings. // There are multiple fields in this class. Unspecified fields in per-extension // and per-update-url settings will take the default fallback value, and do not // inherit from default settings. // Since update URL is not directly associated to extension ID, per-extension // and per-update-url settings might be enforced at the same time, see per-field // comments below for details. // Some features do not support per-update-url setttings. struct IndividualSettings { … }; // Global extension management settings, applicable to all extensions. struct GlobalSettings { … }; } // namespace internal } // namespace extensions #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_MANAGEMENT_INTERNAL_H_