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

Unified Diff: extensions/renderer/user_script_set.cc

Issue 934763003: Refactoring: de-couple Extensions from "script injection System" [render side]:3 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@decouple_brower_isolated_world_routingid_user_script_1
Patch Set: Created 5 years, 10 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: extensions/renderer/user_script_set.cc
diff --git a/extensions/renderer/user_script_set.cc b/extensions/renderer/user_script_set.cc
index 752f4644a85739e58046e1d9169075ceab0ef153..6114a6679f2ce1b7781b5d810b4a65b5e1029bf3 100644
--- a/extensions/renderer/user_script_set.cc
+++ b/extensions/renderer/user_script_set.cc
@@ -12,9 +12,11 @@
#include "extensions/common/permissions/permissions_data.h"
#include "extensions/renderer/extension_injection_host.h"
#include "extensions/renderer/extensions_renderer_client.h"
+#include "extensions/renderer/injection_host.h"
#include "extensions/renderer/script_context.h"
#include "extensions/renderer/script_injection.h"
#include "extensions/renderer/user_script_injector.h"
+#include "extensions/renderer/web_ui_injection_host.h"
#include "third_party/WebKit/public/web/WebDocument.h"
#include "third_party/WebKit/public/web/WebFrame.h"
#include "url/gurl.h"
@@ -55,6 +57,8 @@ void UserScriptSet::GetActiveExtensionIds(
for (ScopedVector<UserScript>::const_iterator iter = scripts_.begin();
iter != scripts_.end();
++iter) {
+ if ((*iter)->host_id().type() != HostID::EXTENSIONS)
+ continue;
DCHECK(!(*iter)->extension_id().empty());
ids->insert((*iter)->extension_id());
}
@@ -69,16 +73,25 @@ void UserScriptSet::GetInjections(
for (ScopedVector<UserScript>::const_iterator iter = scripts_.begin();
iter != scripts_.end();
++iter) {
- const Extension* extension = extensions_->GetByID((*iter)->extension_id());
- if (!extension)
- continue;
+ scoped_ptr<InjectionHost> injection_host;
+ const HostID& host_id = (*iter)->host_id();
+
+ if (host_id.type() == HostID::EXTENSIONS) {
+ const Extension* extension = extensions_->GetByID(host_id.id());
+ if (!extension)
+ continue;
+ injection_host.reset(new ExtensionInjectionHost(extension));
+ } else if (host_id.type() == HostID::WEBUI) {
+ injection_host.reset(new WebUIInjectionHost(host_id));
+ }
+
scoped_ptr<ScriptInjection> injection = GetInjectionForScript(
*iter,
web_frame,
tab_id,
run_location,
document_url,
- extension,
+ injection_host.get(),
false /* is_declarative */);
if (injection.get())
injections->push_back(injection.release());
@@ -156,7 +169,7 @@ scoped_ptr<ScriptInjection> UserScriptSet::GetDeclarativeScriptInjection(
int tab_id,
UserScript::RunLocation run_location,
const GURL& document_url,
- const Extension* extension) {
+ const InjectionHost* injection_host) {
for (ScopedVector<UserScript>::const_iterator it = scripts_.begin();
it != scripts_.end();
++it) {
@@ -166,7 +179,7 @@ scoped_ptr<ScriptInjection> UserScriptSet::GetDeclarativeScriptInjection(
tab_id,
run_location,
document_url,
- extension,
+ injection_host,
true /* is_declarative */);
}
}
@@ -181,7 +194,7 @@ scoped_ptr<ScriptInjection> UserScriptSet::GetInjectionForScript(
int tab_id,
UserScript::RunLocation run_location,
const GURL& document_url,
- const Extension* extension,
+ const InjectionHost* injection_host,
Devlin 2015/02/17 18:56:52 We should probably just create the injection host
Xi Han 2015/02/18 21:11:46 Done.
bool is_declarative) {
scoped_ptr<ScriptInjection> injection;
if (web_frame->parent() && !script->match_all_frames())
@@ -196,11 +209,8 @@ scoped_ptr<ScriptInjection> UserScriptSet::GetInjectionForScript(
scoped_ptr<ScriptInjector> injector(new UserScriptInjector(script,
this,
is_declarative));
- HostID host_id(HostID::EXTENSIONS, extension->id());
- ExtensionInjectionHost extension_injection_host(
- make_scoped_refptr<const Extension>(extension));
if (injector->CanExecuteOnFrame(
- &extension_injection_host,
+ injection_host,
web_frame,
-1, // Content scripts are not tab-specific.
web_frame->top()->document().url()) ==
@@ -216,7 +226,7 @@ scoped_ptr<ScriptInjection> UserScriptSet::GetInjectionForScript(
injection.reset(new ScriptInjection(
injector.Pass(),
web_frame->toWebLocalFrame(),
- host_id,
+ make_scoped_ptr(injection_host),
script->consumer_instance_type(),
run_location,
tab_id));

Powered by Google App Engine
This is Rietveld 408576698