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 |