Chromium Code Reviews| 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) { |
|
Fady Samuel
2015/01/06 13:55:11
Why?
Xi Han
2015/01/07 18:57:03
Updated.
|
| } |
| 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 |