| Index: chrome/browser/extensions/declarative_user_script_manager.cc
|
| diff --git a/chrome/browser/extensions/declarative_user_script_manager.cc b/chrome/browser/extensions/declarative_user_script_manager.cc
|
| index e740b5b4f4e25c94889afcea7c8d1f92cecc1eb6..dbdd4424e7e4cc3227d17a72c5dce4058598b609 100644
|
| --- a/chrome/browser/extensions/declarative_user_script_manager.cc
|
| +++ b/chrome/browser/extensions/declarative_user_script_manager.cc
|
| @@ -4,12 +4,13 @@
|
|
|
| #include "chrome/browser/extensions/declarative_user_script_manager.h"
|
|
|
| -#include "chrome/browser/extensions/declarative_user_script_master.h"
|
| +#include "chrome/browser/extensions/extension_declarative_user_script_master.h"
|
|
|
| namespace extensions {
|
|
|
| DeclarativeUserScriptManager::DeclarativeUserScriptManager(Profile* profile)
|
| - : profile_(profile) {
|
| + : profile_(profile),
|
| + current_instance_id_(ConsumerID::kDefaultInstanceID + 1) {
|
| }
|
|
|
| DeclarativeUserScriptManager::~DeclarativeUserScriptManager() {
|
| @@ -18,15 +19,47 @@ DeclarativeUserScriptManager::~DeclarativeUserScriptManager() {
|
| DeclarativeUserScriptMaster*
|
| DeclarativeUserScriptManager::GetDeclarativeUserScriptMasterByID(
|
| const std::string& id) {
|
| - UserScriptMasterMap::iterator it = declarative_user_script_masters_.find(id);
|
| + RulesRegistryKey key(id);
|
| + RulesRegistryKeyToIDMap::iterator it =
|
| + rules_registry_key_to_id_map_.find(key);
|
| + if (it != rules_registry_key_to_id_map_.end())
|
| + return GetDeclarativeUserScriptMasterByID(it->second);
|
| +
|
| + ConsumerID consumer_id(EXTENSIONS, id, TAB, GetNextID());
|
| + rules_registry_key_to_id_map_[key] = consumer_id;
|
| + return CreateDeclarativeUserScriptMaster(consumer_id);
|
| +}
|
| +
|
| +DeclarativeUserScriptMaster*
|
| +DeclarativeUserScriptManager::GetDeclarativeUserScriptMasterByID(
|
| + const ConsumerID& consumer_id) {
|
| + UserScriptMasterMap::iterator it =
|
| + declarative_user_script_masters_.find(consumer_id);
|
|
|
| if (it != declarative_user_script_masters_.end())
|
| return it->second.get();
|
|
|
| - linked_ptr<DeclarativeUserScriptMaster> master(
|
| - new DeclarativeUserScriptMaster(profile_, id));
|
| - declarative_user_script_masters_[id] = master;
|
| + return CreateDeclarativeUserScriptMaster(consumer_id);
|
| +}
|
| +
|
| +DeclarativeUserScriptMaster*
|
| +DeclarativeUserScriptManager::CreateDeclarativeUserScriptMaster(
|
| + const ConsumerID& consumer_id) {
|
| + linked_ptr<DeclarativeUserScriptMaster> master;
|
| + switch (consumer_id.host_type) {
|
| + case EXTENSIONS:
|
| + master.reset(
|
| + new ExtensionDeclarativeUserScriptMaster(profile_, consumer_id));
|
| + break;
|
| + default:
|
| + master.reset(new DeclarativeUserScriptMaster(profile_, consumer_id));
|
| + }
|
| + declarative_user_script_masters_[consumer_id] = master;
|
| return master.get();
|
| }
|
|
|
| +int DeclarativeUserScriptManager::GetNextID() {
|
| + return ++current_instance_id_;
|
| +}
|
| +
|
| } // extensions
|
|
|