summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/extension_system_impl.h
diff options
context:
space:
mode:
authormarkdittmer@chromium.org <markdittmer@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-08-15 19:15:26 +0000
committermarkdittmer@chromium.org <markdittmer@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-08-15 19:17:03 +0000
commit15ad2ee53e139d49694c596e7be71bd6e9254ca0 (patch)
treec0310fb0f226530b4312e4a3811a21dd7856b9b8 /chrome/browser/extensions/extension_system_impl.h
parente120b01ad8f20b40579eb0a5b43c17fc9d0698d5 (diff)
downloadchromium_src-15ad2ee53e139d49694c596e7be71bd6e9254ca0.zip
chromium_src-15ad2ee53e139d49694c596e7be71bd6e9254ca0.tar.gz
chromium_src-15ad2ee53e139d49694c596e7be71bd6e9254ca0.tar.bz2
Declarative content scripts: Browser-side: per-extension shared memory regions (lazily loaded)
BUG=377978 Review URL: https://codereview.chromium.org/420543002 Cr-Commit-Position: refs/heads/master@{#289969} git-svn-id: svn://svn.chromium.org/chrome/trunk/src@289969 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/extension_system_impl.h')
-rw-r--r--chrome/browser/extensions/extension_system_impl.h23
1 files changed, 20 insertions, 3 deletions
diff --git a/chrome/browser/extensions/extension_system_impl.h b/chrome/browser/extensions/extension_system_impl.h
index df32495..2f1eddc 100644
--- a/chrome/browser/extensions/extension_system_impl.h
+++ b/chrome/browser/extensions/extension_system_impl.h
@@ -5,6 +5,7 @@
#ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_SYSTEM_IMPL_H_
#define CHROME_BROWSER_EXTENSIONS_EXTENSION_SYSTEM_IMPL_H_
+#include "base/memory/scoped_vector.h"
#include "extensions/browser/extension_system.h"
#include "extensions/common/one_shot_event.h"
@@ -13,9 +14,11 @@ class Profile;
namespace extensions {
class ContentVerifier;
+class DeclarativeUserScriptMaster;
class ExtensionSystemSharedFactory;
class ExtensionWarningBadgeService;
class NavigationObserver;
+class SharedUserScriptMaster;
class StandardManagementPolicyProvider;
class StateStoreNotificationObserver;
@@ -37,7 +40,8 @@ class ExtensionSystemImpl : public ExtensionSystem {
virtual ExtensionService* extension_service() OVERRIDE; // shared
virtual RuntimeData* runtime_data() OVERRIDE; // shared
virtual ManagementPolicy* management_policy() OVERRIDE; // shared
- virtual UserScriptMaster* user_script_master() OVERRIDE; // shared
+ // shared
+ virtual SharedUserScriptMaster* shared_user_script_master() OVERRIDE;
virtual ProcessManager* process_manager() OVERRIDE;
virtual StateStore* state_store() OVERRIDE; // shared
virtual StateStore* rules_store() OVERRIDE; // shared
@@ -63,6 +67,10 @@ class ExtensionSystemImpl : public ExtensionSystem {
virtual scoped_ptr<ExtensionSet> GetDependentExtensions(
const Extension* extension) OVERRIDE;
+ virtual DeclarativeUserScriptMaster*
+ GetDeclarativeUserScriptMasterByExtension(
+ const ExtensionId& extension_id) OVERRIDE; // shared
+
private:
friend class ExtensionSystemSharedFactory;
@@ -87,7 +95,7 @@ class ExtensionSystemImpl : public ExtensionSystem {
ExtensionService* extension_service();
RuntimeData* runtime_data();
ManagementPolicy* management_policy();
- UserScriptMaster* user_script_master();
+ SharedUserScriptMaster* shared_user_script_master();
Blacklist* blacklist();
InfoMap* info_map();
LazyBackgroundTaskQueue* lazy_background_task_queue();
@@ -99,6 +107,9 @@ class ExtensionSystemImpl : public ExtensionSystem {
const OneShotEvent& ready() const { return ready_; }
ContentVerifier* content_verifier();
+ DeclarativeUserScriptMaster* GetDeclarativeUserScriptMasterByExtension(
+ const ExtensionId& extension_id);
+
private:
Profile* profile_;
@@ -113,7 +124,13 @@ class ExtensionSystemImpl : public ExtensionSystem {
scoped_ptr<LazyBackgroundTaskQueue> lazy_background_task_queue_;
scoped_ptr<EventRouter> event_router_;
scoped_ptr<NavigationObserver> navigation_observer_;
- scoped_ptr<UserScriptMaster> user_script_master_;
+ // Shared memory region manager for scripts statically declared in extension
+ // manifests. This region is shared between all extensions.
+ scoped_ptr<SharedUserScriptMaster> shared_user_script_master_;
+ // Shared memory region manager for programmatically declared scripts, one
+ // per extension. Managers are instantiated the first time the declarative
+ // API is used by an extension to request content scripts.
+ ScopedVector<DeclarativeUserScriptMaster> declarative_user_script_masters_;
scoped_ptr<Blacklist> blacklist_;
// StandardManagementPolicyProvider depends on Blacklist.
scoped_ptr<StandardManagementPolicyProvider>