diff options
Diffstat (limited to 'extensions/renderer')
| -rw-r--r-- | extensions/renderer/extension_injection_host.cc | 5 | ||||
| -rw-r--r-- | extensions/renderer/extension_injection_host.h | 6 | ||||
| -rw-r--r-- | extensions/renderer/programmatic_script_injector.cc | 1 | ||||
| -rw-r--r-- | extensions/renderer/script_injection_manager.cc | 18 | ||||
| -rw-r--r-- | extensions/renderer/web_ui_injection_host.cc | 1 |
5 files changed, 20 insertions, 11 deletions
diff --git a/extensions/renderer/extension_injection_host.cc b/extensions/renderer/extension_injection_host.cc index 7a27a08..a97a702 100644 --- a/extensions/renderer/extension_injection_host.cc +++ b/extensions/renderer/extension_injection_host.cc @@ -18,8 +18,9 @@ ExtensionInjectionHost::~ExtensionInjectionHost() { } // static -scoped_ptr<const ExtensionInjectionHost> ExtensionInjectionHost::Create( - const std::string& extension_id, const ExtensionSet* extensions) { +scoped_ptr<const InjectionHost> ExtensionInjectionHost::Create( + const std::string& extension_id, + const ExtensionSet* extensions) { const Extension* extension = extensions->GetByID(extension_id); if (!extension) return scoped_ptr<const ExtensionInjectionHost>(); diff --git a/extensions/renderer/extension_injection_host.h b/extensions/renderer/extension_injection_host.h index bdf6f41..1b77cac 100644 --- a/extensions/renderer/extension_injection_host.h +++ b/extensions/renderer/extension_injection_host.h @@ -12,6 +12,8 @@ namespace extensions { class ExtensionSet; +class ExtensionSet; + // A wrapper class that holds an extension and implements the InjectionHost // interface. class ExtensionInjectionHost : public InjectionHost { @@ -21,8 +23,8 @@ class ExtensionInjectionHost : public InjectionHost { // Create an ExtensionInjectionHost object. If the extension is gone, returns // a null scoped ptr. - static scoped_ptr<const ExtensionInjectionHost> Create( - const std::string& extension_id, const ExtensionSet* extensions); + static scoped_ptr<const InjectionHost> Create(const std::string& extension_id, + const ExtensionSet* extensions); private: // InjectionHost: diff --git a/extensions/renderer/programmatic_script_injector.cc b/extensions/renderer/programmatic_script_injector.cc index 19259df..6e28bef 100644 --- a/extensions/renderer/programmatic_script_injector.cc +++ b/extensions/renderer/programmatic_script_injector.cc @@ -82,6 +82,7 @@ PermissionsData::AccessType ProgrammaticScriptInjector::CanExecuteOnFrame( ? PermissionsData::ACCESS_ALLOWED : PermissionsData::ACCESS_DENIED; } + DCHECK_EQ(injection_host->id().type(), HostID::EXTENSIONS); return injection_host->CanExecuteOnFrame( effective_document_url, top_url, tab_id, true /* is_declarative */); diff --git a/extensions/renderer/script_injection_manager.cc b/extensions/renderer/script_injection_manager.cc index 5481a8e..c550cfd 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" @@ -406,17 +407,22 @@ void ScriptInjectionManager::HandleExecuteCode( return; } - scoped_ptr<const ExtensionInjectionHost> extension_injection_host = - ExtensionInjectionHost::Create(params.extension_id, extensions_); - - if (!extension_injection_host) - return; + scoped_ptr<const InjectionHost> injection_host; + if (params.host_id.type() == HostID::EXTENSIONS) { + injection_host = ExtensionInjectionHost::Create(params.host_id.id(), + extensions_); + if (!injection_host) + return; + } else if (params.host_id.type() == HostID::WEBUI) { + injection_host.reset( + new WebUIInjectionHost(params.host_id)); + } scoped_ptr<ScriptInjection> injection(new ScriptInjection( scoped_ptr<ScriptInjector>( new ProgrammaticScriptInjector(params, main_frame)), main_frame, - extension_injection_host.Pass(), + injection_host.Pass(), static_cast<UserScript::RunLocation>(params.run_at), ExtensionHelper::Get(render_view)->tab_id())); diff --git a/extensions/renderer/web_ui_injection_host.cc b/extensions/renderer/web_ui_injection_host.cc index 334358a..5c6e117 100644 --- a/extensions/renderer/web_ui_injection_host.cc +++ b/extensions/renderer/web_ui_injection_host.cc @@ -12,7 +12,6 @@ WebUIInjectionHost::WebUIInjectionHost(const HostID& host_id) WebUIInjectionHost::~WebUIInjectionHost() { } - std::string WebUIInjectionHost::GetContentSecurityPolicy() const { return std::string(); } |
