This CL introduce DeclarativeUserScriptManager to manager a set of DeclarativeUserScriptMaster objects which were stored in the ExtensionSystemImpl.
With this refactor, it allows the DeclarativeUserScriptManager to take care of the creations of DeclarativeUserScriptMaster objects:
1) It enable the DeclarativeUserScriptManager accept all kinds of input keys and convert them as a uniform format;
2) The manager will assign a unique ID to the consumer who requests a DeclarativeUserScriptMaster object.The consumer can use this ID to do script injection.
(The above two steps will be implemented in another CLs)
This refactor is a part of issue "support DeclarativeContent script injection on <webview>", please refer to a design doc(https://goto.google.com/introduceidforscriptinjection).
BUG=437566
Review URL: https://codereview.chromium.org/796453003
Cr-Commit-Position: refs/heads/master@{#308171}
diff --git a/chrome/browser/extensions/extension_system_impl.cc b/chrome/browser/extensions/extension_system_impl.cc
index 05931aa..3886676 100644
--- a/chrome/browser/extensions/extension_system_impl.cc
+++ b/chrome/browser/extensions/extension_system_impl.cc
@@ -16,7 +16,7 @@
#include "chrome/browser/browser_process.h"
#include "chrome/browser/content_settings/cookie_settings.h"
#include "chrome/browser/extensions/component_loader.h"
-#include "chrome/browser/extensions/declarative_user_script_master.h"
+#include "chrome/browser/extensions/declarative_user_script_manager.h"
#include "chrome/browser/extensions/error_console/error_console.h"
#include "chrome/browser/extensions/extension_error_reporter.h"
#include "chrome/browser/extensions/extension_management.h"
@@ -302,6 +302,8 @@
ExtensionErrorReporter::Init(allow_noisy_errors);
shared_user_script_master_.reset(new SharedUserScriptMaster(profile_));
+ declarative_user_script_manager_.reset(
+ new DeclarativeUserScriptManager(profile_));
// ExtensionService depends on RuntimeData.
runtime_data_.reset(new RuntimeData(ExtensionRegistry::Get(profile_)));
@@ -431,6 +433,11 @@
return shared_user_script_master_.get();
}
+DeclarativeUserScriptManager*
+ExtensionSystemImpl::Shared::declarative_user_script_manager() {
+ return declarative_user_script_manager_.get();
+}
+
InfoMap* ExtensionSystemImpl::Shared::info_map() {
if (!extension_info_map_.get())
extension_info_map_ = new InfoMap();
@@ -462,27 +469,6 @@
return content_verifier_.get();
}
-DeclarativeUserScriptMaster*
-ExtensionSystemImpl::Shared::GetDeclarativeUserScriptMasterByExtension(
- const ExtensionId& extension_id) {
- DCHECK(ready().is_signaled());
- DeclarativeUserScriptMaster* master = NULL;
- for (ScopedVector<DeclarativeUserScriptMaster>::iterator it =
- declarative_user_script_masters_.begin();
- it != declarative_user_script_masters_.end();
- ++it) {
- if ((*it)->extension_id() == extension_id) {
- master = *it;
- break;
- }
- }
- if (!master) {
- master = new DeclarativeUserScriptMaster(profile_, extension_id);
- declarative_user_script_masters_.push_back(master);
- }
- return master;
-}
-
//
// ExtensionSystemImpl
//
@@ -528,6 +514,11 @@
return shared_->shared_user_script_master();
}
+DeclarativeUserScriptManager*
+ExtensionSystemImpl::declarative_user_script_manager() {
+ return shared_->declarative_user_script_manager();
+}
+
StateStore* ExtensionSystemImpl::state_store() {
return shared_->state_store();
}
@@ -572,12 +563,6 @@
extension);
}
-DeclarativeUserScriptMaster*
-ExtensionSystemImpl::GetDeclarativeUserScriptMasterByExtension(
- const ExtensionId& extension_id) {
- return shared_->GetDeclarativeUserScriptMasterByExtension(extension_id);
-}
-
void ExtensionSystemImpl::RegisterExtensionWithRequestContexts(
const Extension* extension) {
base::Time install_time;