summaryrefslogtreecommitdiff
path: root/chromium/content/renderer/worker
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-12 14:27:29 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-13 09:35:20 +0000
commitc30a6232df03e1efbd9f3b226777b07e087a1122 (patch)
treee992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/content/renderer/worker
parent7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff)
downloadqtwebengine-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')
-rw-r--r--chromium/content/renderer/worker/dedicated_worker_host_factory_client.cc35
-rw-r--r--chromium/content/renderer/worker/dedicated_worker_host_factory_client.h10
-rw-r--r--chromium/content/renderer/worker/embedded_shared_worker_stub.cc40
-rw-r--r--chromium/content/renderer/worker/embedded_shared_worker_stub.h16
-rw-r--r--chromium/content/renderer/worker/shared_worker_factory_impl.cc14
-rw-r--r--chromium/content/renderer/worker/shared_worker_factory_impl.h4
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>