Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2256)

Unified Diff: chrome/browser/extensions/declarative_user_script_manager.cc

Issue 822453002: Introduce HostID and de-couple Extensions from "script injection System" [browser side] (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: nits Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698