diff options
Diffstat (limited to 'src/core/renderer/extensions')
4 files changed, 18 insertions, 13 deletions
diff --git a/src/core/renderer/extensions/extensions_renderer_client_qt.cpp b/src/core/renderer/extensions/extensions_renderer_client_qt.cpp index f72113018..b1998e027 100644 --- a/src/core/renderer/extensions/extensions_renderer_client_qt.cpp +++ b/src/core/renderer/extensions/extensions_renderer_client_qt.cpp @@ -62,9 +62,7 @@ #include "extensions/renderer/dispatcher.h" #include "extensions/renderer/extension_frame_helper.h" #include "extensions/renderer/extensions_render_frame_observer.h" -#include "extensions/renderer/guest_view/extensions_guest_view_container.h" #include "extensions/renderer/guest_view/extensions_guest_view_container_dispatcher.h" -#include "extensions/renderer/guest_view/mime_handler_view/mime_handler_view_container.h" #include "extensions/renderer/renderer_extension_registry.h" #include "extensions/renderer/script_context.h" #include "third_party/blink/public/platform/web_url.h" @@ -127,9 +125,6 @@ bool ExtensionsRendererClientQt::ExtensionAPIEnabledForServiceWorkerScript(const if (!script_url.SchemeIs(extensions::kExtensionScheme)) return false; - if (!extensions::ExtensionsClient::Get()->ExtensionAPIEnabledInExtensionServiceWorkers()) - return false; - const extensions::Extension* extension = extensions::RendererExtensionRegistry::Get()->GetExtensionOrAppByURL(script_url); @@ -179,12 +174,14 @@ bool ExtensionsRendererClientQt::OverrideCreatePlugin(content::RenderFrame *rend void ExtensionsRendererClientQt::WillSendRequest(blink::WebLocalFrame *frame, ui::PageTransition transition_type, const blink::WebURL &url, + const net::SiteForCookies &site_for_cookies, const url::Origin *initiator_origin, - GURL *new_url, - bool *attach_same_site_cookies) + GURL *new_url) { if (url.ProtocolIs(extensions::kExtensionScheme) && - !resource_request_policy_->CanRequestResource(url, frame, transition_type)) { + !resource_request_policy_->CanRequestResource(url, frame, + transition_type, + base::OptionalFromPtr(initiator_origin))) { *new_url = GURL(chrome::kExtensionInvalidRequestURL); } } diff --git a/src/core/renderer/extensions/extensions_renderer_client_qt.h b/src/core/renderer/extensions/extensions_renderer_client_qt.h index 85cc7bf2d..d73456643 100644 --- a/src/core/renderer/extensions/extensions_renderer_client_qt.h +++ b/src/core/renderer/extensions/extensions_renderer_client_qt.h @@ -63,6 +63,10 @@ class RenderView; struct WebPluginInfo; } +namespace net { +class SiteForCookies; +} + namespace url { class Origin; } @@ -99,9 +103,9 @@ public: void WillSendRequest(blink::WebLocalFrame *frame, ui::PageTransition transition_type, const blink::WebURL &url, + const net::SiteForCookies &site_for_cookies, const url::Origin *initiator_origin, - GURL *new_url, - bool *attach_same_site_cookies); + GURL *new_url); static bool ShouldFork(blink::WebLocalFrame *frame, const GURL &url, diff --git a/src/core/renderer/extensions/resource_request_policy_qt.cpp b/src/core/renderer/extensions/resource_request_policy_qt.cpp index efe44521d..70e97819c 100644 --- a/src/core/renderer/extensions/resource_request_policy_qt.cpp +++ b/src/core/renderer/extensions/resource_request_policy_qt.cpp @@ -85,7 +85,8 @@ void ResourceRequestPolicyQt::OnExtensionUnloaded(const ExtensionId &extension_i // than those triggered through UI. bool ResourceRequestPolicyQt::CanRequestResource(const GURL &resource_url, blink::WebLocalFrame *frame, - ui::PageTransition transition_type) + ui::PageTransition transition_type, + const base::Optional<url::Origin>& initiator_origin) { CHECK(resource_url.SchemeIs(kExtensionScheme)); @@ -165,7 +166,7 @@ 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()) && + if (!WebAccessibleResourcesInfo::IsResourceWebAccessible(extension, resource_url.path(), initiator_origin) && !WebviewInfo::IsResourceWebviewAccessible(extension, m_dispatcher->webview_partition_id(), resource_url.path())) { std::string message = base::StringPrintf( diff --git a/src/core/renderer/extensions/resource_request_policy_qt.h b/src/core/renderer/extensions/resource_request_policy_qt.h index e6d4e79bb..567eefaeb 100644 --- a/src/core/renderer/extensions/resource_request_policy_qt.h +++ b/src/core/renderer/extensions/resource_request_policy_qt.h @@ -43,8 +43,10 @@ #include <set> #include "base/macros.h" +#include "base/optional.h" #include "extensions/common/extension_id.h" #include "ui/base/page_transition_types.h" +#include "url/origin.h" class GURL; @@ -73,7 +75,8 @@ public: // than those triggered through UI. bool CanRequestResource(const GURL &resource_url, blink::WebLocalFrame *frame, - ui::PageTransition transition_type); + ui::PageTransition transition_type, + const base::Optional<url::Origin> &initiator_origin); private: Dispatcher *m_dispatcher; |