diff options
Diffstat (limited to 'src/core/renderer/extensions')
3 files changed, 16 insertions, 11 deletions
diff --git a/src/core/renderer/extensions/extensions_renderer_client_qt.cpp b/src/core/renderer/extensions/extensions_renderer_client_qt.cpp index 4f1ec5ba2..b36ed9e8b 100644 --- a/src/core/renderer/extensions/extensions_renderer_client_qt.cpp +++ b/src/core/renderer/extensions/extensions_renderer_client_qt.cpp @@ -16,7 +16,7 @@ #include "base/command_line.h" #include "base/lazy_instance.h" #include "base/stl_util.h" -#include "components/guest_view/renderer/guest_view_container_dispatcher.h" +#include "base/types/optional_util.h" #include "content/public/common/content_constants.h" #include "content/public/common/content_switches.h" #include "content/public/renderer/render_frame.h" @@ -27,6 +27,7 @@ #include "extensions/common/switches.h" #include "extensions/renderer/dispatcher.h" #include "extensions/renderer/extension_frame_helper.h" +#include "extensions/renderer/extension_web_view_helper.h" #include "extensions/renderer/extensions_render_frame_observer.h" #include "extensions/renderer/renderer_extension_registry.h" #include "extensions/renderer/script_context.h" @@ -111,10 +112,13 @@ void ExtensionsRendererClientQt::RenderThreadStarted() extension_dispatcher_->OnRenderThreadStarted(thread); permissions_policy_delegate_.reset(new RendererPermissionsPolicyDelegateQt(extension_dispatcher_.get())); resource_request_policy_.reset(new extensions::ResourceRequestPolicyQt(extension_dispatcher_.get())); - guest_view_container_dispatcher_.reset(new guest_view::GuestViewContainerDispatcher()); thread->AddObserver(extension_dispatcher_.get()); - thread->AddObserver(guest_view_container_dispatcher_.get()); +} + +void ExtensionsRendererClientQt::WebViewCreated(blink::WebView *web_view, const url::Origin *outermost_origin) +{ + new extensions::ExtensionWebViewHelper(web_view, outermost_origin); } void ExtensionsRendererClientQt::RenderFrameCreated(content::RenderFrame *render_frame, diff --git a/src/core/renderer/extensions/extensions_renderer_client_qt.h b/src/core/renderer/extensions/extensions_renderer_client_qt.h index 33395a615..163819cbc 100644 --- a/src/core/renderer/extensions/extensions_renderer_client_qt.h +++ b/src/core/renderer/extensions/extensions_renderer_client_qt.h @@ -16,6 +16,7 @@ namespace blink { class WebLocalFrame; struct WebPluginParams; class WebURL; +class WebView; } namespace content { @@ -35,10 +36,6 @@ class Dispatcher; class ResourceRequestPolicyQt; } -namespace guest_view { -class GuestViewContainerDispatcher; -} - namespace QtWebEngineCore { class ExtensionsDispatcherDelegateQt; @@ -59,6 +56,8 @@ public: // Match ContentRendererClientQt's method names... void RenderThreadStarted(); + void WebViewCreated(blink::WebView *web_view, + const url::Origin *outermost_origin); void RenderFrameCreated(content::RenderFrame *, service_manager::BinderRegistry *); bool OverrideCreatePlugin(content::RenderFrame *render_frame, const blink::WebPluginParams ¶ms); @@ -90,7 +89,6 @@ private: std::unique_ptr<ExtensionsDispatcherDelegateQt> extension_dispatcher_delegate_; std::unique_ptr<RendererPermissionsPolicyDelegateQt> permissions_policy_delegate_; std::unique_ptr<extensions::Dispatcher> extension_dispatcher_; - std::unique_ptr<guest_view::GuestViewContainerDispatcher> guest_view_container_dispatcher_; std::unique_ptr<extensions::ResourceRequestPolicyQt> resource_request_policy_; }; diff --git a/src/core/renderer/extensions/resource_request_policy_qt.cpp b/src/core/renderer/extensions/resource_request_policy_qt.cpp index 21b7be4b6..a61e53310 100644 --- a/src/core/renderer/extensions/resource_request_policy_qt.cpp +++ b/src/core/renderer/extensions/resource_request_policy_qt.cpp @@ -27,8 +27,9 @@ ResourceRequestPolicyQt::ResourceRequestPolicyQt(Dispatcher *dispatcher) void ResourceRequestPolicyQt::OnExtensionLoaded(const Extension &extension) { - if (WebAccessibleResourcesInfo::HasWebAccessibleResources(&extension) - || WebviewInfo::HasWebviewAccessibleResources(extension, m_dispatcher->webview_partition_id()) + if (WebAccessibleResourcesInfo::HasWebAccessibleResources(&extension) || + WebviewInfo::HasWebviewAccessibleResources(extension, + m_dispatcher->webview_partition_id().value_or(std::string())) // // Hosted app icons are accessible. // // TODO(devlin): Should we incorporate this into // // WebAccessibleResourcesInfo? @@ -131,7 +132,9 @@ bool ResourceRequestPolicyQt::CanRequestResource(const GURL &resource_url, // Disallow loading of extension resources which are not explicitly listed // as web or WebView accessible if the manifest version is 2 or greater. if (!WebAccessibleResourcesInfo::IsResourceWebAccessible(extension, resource_url.path(), initiator_origin) && - !WebviewInfo::IsResourceWebviewAccessible(extension, m_dispatcher->webview_partition_id(), resource_url.path())) + !WebviewInfo::IsResourceWebviewAccessible(extension, + m_dispatcher->webview_partition_id().value_or(std::string()), + resource_url.path())) { std::string message = base::StringPrintf( "Denying load of %s. Resources must be listed in the " |