| Index: extensions/renderer/script_injection_manager.cc
|
| diff --git a/extensions/renderer/script_injection_manager.cc b/extensions/renderer/script_injection_manager.cc
|
| index 069ba5c2a3c52e0c848888b6ad8e8bb3f767b17b..75ee3591b270b160b6ae088f02d81dbf21163bac 100644
|
| --- a/extensions/renderer/script_injection_manager.cc
|
| +++ b/extensions/renderer/script_injection_manager.cc
|
| @@ -19,6 +19,7 @@
|
| #include "extensions/renderer/programmatic_script_injector.h"
|
| #include "extensions/renderer/script_injection.h"
|
| #include "extensions/renderer/scripts_run_info.h"
|
| +#include "extensions/renderer/web_ui_injection_host.h"
|
| #include "ipc/ipc_message_macros.h"
|
| #include "third_party/WebKit/public/web/WebDocument.h"
|
| #include "third_party/WebKit/public/web/WebFrame.h"
|
| @@ -429,17 +430,22 @@ void ScriptInjectionManager::HandleExecuteCode(
|
| return;
|
| }
|
|
|
| - scoped_ptr<const ExtensionInjectionHost> extension_injection_host =
|
| - ExtensionInjectionHost::Create(params.extension_id, extensions_);
|
| -
|
| - if (!extension_injection_host.get())
|
| - return;
|
| + scoped_ptr<const InjectionHost> injection_host;
|
| + if (params.host_type == HostID::EXTENSIONS) {
|
| + injection_host =
|
| + ExtensionInjectionHost::Create(params.host_id, extensions_).Pass();
|
| + if (!injection_host.get())
|
| + return;
|
| + } else if (params.host_type == HostID::WEBUI) {
|
| + injection_host = WebUIInjectionHost::Create(
|
| + HostID(params.host_type, params.host_id)).Pass();
|
| + }
|
|
|
| scoped_ptr<ScriptInjection> injection(new ScriptInjection(
|
| scoped_ptr<ScriptInjector>(
|
| new ProgrammaticScriptInjector(params, main_frame)),
|
| main_frame,
|
| - extension_injection_host.Pass(),
|
| + injection_host.Pass(),
|
| params.is_web_view ? UserScript::ConsumerInstanceType::WEBVIEW
|
| : UserScript::ConsumerInstanceType::TAB,
|
| static_cast<UserScript::RunLocation>(params.run_at),
|
|
|