summaryrefslogtreecommitdiffstats
path: root/extensions/common/extensions_client.h
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/common/extensions_client.h')
-rw-r--r--extensions/common/extensions_client.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/extensions/common/extensions_client.h b/extensions/common/extensions_client.h
index 83550a9..eb3ebfe 100644
--- a/extensions/common/extensions_client.h
+++ b/extensions/common/extensions_client.h
@@ -5,12 +5,15 @@
#ifndef EXTENSIONS_COMMON_EXTENSIONS_CLIENT_H_
#define EXTENSIONS_COMMON_EXTENSIONS_CLIENT_H_
+#include <set>
#include <string>
namespace extensions {
class FeatureProvider;
+class PermissionMessage;
class PermissionsProvider;
+class URLPatternSet;
// Sets up global state for the extensions system. Should be Set() once in each
// process. This should be implemented by the client of the extensions system.
@@ -26,6 +29,14 @@ class ExtensionsClient {
// Called at startup. Registers the handlers for parsing manifests.
virtual void RegisterManifestHandlers() const = 0;
+ // Takes the list of all hosts and filters out those with special
+ // permission strings. Adds the regular hosts to |new_hosts|,
+ // and adds the special permission messages to |messages|.
+ virtual void FilterHostPermissions(
+ const URLPatternSet& hosts,
+ URLPatternSet* new_hosts,
+ std::set<PermissionMessage>* messages) const = 0;
+
// Return the extensions client.
static ExtensionsClient* Get();