diff options
Diffstat (limited to 'chromium/extensions/renderer/dispatcher_delegate.h')
-rw-r--r-- | chromium/extensions/renderer/dispatcher_delegate.h | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/chromium/extensions/renderer/dispatcher_delegate.h b/chromium/extensions/renderer/dispatcher_delegate.h new file mode 100644 index 00000000000..f00c357b7ef --- /dev/null +++ b/chromium/extensions/renderer/dispatcher_delegate.h @@ -0,0 +1,59 @@ +// 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 EXTENSIONS_RENDERER_DISPATCHER_DELEGATE_H_ +#define EXTENSIONS_RENDERER_DISPATCHER_DELEGATE_H_ + +#include <set> +#include <string> + +namespace blink { +class WebFrame; +} + +namespace extensions { +class Dispatcher; +class Extension; +class ModuleSystem; +class ResourceBundleSourceMap; +class ScriptContext; +class URLPatternSet; + +// Base class and default implementation for an extensions::Dispacher delegate. +// DispatcherDelegate can be used to override and extend the behavior of the +// extensions system's renderer side. +class DispatcherDelegate { + public: + virtual ~DispatcherDelegate() {} + + // Initializes origin permissions for a newly created extension context. + virtual void InitOriginPermissions(const Extension* extension, + bool is_extension_active) {} + + // Includes additional native handlers in a ScriptContext's ModuleSystem. + virtual void RegisterNativeHandlers(Dispatcher* dispatcher, + ModuleSystem* module_system, + ScriptContext* context) {} + + // Includes additional source resources into the resource map. + virtual void PopulateSourceMap(ResourceBundleSourceMap* source_map) {} + + // Requires additional modules within an extension context's module system. + virtual void RequireAdditionalModules(ScriptContext* context, + bool is_within_platform_app) {} + + // Allows the delegate to respond to an updated set of active extensions in + // the Dispatcher. + virtual void OnActiveExtensionsUpdated( + const std::set<std::string>& extension_ids) {} + + // Sets the current Chrome channel. + // TODO(rockot): This doesn't belong in a generic extensions system interface. + // See http://crbug.com/368431. + virtual void SetChannel(int channel) {} +}; + +} // namespace extensions + +#endif // EXTENSIONS_RENDERER_DISPATCHER_DELEGATE_H_ |