| Index: chrome/browser/extensions/extension_system_impl.cc
|
| diff --git a/chrome/browser/extensions/extension_system_impl.cc b/chrome/browser/extensions/extension_system_impl.cc
|
| index 165d9e189ff7caf56298102d8a2ead8d267bf0fb..14670c700c25247440222aaad9fe2cd6f9d3c4ce 100644
|
| --- a/chrome/browser/extensions/extension_system_impl.cc
|
| +++ b/chrome/browser/extensions/extension_system_impl.cc
|
| @@ -12,10 +12,12 @@
|
| #include "base/metrics/field_trial.h"
|
| #include "base/metrics/histogram.h"
|
| #include "base/strings/string_tokenizer.h"
|
| +#include "base/strings/string_util.h"
|
| #include "chrome/browser/browser_process.h"
|
| #include "chrome/browser/content_settings/cookie_settings.h"
|
| #include "chrome/browser/extensions/blacklist.h"
|
| #include "chrome/browser/extensions/component_loader.h"
|
| +#include "chrome/browser/extensions/declarative_user_script_master.h"
|
| #include "chrome/browser/extensions/error_console/error_console.h"
|
| #include "chrome/browser/extensions/extension_error_reporter.h"
|
| #include "chrome/browser/extensions/extension_service.h"
|
| @@ -26,10 +28,10 @@
|
| #include "chrome/browser/extensions/install_verifier.h"
|
| #include "chrome/browser/extensions/navigation_observer.h"
|
| #include "chrome/browser/extensions/shared_module_service.h"
|
| +#include "chrome/browser/extensions/shared_user_script_master.h"
|
| #include "chrome/browser/extensions/standard_management_policy_provider.h"
|
| #include "chrome/browser/extensions/state_store_notification_observer.h"
|
| #include "chrome/browser/extensions/updater/manifest_fetch_data.h"
|
| -#include "chrome/browser/extensions/user_script_master.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/browser/profiles/profile_manager.h"
|
| #include "chrome/common/chrome_switches.h"
|
| @@ -316,7 +318,7 @@ void ExtensionSystemImpl::Shared::Init(bool extensions_enabled) {
|
| bool allow_noisy_errors = !command_line->HasSwitch(switches::kNoErrorDialogs);
|
| ExtensionErrorReporter::Init(allow_noisy_errors);
|
|
|
| - user_script_master_.reset(new UserScriptMaster(profile_));
|
| + shared_user_script_master_.reset(new SharedUserScriptMaster(profile_));
|
|
|
| // ExtensionService depends on RuntimeData.
|
| runtime_data_.reset(new RuntimeData(ExtensionRegistry::Get(profile_)));
|
| @@ -456,8 +458,9 @@ ManagementPolicy* ExtensionSystemImpl::Shared::management_policy() {
|
| return management_policy_.get();
|
| }
|
|
|
| -UserScriptMaster* ExtensionSystemImpl::Shared::user_script_master() {
|
| - return user_script_master_.get();
|
| +SharedUserScriptMaster*
|
| +ExtensionSystemImpl::Shared::shared_user_script_master() {
|
| + return shared_user_script_master_.get();
|
| }
|
|
|
| InfoMap* ExtensionSystemImpl::Shared::info_map() {
|
| @@ -499,6 +502,26 @@ ContentVerifier* ExtensionSystemImpl::Shared::content_verifier() {
|
| 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
|
| //
|
| @@ -523,7 +546,7 @@ void ExtensionSystemImpl::Shutdown() {
|
|
|
| void ExtensionSystemImpl::InitForRegularProfile(bool extensions_enabled) {
|
| DCHECK(!profile_->IsOffTheRecord());
|
| - if (user_script_master() || extension_service())
|
| + if (shared_user_script_master() || extension_service())
|
| return; // Already initialized.
|
|
|
| // The InfoMap needs to be created before the ProcessManager.
|
| @@ -546,8 +569,8 @@ ManagementPolicy* ExtensionSystemImpl::management_policy() {
|
| return shared_->management_policy();
|
| }
|
|
|
| -UserScriptMaster* ExtensionSystemImpl::user_script_master() {
|
| - return shared_->user_script_master();
|
| +SharedUserScriptMaster* ExtensionSystemImpl::shared_user_script_master() {
|
| + return shared_->shared_user_script_master();
|
| }
|
|
|
| ProcessManager* ExtensionSystemImpl::process_manager() {
|
| @@ -606,6 +629,12 @@ scoped_ptr<ExtensionSet> ExtensionSystemImpl::GetDependentExtensions(
|
| extension);
|
| }
|
|
|
| +DeclarativeUserScriptMaster*
|
| +ExtensionSystemImpl::GetDeclarativeUserScriptMasterByExtension(
|
| + const ExtensionId& extension_id) {
|
| + return shared_->GetDeclarativeUserScriptMasterByExtension(extension_id);
|
| +}
|
| +
|
| void ExtensionSystemImpl::RegisterExtensionWithRequestContexts(
|
| const Extension* extension) {
|
| base::Time install_time;
|
|
|