diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-12 14:27:29 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-13 09:35:20 +0000 |
commit | c30a6232df03e1efbd9f3b226777b07e087a1122 (patch) | |
tree | e992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/content/renderer/worker | |
parent | 7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff) | |
download | qtwebengine-chromium-85-based.tar.gz |
BASELINE: Update Chromium to 85.0.4183.14085-based
Change-Id: Iaa42f4680837c57725b1344f108c0196741f6057
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/content/renderer/worker')
6 files changed, 64 insertions, 55 deletions
diff --git a/chromium/content/renderer/worker/dedicated_worker_host_factory_client.cc b/chromium/content/renderer/worker/dedicated_worker_host_factory_client.cc index d7cd765d88d..d692977de5e 100644 --- a/chromium/content/renderer/worker/dedicated_worker_host_factory_client.cc +++ b/chromium/content/renderer/worker/dedicated_worker_host_factory_client.cc @@ -7,7 +7,9 @@ #include <utility> #include "content/renderer/loader/child_url_loader_factory_bundle.h" #include "content/renderer/loader/navigation_response_override_parameters.h" +#include "content/renderer/loader/resource_dispatcher.h" #include "content/renderer/loader/web_worker_fetch_context_impl.h" +#include "content/renderer/render_thread_impl.h" #include "content/renderer/service_worker/service_worker_provider_context.h" #include "content/renderer/worker/fetch_client_settings_object_helpers.h" #include "mojo/public/cpp/bindings/pending_remote.h" @@ -39,7 +41,7 @@ void DedicatedWorkerHostFactoryClient::CreateWorkerHostDeprecated( browser_interface_broker; factory_->CreateWorkerHost( browser_interface_broker.InitWithNewPipeAndPassReceiver(), - remote_host_.BindNewPipeAndPassReceiver(), std::move(callback)); + std::move(callback)); OnWorkerHostCreated(std::move(browser_interface_broker)); } @@ -47,16 +49,14 @@ void DedicatedWorkerHostFactoryClient::CreateWorkerHost( const blink::WebURL& script_url, network::mojom::CredentialsMode credentials_mode, const blink::WebFetchClientSettingsObject& fetch_client_settings_object, - mojo::ScopedMessagePipeHandle blob_url_token) { + blink::CrossVariantMojoRemote<blink::mojom::BlobURLTokenInterfaceBase> + blob_url_token) { DCHECK(base::FeatureList::IsEnabled(blink::features::kPlzDedicatedWorker)); factory_->CreateWorkerHostAndStartScriptLoad( script_url, credentials_mode, FetchClientSettingsObjectFromWebToMojom(fetch_client_settings_object), - mojo::PendingRemote<blink::mojom::BlobURLToken>( - std::move(blob_url_token), blink::mojom::BlobURLToken::Version_), - receiver_.BindNewPipeAndPassRemote(), - remote_host_.BindNewPipeAndPassReceiver()); + std::move(blob_url_token), receiver_.BindNewPipeAndPassRemote()); } scoped_refptr<blink::WebWorkerFetchContext> @@ -84,12 +84,6 @@ DedicatedWorkerHostFactoryClient::CloneWorkerFetchContext( return worker_fetch_context; } -void DedicatedWorkerHostFactoryClient::LifecycleStateChanged( - blink::mojom::FrameLifecycleState state) { - if (remote_host_) - remote_host_->LifecycleStateChanged(state); -} - scoped_refptr<WebWorkerFetchContextImpl> DedicatedWorkerHostFactoryClient::CreateWorkerFetchContext( blink::mojom::RendererPreferences renderer_preference, @@ -103,7 +97,10 @@ DedicatedWorkerHostFactoryClient::CreateWorkerFetchContext( std::move(renderer_preference), std::move(watcher_receiver), subresource_loader_factory_bundle_->Clone(), subresource_loader_factory_bundle_->CloneWithoutAppCacheFactory(), - std::move(pending_subresource_loader_updater_)); + std::move(pending_subresource_loader_updater_), + RenderThreadImpl::current() + ->resource_dispatcher() + ->cors_exempt_header_list()); worker_fetch_context->SetResponseOverrideForMainScript( std::move(response_override_for_main_script_)); return worker_fetch_context; @@ -112,12 +109,12 @@ DedicatedWorkerHostFactoryClient::CreateWorkerFetchContext( void DedicatedWorkerHostFactoryClient::OnWorkerHostCreated( mojo::PendingRemote<blink::mojom::BrowserInterfaceBroker> browser_interface_broker) { - worker_->OnWorkerHostCreated(browser_interface_broker.PassPipe()); + worker_->OnWorkerHostCreated(std::move(browser_interface_broker)); } void DedicatedWorkerHostFactoryClient::OnScriptLoadStarted( - blink::mojom::ServiceWorkerProviderInfoForClientPtr - service_worker_provider_info, + blink::mojom::ServiceWorkerContainerInfoForClientPtr + service_worker_container_info, blink::mojom::WorkerMainScriptLoadParamsPtr main_script_load_params, std::unique_ptr<blink::PendingURLLoaderFactoryBundle> pending_subresource_loader_factory_bundle, @@ -139,12 +136,12 @@ void DedicatedWorkerHostFactoryClient::OnScriptLoadStarted( pending_subresource_loader_updater_ = std::move(subresource_loader_updater); DCHECK(!service_worker_provider_context_); - if (service_worker_provider_info) { + if (service_worker_container_info) { service_worker_provider_context_ = base::MakeRefCounted<ServiceWorkerProviderContext>( blink::mojom::ServiceWorkerContainerType::kForDedicatedWorker, - std::move(service_worker_provider_info->client_receiver), - std::move(service_worker_provider_info->host_remote), + std::move(service_worker_container_info->client_receiver), + std::move(service_worker_container_info->host_remote), std::move(controller_info), subresource_loader_factory_bundle_); } diff --git a/chromium/content/renderer/worker/dedicated_worker_host_factory_client.h b/chromium/content/renderer/worker/dedicated_worker_host_factory_client.h index c7ecbbc4ac5..bb075902678 100644 --- a/chromium/content/renderer/worker/dedicated_worker_host_factory_client.h +++ b/chromium/content/renderer/worker/dedicated_worker_host_factory_client.h @@ -12,7 +12,6 @@ #include "third_party/blink/public/common/browser_interface_broker_proxy.h" #include "third_party/blink/public/mojom/renderer_preference_watcher.mojom-forward.h" #include "third_party/blink/public/mojom/renderer_preferences.mojom-forward.h" -#include "third_party/blink/public/mojom/worker/dedicated_worker_host.mojom.h" #include "third_party/blink/public/mojom/worker/dedicated_worker_host_factory.mojom.h" #include "third_party/blink/public/platform/web_dedicated_worker_host_factory_client.h" @@ -50,11 +49,11 @@ class DedicatedWorkerHostFactoryClient final const blink::WebURL& script_url, network::mojom::CredentialsMode credentials_mode, const blink::WebFetchClientSettingsObject& fetch_client_settings_object, - mojo::ScopedMessagePipeHandle blob_url_token) override; + blink::CrossVariantMojoRemote<blink::mojom::BlobURLTokenInterfaceBase> + blob_url_token) override; scoped_refptr<blink::WebWorkerFetchContext> CloneWorkerFetchContext( blink::WebWorkerFetchContext* web_worker_fetch_context, scoped_refptr<base::SingleThreadTaskRunner> task_runner) override; - void LifecycleStateChanged(blink::mojom::FrameLifecycleState state) override; scoped_refptr<WebWorkerFetchContextImpl> CreateWorkerFetchContext( blink::mojom::RendererPreferences renderer_preference, @@ -67,8 +66,8 @@ class DedicatedWorkerHostFactoryClient final mojo::PendingRemote<blink::mojom::BrowserInterfaceBroker> browser_interface_broker) override; void OnScriptLoadStarted( - blink::mojom::ServiceWorkerProviderInfoForClientPtr - service_worker_provider_info, + blink::mojom::ServiceWorkerContainerInfoForClientPtr + service_worker_container_info, blink::mojom::WorkerMainScriptLoadParamsPtr main_script_load_params, std::unique_ptr<blink::PendingURLLoaderFactoryBundle> pending_subresource_loader_factory_bundle, @@ -91,7 +90,6 @@ class DedicatedWorkerHostFactoryClient final mojo::Remote<blink::mojom::DedicatedWorkerHostFactory> factory_; mojo::Receiver<blink::mojom::DedicatedWorkerHostFactoryClient> receiver_{ this}; - mojo::Remote<blink::mojom::DedicatedWorkerHost> remote_host_; }; } // namespace content diff --git a/chromium/content/renderer/worker/embedded_shared_worker_stub.cc b/chromium/content/renderer/worker/embedded_shared_worker_stub.cc index 66c5f9877cb..1b51772529e 100644 --- a/chromium/content/renderer/worker/embedded_shared_worker_stub.cc +++ b/chromium/content/renderer/worker/embedded_shared_worker_stub.cc @@ -19,8 +19,10 @@ #include "third_party/blink/public/common/loader/url_loader_factory_bundle.h" #include "third_party/blink/public/common/messaging/message_port_channel.h" #include "third_party/blink/public/common/messaging/message_port_descriptor.h" +#include "third_party/blink/public/mojom/browser_interface_broker.mojom.h" #include "third_party/blink/public/mojom/devtools/devtools_agent.mojom.h" #include "third_party/blink/public/mojom/service_worker/service_worker_object.mojom.h" +#include "third_party/blink/public/mojom/worker/worker_content_settings_proxy.mojom.h" #include "third_party/blink/public/platform/web_fetch_client_settings_object.h" #include "third_party/blink/public/platform/web_string.h" #include "third_party/blink/public/web/web_shared_worker.h" @@ -40,8 +42,8 @@ EmbeddedSharedWorkerStub::EmbeddedSharedWorkerStub( preference_watcher_receiver, mojo::PendingRemote<blink::mojom::WorkerContentSettingsProxy> content_settings, - blink::mojom::ServiceWorkerProviderInfoForClientPtr - service_worker_provider_info, + blink::mojom::ServiceWorkerContainerInfoForClientPtr + service_worker_container_info, const base::UnguessableToken& appcache_host_id, blink::mojom::WorkerMainScriptLoadParamsPtr main_script_load_params, std::unique_ptr<blink::PendingURLLoaderFactoryBundle> @@ -50,12 +52,14 @@ EmbeddedSharedWorkerStub::EmbeddedSharedWorkerStub( mojo::PendingRemote<blink::mojom::SharedWorkerHost> host, mojo::PendingReceiver<blink::mojom::SharedWorker> receiver, mojo::PendingRemote<blink::mojom::BrowserInterfaceBroker> - browser_interface_broker) + browser_interface_broker, + const std::vector<std::string>& cors_exempt_header_list) : receiver_(this, std::move(receiver)), host_(std::move(host)), url_(info->url), renderer_preferences_(renderer_preferences), - preference_watcher_receiver_(std::move(preference_watcher_receiver)) { + preference_watcher_receiver_(std::move(preference_watcher_receiver)), + cors_exempt_header_list_(cors_exempt_header_list) { DCHECK(main_script_load_params); DCHECK(pending_subresource_loader_factory_bundle); @@ -93,12 +97,12 @@ EmbeddedSharedWorkerStub::EmbeddedSharedWorkerStub( std::make_unique<ChildPendingURLLoaderFactoryBundle>( std::move(pending_subresource_loader_factory_bundle))); - if (service_worker_provider_info) { + if (service_worker_container_info) { service_worker_provider_context_ = base::MakeRefCounted<ServiceWorkerProviderContext>( blink::mojom::ServiceWorkerContainerType::kForDedicatedWorker, - std::move(service_worker_provider_info->client_receiver), - std::move(service_worker_provider_info->host_remote), + std::move(service_worker_container_info->client_receiver), + std::move(service_worker_container_info->host_remote), std::move(controller_info), subresource_loader_factory_bundle_); } @@ -112,8 +116,8 @@ EmbeddedSharedWorkerStub::EmbeddedSharedWorkerStub( info->content_security_policy_type, info->creation_address_space, FetchClientSettingsObjectFromMojomToWeb( info->outside_fetch_client_settings_object), - appcache_host_id, devtools_worker_token, content_settings.PassPipe(), - browser_interface_broker.PassPipe(), pause_on_start); + appcache_host_id, devtools_worker_token, std::move(content_settings), + std::move(browser_interface_broker), pause_on_start); // If the host drops its connection, then self-destruct. receiver_.set_disconnect_handler(base::BindOnce( @@ -126,14 +130,13 @@ EmbeddedSharedWorkerStub::~EmbeddedSharedWorkerStub() { } void EmbeddedSharedWorkerStub::WorkerReadyForInspection( - mojo::ScopedMessagePipeHandle devtools_agent_remote_handle, - mojo::ScopedMessagePipeHandle devtools_agent_host_receiver_handle) { - mojo::PendingRemote<blink::mojom::DevToolsAgent> remote( - std::move(devtools_agent_remote_handle), - blink::mojom::DevToolsAgent::Version_); - mojo::PendingReceiver<blink::mojom::DevToolsAgentHost> receiver( - std::move(devtools_agent_host_receiver_handle)); - host_->OnReadyForInspection(std::move(remote), std::move(receiver)); + blink::CrossVariantMojoRemote<blink::mojom::DevToolsAgentInterfaceBase> + devtools_agent_remote, + blink::CrossVariantMojoReceiver< + blink::mojom::DevToolsAgentHostInterfaceBase> + devtools_agent_host_receiver) { + host_->OnReadyForInspection(std::move(devtools_agent_remote), + std::move(devtools_agent_host_receiver)); } void EmbeddedSharedWorkerStub::WorkerScriptLoadFailed( @@ -178,7 +181,8 @@ EmbeddedSharedWorkerStub::CreateWorkerFetchContext() { std::move(preference_watcher_receiver_), subresource_loader_factory_bundle_->Clone(), std::move(fallback_factory), - /*pending_subresource_loader_updater*/ mojo::NullReceiver()); + /*pending_subresource_loader_updater*/ mojo::NullReceiver(), + cors_exempt_header_list_); // TODO(horo): To get the correct first_party_to_cookies for the shared // worker, we need to check the all documents bounded by the shared worker. diff --git a/chromium/content/renderer/worker/embedded_shared_worker_stub.h b/chromium/content/renderer/worker/embedded_shared_worker_stub.h index ee4cb15a962..8198b997015 100644 --- a/chromium/content/renderer/worker/embedded_shared_worker_stub.h +++ b/chromium/content/renderer/worker/embedded_shared_worker_stub.h @@ -68,8 +68,8 @@ class EmbeddedSharedWorkerStub : public blink::WebSharedWorkerClient, preference_watcher_receiver, mojo::PendingRemote<blink::mojom::WorkerContentSettingsProxy> content_settings, - blink::mojom::ServiceWorkerProviderInfoForClientPtr - service_worker_provider_info, + blink::mojom::ServiceWorkerContainerInfoForClientPtr + service_worker_container_info, const base::UnguessableToken& appcache_host_id, blink::mojom::WorkerMainScriptLoadParamsPtr main_script_load_params, std::unique_ptr<blink::PendingURLLoaderFactoryBundle> @@ -78,7 +78,8 @@ class EmbeddedSharedWorkerStub : public blink::WebSharedWorkerClient, mojo::PendingRemote<blink::mojom::SharedWorkerHost> host, mojo::PendingReceiver<blink::mojom::SharedWorker> receiver, mojo::PendingRemote<blink::mojom::BrowserInterfaceBroker> - browser_interface_broker); + browser_interface_broker, + const std::vector<std::string>& cors_exempt_header_list); ~EmbeddedSharedWorkerStub() override; // blink::WebSharedWorkerClient implementation. @@ -86,8 +87,11 @@ class EmbeddedSharedWorkerStub : public blink::WebSharedWorkerClient, void WorkerContextClosed() override; void WorkerContextDestroyed() override; void WorkerReadyForInspection( - mojo::ScopedMessagePipeHandle devtools_agent_ptr_info, - mojo::ScopedMessagePipeHandle devtools_agent_host_request) override; + blink::CrossVariantMojoRemote<blink::mojom::DevToolsAgentInterfaceBase> + devtools_agent_remote, + blink::CrossVariantMojoReceiver< + blink::mojom::DevToolsAgentHostInterfaceBase> + devtools_agent_host_receiver) override; void WorkerScriptLoadFailed(const std::string& error_message) override; void WorkerScriptEvaluated(bool success) override; scoped_refptr<blink::WebWorkerFetchContext> CreateWorkerFetchContext() @@ -114,6 +118,8 @@ class EmbeddedSharedWorkerStub : public blink::WebSharedWorkerClient, preference_watcher_receiver_; std::unique_ptr<blink::WebSharedWorker> impl_; + std::vector<std::string> cors_exempt_header_list_; + using PendingChannel = std::pair<int /* connection_request_id */, blink::MessagePortChannel>; std::vector<PendingChannel> pending_channels_; diff --git a/chromium/content/renderer/worker/shared_worker_factory_impl.cc b/chromium/content/renderer/worker/shared_worker_factory_impl.cc index ce9e24b1a54..38c30ab355c 100644 --- a/chromium/content/renderer/worker/shared_worker_factory_impl.cc +++ b/chromium/content/renderer/worker/shared_worker_factory_impl.cc @@ -5,6 +5,8 @@ #include "content/renderer/worker/shared_worker_factory_impl.h" #include "base/memory/ptr_util.h" +#include "content/renderer/loader/resource_dispatcher.h" +#include "content/renderer/render_thread_impl.h" #include "content/renderer/worker/embedded_shared_worker_stub.h" #include "mojo/public/cpp/bindings/self_owned_receiver.h" #include "third_party/blink/public/common/loader/url_loader_factory_bundle.h" @@ -33,8 +35,8 @@ void SharedWorkerFactoryImpl::CreateSharedWorker( preference_watcher_receiver, mojo::PendingRemote<blink::mojom::WorkerContentSettingsProxy> content_settings, - blink::mojom::ServiceWorkerProviderInfoForClientPtr - service_worker_provider_info, + blink::mojom::ServiceWorkerContainerInfoForClientPtr + service_worker_container_info, const base::Optional<base::UnguessableToken>& appcache_host_id, blink::mojom::WorkerMainScriptLoadParamsPtr main_script_load_params, std::unique_ptr<blink::PendingURLLoaderFactoryBundle> @@ -49,12 +51,14 @@ void SharedWorkerFactoryImpl::CreateSharedWorker( std::move(info), constructor_origin, user_agent, ua_metadata, pause_on_start, devtools_worker_token, *renderer_preferences, std::move(preference_watcher_receiver), std::move(content_settings), - std::move(service_worker_provider_info), + std::move(service_worker_container_info), appcache_host_id.value_or(base::UnguessableToken()), std::move(main_script_load_params), std::move(subresource_loader_factories), std::move(controller_info), - std::move(host), std::move(receiver), - std::move(browser_interface_broker)); + std::move(host), std::move(receiver), std::move(browser_interface_broker), + RenderThreadImpl::current() + ->resource_dispatcher() + ->cors_exempt_header_list()); } } // namespace content diff --git a/chromium/content/renderer/worker/shared_worker_factory_impl.h b/chromium/content/renderer/worker/shared_worker_factory_impl.h index 6b484f421e4..593e419fc94 100644 --- a/chromium/content/renderer/worker/shared_worker_factory_impl.h +++ b/chromium/content/renderer/worker/shared_worker_factory_impl.h @@ -38,8 +38,8 @@ class SharedWorkerFactoryImpl : public blink::mojom::SharedWorkerFactory { preference_watcher_receiver, mojo::PendingRemote<blink::mojom::WorkerContentSettingsProxy> content_settings, - blink::mojom::ServiceWorkerProviderInfoForClientPtr - service_worker_provider_info, + blink::mojom::ServiceWorkerContainerInfoForClientPtr + service_worker_container_info, const base::Optional<base::UnguessableToken>& appcache_host_id, blink::mojom::WorkerMainScriptLoadParamsPtr main_script_load_params, std::unique_ptr<blink::PendingURLLoaderFactoryBundle> |