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

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: Fady's comments. Created 5 years, 11 months 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..4f2f5b7ee366f34beb9b4707d8600f904e8e2589 100644
--- a/chrome/browser/extensions/declarative_user_script_manager.cc
+++ b/chrome/browser/extensions/declarative_user_script_manager.cc
@@ -4,12 +4,12 @@
#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) {
}
DeclarativeUserScriptManager::~DeclarativeUserScriptManager() {
@@ -18,15 +18,48 @@ DeclarativeUserScriptManager::~DeclarativeUserScriptManager() {
DeclarativeUserScriptMaster*
DeclarativeUserScriptManager::GetDeclarativeUserScriptMasterByID(
Fady Samuel 2015/01/08 16:12:59 You shouldn't need this.
Xi Han 2015/01/08 20:54:11 Removed.
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(ConsumerID::EXTENSIONS, id, ConsumerID::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 ConsumerID::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();
}
-} // extensions
+int DeclarativeUserScriptManager::GetNextID() {
+ return ++current_instance_id_;
+}
+
+} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698