Commit 7a734fb2 authored by Makoto Shimazu's avatar Makoto Shimazu Committed by Commit Bot

Propagate RendererPreferences to SharedWorker

When starting a new shared worker, RendererPreferences is passed from the
browser to the renderer. This preference is used to reflect DNT header and
referrer for requests from shared workers.

Bug: 853085
Change-Id: Ie369a3ec513ffd16ba8a3f4b6a28061e6e1e83c0
Reviewed-on: https://chromium-review.googlesource.com/1135107
Commit-Queue: Makoto Shimazu <shimazu@chromium.org>
Reviewed-by: default avatarMatt Falkenhagen <falken@chromium.org>
Reviewed-by: default avatarKinuko Yasuda <kinuko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#576354}
parent fea3a60a
...@@ -34,11 +34,30 @@ class MockContentBrowserClient final : public ContentBrowserClient { ...@@ -34,11 +34,30 @@ class MockContentBrowserClient final : public ContentBrowserClient {
class DoNotTrackTest : public ContentBrowserTest { class DoNotTrackTest : public ContentBrowserTest {
protected: protected:
void EnableDoNotTrack() { void TearDownOnMainThread() override {
if (original_client_)
SetBrowserClientForTesting(original_client_);
}
// Returns false if we cannot enable do not track. It happens only when
// Android Kitkat or older systems.
// TODO(crbug.com/864403): It seems that we call unsupported Android APIs on
// KitKat when we set a ContentBrowserClient. Don't call such APIs and make
// this test available on KitKat.
bool EnableDoNotTrack() {
#if defined(OS_ANDROID)
int32_t major_version = 0, minor_version = 0, bugfix_version = 0;
base::SysInfo::OperatingSystemVersionNumbers(&major_version, &minor_version,
&bugfix_version);
if (major_version < 5)
return false;
#endif
original_client_ = SetBrowserClientForTesting(&client_);
RendererPreferences* prefs = RendererPreferences* prefs =
shell()->web_contents()->GetMutableRendererPrefs(); shell()->web_contents()->GetMutableRendererPrefs();
EXPECT_FALSE(prefs->enable_do_not_track); EXPECT_FALSE(prefs->enable_do_not_track);
prefs->enable_do_not_track = true; prefs->enable_do_not_track = true;
return true;
} }
void ExpectPageTextEq(const std::string& expected_content) { void ExpectPageTextEq(const std::string& expected_content) {
...@@ -59,6 +78,10 @@ class DoNotTrackTest : public ContentBrowserTest { ...@@ -59,6 +78,10 @@ class DoNotTrackTest : public ContentBrowserTest {
&value)); &value));
return value; return value;
} }
private:
ContentBrowserClient* original_client_ = nullptr;
MockContentBrowserClient client_;
}; };
std::unique_ptr<net::test_server::HttpResponse> CaptureHeaderHandler( std::unique_ptr<net::test_server::HttpResponse> CaptureHeaderHandler(
...@@ -88,7 +111,8 @@ IN_PROC_BROWSER_TEST_F(DoNotTrackTest, NotEnabled) { ...@@ -88,7 +111,8 @@ IN_PROC_BROWSER_TEST_F(DoNotTrackTest, NotEnabled) {
// Checks that the DNT header is sent when the corresponding preference is set. // Checks that the DNT header is sent when the corresponding preference is set.
IN_PROC_BROWSER_TEST_F(DoNotTrackTest, Simple) { IN_PROC_BROWSER_TEST_F(DoNotTrackTest, Simple) {
ASSERT_TRUE(embedded_test_server()->Start()); ASSERT_TRUE(embedded_test_server()->Start());
EnableDoNotTrack(); if (!EnableDoNotTrack())
return;
GURL url = embedded_test_server()->GetURL("/echoheader?DNT"); GURL url = embedded_test_server()->GetURL("/echoheader?DNT");
EXPECT_TRUE(NavigateToURL(shell(), url)); EXPECT_TRUE(NavigateToURL(shell(), url));
ExpectPageTextEq("1"); ExpectPageTextEq("1");
...@@ -100,7 +124,8 @@ IN_PROC_BROWSER_TEST_F(DoNotTrackTest, Redirect) { ...@@ -100,7 +124,8 @@ IN_PROC_BROWSER_TEST_F(DoNotTrackTest, Redirect) {
GURL final_url = embedded_test_server()->GetURL("/echoheader?DNT"); GURL final_url = embedded_test_server()->GetURL("/echoheader?DNT");
GURL url = embedded_test_server()->GetURL(std::string("/server-redirect?") + GURL url = embedded_test_server()->GetURL(std::string("/server-redirect?") +
final_url.spec()); final_url.spec());
EnableDoNotTrack(); if (!EnableDoNotTrack())
return;
// We don't check the result NavigateToURL as it returns true only if the // We don't check the result NavigateToURL as it returns true only if the
// final URL is equal to the passed URL. // final URL is equal to the passed URL.
NavigateToURL(shell(), url); NavigateToURL(shell(), url);
...@@ -111,7 +136,8 @@ IN_PROC_BROWSER_TEST_F(DoNotTrackTest, Redirect) { ...@@ -111,7 +136,8 @@ IN_PROC_BROWSER_TEST_F(DoNotTrackTest, Redirect) {
IN_PROC_BROWSER_TEST_F(DoNotTrackTest, DOMProperty) { IN_PROC_BROWSER_TEST_F(DoNotTrackTest, DOMProperty) {
ASSERT_TRUE(embedded_test_server()->Start()); ASSERT_TRUE(embedded_test_server()->Start());
GURL url = embedded_test_server()->GetURL("/echo"); GURL url = embedded_test_server()->GetURL("/echo");
EnableDoNotTrack(); if (!EnableDoNotTrack())
return;
EXPECT_TRUE(NavigateToURL(shell(), url)); EXPECT_TRUE(NavigateToURL(shell(), url));
EXPECT_EQ("1", GetDOMDoNotTrackProperty()); EXPECT_EQ("1", GetDOMDoNotTrackProperty());
} }
...@@ -124,7 +150,8 @@ IN_PROC_BROWSER_TEST_F(DoNotTrackTest, Worker) { ...@@ -124,7 +150,8 @@ IN_PROC_BROWSER_TEST_F(DoNotTrackTest, Worker) {
embedded_test_server()->RegisterRequestHandler(base::BindRepeating( embedded_test_server()->RegisterRequestHandler(base::BindRepeating(
&CaptureHeaderHandler, "/capture", &header_map, loop.QuitClosure())); &CaptureHeaderHandler, "/capture", &header_map, loop.QuitClosure()));
ASSERT_TRUE(embedded_test_server()->Start()); ASSERT_TRUE(embedded_test_server()->Start());
EnableDoNotTrack(); if (!EnableDoNotTrack())
return;
const GURL url = embedded_test_server()->GetURL( const GURL url = embedded_test_server()->GetURL(
std::string("/workers/create_worker.html?worker_url=/capture")); std::string("/workers/create_worker.html?worker_url=/capture"));
NavigateToURL(shell(), url); NavigateToURL(shell(), url);
...@@ -143,7 +170,8 @@ IN_PROC_BROWSER_TEST_F(DoNotTrackTest, DISABLED_SharedWorker) { ...@@ -143,7 +170,8 @@ IN_PROC_BROWSER_TEST_F(DoNotTrackTest, DISABLED_SharedWorker) {
embedded_test_server()->RegisterRequestHandler(base::BindRepeating( embedded_test_server()->RegisterRequestHandler(base::BindRepeating(
&CaptureHeaderHandler, "/capture", &header_map, loop.QuitClosure())); &CaptureHeaderHandler, "/capture", &header_map, loop.QuitClosure()));
ASSERT_TRUE(embedded_test_server()->Start()); ASSERT_TRUE(embedded_test_server()->Start());
EnableDoNotTrack(); if (!EnableDoNotTrack())
return;
const GURL url = embedded_test_server()->GetURL( const GURL url = embedded_test_server()->GetURL(
std::string("/workers/create_shared_worker.html?worker_url=/capture")); std::string("/workers/create_shared_worker.html?worker_url=/capture"));
NavigateToURL(shell(), url); NavigateToURL(shell(), url);
...@@ -162,7 +190,8 @@ IN_PROC_BROWSER_TEST_F(DoNotTrackTest, DISABLED_ServiceWorker) { ...@@ -162,7 +190,8 @@ IN_PROC_BROWSER_TEST_F(DoNotTrackTest, DISABLED_ServiceWorker) {
embedded_test_server()->RegisterRequestHandler(base::BindRepeating( embedded_test_server()->RegisterRequestHandler(base::BindRepeating(
&CaptureHeaderHandler, "/capture", &header_map, loop.QuitClosure())); &CaptureHeaderHandler, "/capture", &header_map, loop.QuitClosure()));
ASSERT_TRUE(embedded_test_server()->Start()); ASSERT_TRUE(embedded_test_server()->Start());
EnableDoNotTrack(); if (!EnableDoNotTrack())
return;
const GURL url = embedded_test_server()->GetURL(std::string( const GURL url = embedded_test_server()->GetURL(std::string(
"/service_worker/create_service_worker.html?worker_url=/capture")); "/service_worker/create_service_worker.html?worker_url=/capture"));
NavigateToURL(shell(), url); NavigateToURL(shell(), url);
...@@ -176,7 +205,8 @@ IN_PROC_BROWSER_TEST_F(DoNotTrackTest, DISABLED_ServiceWorker) { ...@@ -176,7 +205,8 @@ IN_PROC_BROWSER_TEST_F(DoNotTrackTest, DISABLED_ServiceWorker) {
// worker. // worker.
IN_PROC_BROWSER_TEST_F(DoNotTrackTest, FetchFromWorker) { IN_PROC_BROWSER_TEST_F(DoNotTrackTest, FetchFromWorker) {
ASSERT_TRUE(embedded_test_server()->Start()); ASSERT_TRUE(embedded_test_server()->Start());
EnableDoNotTrack(); if (!EnableDoNotTrack())
return;
const GURL fetch_url = embedded_test_server()->GetURL("/echoheader?DNT"); const GURL fetch_url = embedded_test_server()->GetURL("/echoheader?DNT");
const GURL url = embedded_test_server()->GetURL( const GURL url = embedded_test_server()->GetURL(
std::string("/workers/fetch_from_worker.html?url=") + fetch_url.spec()); std::string("/workers/fetch_from_worker.html?url=") + fetch_url.spec());
...@@ -190,10 +220,17 @@ IN_PROC_BROWSER_TEST_F(DoNotTrackTest, FetchFromWorker) { ...@@ -190,10 +220,17 @@ IN_PROC_BROWSER_TEST_F(DoNotTrackTest, FetchFromWorker) {
} }
// Checks that the DNT header is preserved when fetching from a shared worker. // Checks that the DNT header is preserved when fetching from a shared worker.
// Disabled due to crbug.com/853085. //
IN_PROC_BROWSER_TEST_F(DoNotTrackTest, DISABLED_FetchFromSharedWorker) { // Disabled on Android since a shared worker is not available on Android.
#if defined(OS_ANDROID)
#define MAYBE_FetchFromSharedWorker DISABLED_FetchFromSharedWorker
#else
#define MAYBE_FetchFromSharedWorker FetchFromSharedWorker
#endif
IN_PROC_BROWSER_TEST_F(DoNotTrackTest, MAYBE_FetchFromSharedWorker) {
ASSERT_TRUE(embedded_test_server()->Start()); ASSERT_TRUE(embedded_test_server()->Start());
EnableDoNotTrack(); if (!EnableDoNotTrack())
return;
const GURL fetch_url = embedded_test_server()->GetURL("/echoheader?DNT"); const GURL fetch_url = embedded_test_server()->GetURL("/echoheader?DNT");
const GURL url = embedded_test_server()->GetURL( const GURL url = embedded_test_server()->GetURL(
std::string("/workers/fetch_from_shared_worker.html?url=") + std::string("/workers/fetch_from_shared_worker.html?url=") +
...@@ -209,21 +246,9 @@ IN_PROC_BROWSER_TEST_F(DoNotTrackTest, DISABLED_FetchFromSharedWorker) { ...@@ -209,21 +246,9 @@ IN_PROC_BROWSER_TEST_F(DoNotTrackTest, DISABLED_FetchFromSharedWorker) {
// Checks that the DNT header is preserved when fetching from a service worker. // Checks that the DNT header is preserved when fetching from a service worker.
IN_PROC_BROWSER_TEST_F(DoNotTrackTest, FetchFromServiceWorker) { IN_PROC_BROWSER_TEST_F(DoNotTrackTest, FetchFromServiceWorker) {
#if defined(OS_ANDROID)
// TODO(crbug.com/864403): It seems that we call unsupported Android APIs on
// KitKat when we set a ContentBrowserClient. Don't call such APIs and make
// this test available on KitKat.
int32_t major_version = 0, minor_version = 0, bugfix_version = 0;
base::SysInfo::OperatingSystemVersionNumbers(&major_version, &minor_version,
&bugfix_version);
if (major_version < 5)
return;
#endif
MockContentBrowserClient client;
ContentBrowserClient* original_client = SetBrowserClientForTesting(&client);
ASSERT_TRUE(embedded_test_server()->Start()); ASSERT_TRUE(embedded_test_server()->Start());
EnableDoNotTrack(); if (!EnableDoNotTrack())
return;
const GURL fetch_url = embedded_test_server()->GetURL("/echoheader?DNT"); const GURL fetch_url = embedded_test_server()->GetURL("/echoheader?DNT");
const GURL url = embedded_test_server()->GetURL( const GURL url = embedded_test_server()->GetURL(
std::string("/service_worker/fetch_from_service_worker.html?url=") + std::string("/service_worker/fetch_from_service_worker.html?url=") +
...@@ -235,7 +260,6 @@ IN_PROC_BROWSER_TEST_F(DoNotTrackTest, FetchFromServiceWorker) { ...@@ -235,7 +260,6 @@ IN_PROC_BROWSER_TEST_F(DoNotTrackTest, FetchFromServiceWorker) {
EXPECT_EQ(title, watcher.WaitAndGetTitle()); EXPECT_EQ(title, watcher.WaitAndGetTitle());
ExpectPageTextEq("1"); ExpectPageTextEq("1");
SetBrowserClientForTesting(original_client);
} }
} // namespace } // namespace
......
...@@ -98,6 +98,7 @@ void MockSharedWorkerFactory::CreateSharedWorker( ...@@ -98,6 +98,7 @@ void MockSharedWorkerFactory::CreateSharedWorker(
mojom::SharedWorkerInfoPtr info, mojom::SharedWorkerInfoPtr info,
bool pause_on_start, bool pause_on_start,
const base::UnguessableToken& devtools_worker_token, const base::UnguessableToken& devtools_worker_token,
const RendererPreferences& renderer_preferences,
blink::mojom::WorkerContentSettingsProxyPtr content_settings, blink::mojom::WorkerContentSettingsProxyPtr content_settings,
mojom::ServiceWorkerProviderInfoForSharedWorkerPtr mojom::ServiceWorkerProviderInfoForSharedWorkerPtr
service_worker_provider_info, service_worker_provider_info,
......
...@@ -67,6 +67,7 @@ class MockSharedWorkerFactory : public mojom::SharedWorkerFactory { ...@@ -67,6 +67,7 @@ class MockSharedWorkerFactory : public mojom::SharedWorkerFactory {
mojom::SharedWorkerInfoPtr info, mojom::SharedWorkerInfoPtr info,
bool pause_on_start, bool pause_on_start,
const base::UnguessableToken& devtools_worker_token, const base::UnguessableToken& devtools_worker_token,
const RendererPreferences& renderer_preferences,
blink::mojom::WorkerContentSettingsProxyPtr content_settings, blink::mojom::WorkerContentSettingsProxyPtr content_settings,
mojom::ServiceWorkerProviderInfoForSharedWorkerPtr mojom::ServiceWorkerProviderInfoForSharedWorkerPtr
service_worker_provider_info, service_worker_provider_info,
......
...@@ -141,6 +141,11 @@ void SharedWorkerHost::Start( ...@@ -141,6 +141,11 @@ void SharedWorkerHost::Start(
devtools_handle_ = std::make_unique<ScopedDevToolsHandle>( devtools_handle_ = std::make_unique<ScopedDevToolsHandle>(
this, &pause_on_start, &devtools_worker_token); this, &pause_on_start, &devtools_worker_token);
RendererPreferences renderer_preferences;
GetContentClient()->browser()->UpdateRendererPreferencesForWorker(
RenderProcessHost::FromID(process_id_)->GetBrowserContext(),
&renderer_preferences);
// Set up content settings interface. // Set up content settings interface.
blink::mojom::WorkerContentSettingsProxyPtr content_settings; blink::mojom::WorkerContentSettingsProxyPtr content_settings;
content_settings_ = std::make_unique<SharedWorkerContentSettingsProxyImpl>( content_settings_ = std::make_unique<SharedWorkerContentSettingsProxyImpl>(
...@@ -183,9 +188,9 @@ void SharedWorkerHost::Start( ...@@ -183,9 +188,9 @@ void SharedWorkerHost::Start(
factory_ = std::move(factory); factory_ = std::move(factory);
factory_->CreateSharedWorker( factory_->CreateSharedWorker(
std::move(info), pause_on_start, devtools_worker_token, std::move(info), pause_on_start, devtools_worker_token,
std::move(content_settings), std::move(service_worker_provider_info), renderer_preferences, std::move(content_settings),
std::move(script_loader_factory), std::move(factory_bundle), std::move(service_worker_provider_info), std::move(script_loader_factory),
std::move(host), std::move(worker_request_), std::move(factory_bundle), std::move(host), std::move(worker_request_),
std::move(interface_provider)); std::move(interface_provider));
// Monitor the lifetime of the worker. // Monitor the lifetime of the worker.
......
...@@ -14,6 +14,8 @@ ...@@ -14,6 +14,8 @@
#include "content/browser/shared_worker/shared_worker_connector_impl.h" #include "content/browser/shared_worker/shared_worker_connector_impl.h"
#include "content/browser/shared_worker/shared_worker_instance.h" #include "content/browser/shared_worker/shared_worker_instance.h"
#include "content/browser/shared_worker/shared_worker_service_impl.h" #include "content/browser/shared_worker/shared_worker_service_impl.h"
#include "content/public/test/mock_render_process_host.h"
#include "content/public/test/test_browser_context.h"
#include "content/public/test/test_browser_thread_bundle.h" #include "content/public/test/test_browser_thread_bundle.h"
#include "content/public/test/test_storage_partition.h" #include "content/public/test/test_storage_partition.h"
#include "content/public/test/test_utils.h" #include "content/public/test/test_utils.h"
...@@ -31,7 +33,8 @@ namespace content { ...@@ -31,7 +33,8 @@ namespace content {
class SharedWorkerHostTest : public testing::Test { class SharedWorkerHostTest : public testing::Test {
public: public:
SharedWorkerHostTest() SharedWorkerHostTest()
: service_(&storage_partition_, nullptr /* service_worker_context */) { : mock_render_process_host_(&browser_context_),
service_(&storage_partition_, nullptr /* service_worker_context */) {
storage_partition_.set_network_context(&network_context_); storage_partition_.set_network_context(&network_context_);
} }
...@@ -52,7 +55,7 @@ class SharedWorkerHostTest : public testing::Test { ...@@ -52,7 +55,7 @@ class SharedWorkerHostTest : public testing::Test {
content_security_policy_type, creation_address_space, content_security_policy_type, creation_address_space,
creation_context_type); creation_context_type);
auto host = std::make_unique<SharedWorkerHost>( auto host = std::make_unique<SharedWorkerHost>(
&service_, std::move(instance), 11 /* dummy process_id */); &service_, std::move(instance), mock_render_process_host_.GetID());
auto weak_host = host->AsWeakPtr(); auto weak_host = host->AsWeakPtr();
service_.worker_hosts_.insert(std::move(host)); service_.worker_hosts_.insert(std::move(host));
return weak_host; return weak_host;
...@@ -79,6 +82,8 @@ class SharedWorkerHostTest : public testing::Test { ...@@ -79,6 +82,8 @@ class SharedWorkerHostTest : public testing::Test {
TestBrowserThreadBundle test_browser_thread_bundle_; TestBrowserThreadBundle test_browser_thread_bundle_;
TestStoragePartition storage_partition_; TestStoragePartition storage_partition_;
network::TestNetworkContext network_context_; network::TestNetworkContext network_context_;
TestBrowserContext browser_context_;
MockRenderProcessHost mock_render_process_host_;
SharedWorkerServiceImpl service_; SharedWorkerServiceImpl service_;
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
module content.mojom; module content.mojom;
import "content/common/native_types.mojom";
import "content/common/service_worker/service_worker_provider.mojom"; import "content/common/service_worker/service_worker_provider.mojom";
import "content/common/shared_worker/shared_worker.mojom"; import "content/common/shared_worker/shared_worker.mojom";
import "content/common/shared_worker/shared_worker_host.mojom"; import "content/common/shared_worker/shared_worker_host.mojom";
...@@ -31,6 +32,7 @@ interface SharedWorkerFactory { ...@@ -31,6 +32,7 @@ interface SharedWorkerFactory {
SharedWorkerInfo info, SharedWorkerInfo info,
bool pause_on_start, bool pause_on_start,
mojo_base.mojom.UnguessableToken devtools_worker_token, mojo_base.mojom.UnguessableToken devtools_worker_token,
RendererPreferences renderer_preferences,
blink.mojom.WorkerContentSettingsProxy content_settings, blink.mojom.WorkerContentSettingsProxy content_settings,
// S13nServiceWorker: // S13nServiceWorker:
......
...@@ -194,6 +194,7 @@ EmbeddedSharedWorkerStub::EmbeddedSharedWorkerStub( ...@@ -194,6 +194,7 @@ EmbeddedSharedWorkerStub::EmbeddedSharedWorkerStub(
mojom::SharedWorkerInfoPtr info, mojom::SharedWorkerInfoPtr info,
bool pause_on_start, bool pause_on_start,
const base::UnguessableToken& devtools_worker_token, const base::UnguessableToken& devtools_worker_token,
const RendererPreferences& renderer_preferences,
blink::mojom::WorkerContentSettingsProxyPtr content_settings, blink::mojom::WorkerContentSettingsProxyPtr content_settings,
mojom::ServiceWorkerProviderInfoForSharedWorkerPtr mojom::ServiceWorkerProviderInfoForSharedWorkerPtr
service_worker_provider_info, service_worker_provider_info,
...@@ -206,7 +207,8 @@ EmbeddedSharedWorkerStub::EmbeddedSharedWorkerStub( ...@@ -206,7 +207,8 @@ EmbeddedSharedWorkerStub::EmbeddedSharedWorkerStub(
: binding_(this, std::move(request)), : binding_(this, std::move(request)),
host_(std::move(host)), host_(std::move(host)),
name_(info->name), name_(info->name),
url_(info->url) { url_(info->url),
renderer_preferences_(renderer_preferences) {
impl_ = blink::WebSharedWorker::Create(this); impl_ = blink::WebSharedWorker::Create(this);
if (pause_on_start) { if (pause_on_start) {
// Pause worker context when it starts and wait until either DevTools client // Pause worker context when it starts and wait until either DevTools client
...@@ -375,11 +377,8 @@ EmbeddedSharedWorkerStub::CreateWorkerFetchContext( ...@@ -375,11 +377,8 @@ EmbeddedSharedWorkerStub::CreateWorkerFetchContext(
std::unique_ptr<network::SharedURLLoaderFactoryInfo> fallback_factory = std::unique_ptr<network::SharedURLLoaderFactoryInfo> fallback_factory =
loader_factories_->Clone(); loader_factories_->Clone();
// TODO(crbug.com/853085): Send the preference from the browser process.
RendererPreferences renderer_preferences;
auto worker_fetch_context = std::make_unique<WebWorkerFetchContextImpl>( auto worker_fetch_context = std::make_unique<WebWorkerFetchContextImpl>(
std::move(renderer_preferences), std::move(worker_client_request), std::move(renderer_preferences_), std::move(worker_client_request),
std::move(worker_client_registry_ptr_info), std::move(worker_client_registry_ptr_info),
std::move(container_host_ptr_info), loader_factories_->Clone(), std::move(container_host_ptr_info), loader_factories_->Clone(),
std::move(fallback_factory), std::move(fallback_factory),
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
#include "content/common/shared_worker/shared_worker.mojom.h" #include "content/common/shared_worker/shared_worker.mojom.h"
#include "content/common/shared_worker/shared_worker_host.mojom.h" #include "content/common/shared_worker/shared_worker_host.mojom.h"
#include "content/common/shared_worker/shared_worker_info.mojom.h" #include "content/common/shared_worker/shared_worker_info.mojom.h"
#include "content/public/common/renderer_preferences.h"
#include "ipc/ipc_listener.h" #include "ipc/ipc_listener.h"
#include "mojo/public/cpp/bindings/binding.h" #include "mojo/public/cpp/bindings/binding.h"
#include "services/network/public/mojom/url_loader_factory.mojom.h" #include "services/network/public/mojom/url_loader_factory.mojom.h"
...@@ -59,6 +60,7 @@ class EmbeddedSharedWorkerStub : public blink::WebSharedWorkerClient, ...@@ -59,6 +60,7 @@ class EmbeddedSharedWorkerStub : public blink::WebSharedWorkerClient,
mojom::SharedWorkerInfoPtr info, mojom::SharedWorkerInfoPtr info,
bool pause_on_start, bool pause_on_start,
const base::UnguessableToken& devtools_worker_token, const base::UnguessableToken& devtools_worker_token,
const RendererPreferences& renderer_preferences,
blink::mojom::WorkerContentSettingsProxyPtr content_settings, blink::mojom::WorkerContentSettingsProxyPtr content_settings,
mojom::ServiceWorkerProviderInfoForSharedWorkerPtr mojom::ServiceWorkerProviderInfoForSharedWorkerPtr
service_worker_provider_info, service_worker_provider_info,
...@@ -106,6 +108,7 @@ class EmbeddedSharedWorkerStub : public blink::WebSharedWorkerClient, ...@@ -106,6 +108,7 @@ class EmbeddedSharedWorkerStub : public blink::WebSharedWorkerClient,
const std::string name_; const std::string name_;
bool running_ = false; bool running_ = false;
GURL url_; GURL url_;
RendererPreferences renderer_preferences_;
std::unique_ptr<blink::WebSharedWorker> impl_; std::unique_ptr<blink::WebSharedWorker> impl_;
using PendingChannel = using PendingChannel =
......
...@@ -24,6 +24,7 @@ void SharedWorkerFactoryImpl::CreateSharedWorker( ...@@ -24,6 +24,7 @@ void SharedWorkerFactoryImpl::CreateSharedWorker(
mojom::SharedWorkerInfoPtr info, mojom::SharedWorkerInfoPtr info,
bool pause_on_start, bool pause_on_start,
const base::UnguessableToken& devtools_worker_token, const base::UnguessableToken& devtools_worker_token,
const RendererPreferences& renderer_preferences,
blink::mojom::WorkerContentSettingsProxyPtr content_settings, blink::mojom::WorkerContentSettingsProxyPtr content_settings,
mojom::ServiceWorkerProviderInfoForSharedWorkerPtr mojom::ServiceWorkerProviderInfoForSharedWorkerPtr
service_worker_provider_info, service_worker_provider_info,
...@@ -36,7 +37,8 @@ void SharedWorkerFactoryImpl::CreateSharedWorker( ...@@ -36,7 +37,8 @@ void SharedWorkerFactoryImpl::CreateSharedWorker(
// Bound to the lifetime of the underlying blink::WebSharedWorker instance. // Bound to the lifetime of the underlying blink::WebSharedWorker instance.
new EmbeddedSharedWorkerStub( new EmbeddedSharedWorkerStub(
std::move(info), pause_on_start, devtools_worker_token, std::move(info), pause_on_start, devtools_worker_token,
std::move(content_settings), std::move(service_worker_provider_info), renderer_preferences, std::move(content_settings),
std::move(service_worker_provider_info),
std::move(script_loader_factory_ptr_info), std::move(subresource_loaders), std::move(script_loader_factory_ptr_info), std::move(subresource_loaders),
std::move(host), std::move(request), std::move(interface_provider)); std::move(host), std::move(request), std::move(interface_provider));
} }
......
...@@ -25,6 +25,7 @@ class SharedWorkerFactoryImpl : public mojom::SharedWorkerFactory { ...@@ -25,6 +25,7 @@ class SharedWorkerFactoryImpl : public mojom::SharedWorkerFactory {
mojom::SharedWorkerInfoPtr info, mojom::SharedWorkerInfoPtr info,
bool pause_on_start, bool pause_on_start,
const base::UnguessableToken& devtools_worker_token, const base::UnguessableToken& devtools_worker_token,
const RendererPreferences& renderer_preferences,
blink::mojom::WorkerContentSettingsProxyPtr content_settings, blink::mojom::WorkerContentSettingsProxyPtr content_settings,
mojom::ServiceWorkerProviderInfoForSharedWorkerPtr mojom::ServiceWorkerProviderInfoForSharedWorkerPtr
service_worker_provider_info, service_worker_provider_info,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment