summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc')
-rw-r--r--chromium/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc39
1 files changed, 24 insertions, 15 deletions
diff --git a/chromium/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc b/chromium/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc
index 955bd663b4f..bcd8d6e96d8 100644
--- a/chromium/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc
+++ b/chromium/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc
@@ -32,7 +32,6 @@
#include <memory>
#include "base/feature_list.h"
-#include "services/metrics/public/cpp/ukm_source_id.h"
#include "third_party/blink/public/common/features.h"
#include "third_party/blink/public/common/loader/worker_main_script_load_parameters.h"
#include "third_party/blink/public/mojom/appcache/appcache.mojom-blink.h"
@@ -66,7 +65,8 @@ DedicatedWorkerGlobalScope* DedicatedWorkerGlobalScope::Create(
std::unique_ptr<GlobalScopeCreationParams> creation_params,
DedicatedWorkerThread* thread,
base::TimeTicks time_origin,
- ukm::SourceId ukm_source_id) {
+ mojo::PendingRemote<mojom::blink::DedicatedWorkerHost>
+ dedicated_worker_host) {
std::unique_ptr<Vector<String>> outside_origin_trial_tokens =
std::move(creation_params->origin_trial_tokens);
BeginFrameProviderParams begin_frame_provider_params =
@@ -83,7 +83,8 @@ DedicatedWorkerGlobalScope* DedicatedWorkerGlobalScope::Create(
auto* global_scope = MakeGarbageCollected<DedicatedWorkerGlobalScope>(
std::move(creation_params), thread, time_origin,
std::move(outside_origin_trial_tokens), begin_frame_provider_params,
- ukm_source_id, parent_cross_origin_isolated_capability);
+ parent_cross_origin_isolated_capability,
+ std::move(dedicated_worker_host));
if (global_scope->IsOffMainThreadScriptFetchDisabled()) {
// Legacy on-the-main-thread worker script fetch (to be removed):
@@ -95,7 +96,8 @@ DedicatedWorkerGlobalScope* DedicatedWorkerGlobalScope::Create(
// have its own appcache and instead depends on the parent frame's one.
global_scope->Initialize(
response_script_url, response_referrer_policy, *response_address_space,
- Vector<CSPHeaderAndType>(), nullptr /* response_origin_trial_tokens */,
+ Vector<network::mojom::blink::ContentSecurityPolicyPtr>(),
+ nullptr /* response_origin_trial_tokens */,
mojom::blink::kAppCacheNoCacheId);
return global_scope;
} else {
@@ -127,16 +129,17 @@ DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope(
base::TimeTicks time_origin,
std::unique_ptr<Vector<String>> outside_origin_trial_tokens,
const BeginFrameProviderParams& begin_frame_provider_params,
- ukm::SourceId ukm_source_id,
- bool parent_cross_origin_isolated_capability)
+ bool parent_cross_origin_isolated_capability,
+ mojo::PendingRemote<mojom::blink::DedicatedWorkerHost>
+ dedicated_worker_host)
: DedicatedWorkerGlobalScope(
ParseCreationParams(std::move(creation_params)),
thread,
time_origin,
std::move(outside_origin_trial_tokens),
begin_frame_provider_params,
- ukm_source_id,
- parent_cross_origin_isolated_capability) {}
+ parent_cross_origin_isolated_capability,
+ std::move(dedicated_worker_host)) {}
DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope(
ParsedCreationParams parsed_creation_params,
@@ -144,12 +147,12 @@ DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope(
base::TimeTicks time_origin,
std::unique_ptr<Vector<String>> outside_origin_trial_tokens,
const BeginFrameProviderParams& begin_frame_provider_params,
- ukm::SourceId ukm_source_id,
- bool parent_cross_origin_isolated_capability)
+ bool parent_cross_origin_isolated_capability,
+ mojo::PendingRemote<mojom::blink::DedicatedWorkerHost>
+ dedicated_worker_host)
: WorkerGlobalScope(std::move(parsed_creation_params.creation_params),
thread,
- time_origin,
- ukm_source_id),
+ time_origin),
token_(thread->WorkerObjectProxy().token()),
parent_token_(parsed_creation_params.parent_context_token),
cross_origin_isolated_capability_(Agent::IsCrossOriginIsolated()),
@@ -168,6 +171,9 @@ DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope(
ReadyToRunWorkerScript();
// Inherit the outside's origin trial tokens.
OriginTrialContext::AddTokens(this, outside_origin_trial_tokens.get());
+
+ dedicated_worker_host_.Bind(std::move(dedicated_worker_host),
+ GetTaskRunner(TaskType::kInternalDefault));
}
DedicatedWorkerGlobalScope::~DedicatedWorkerGlobalScope() = default;
@@ -181,7 +187,8 @@ void DedicatedWorkerGlobalScope::Initialize(
const KURL& response_url,
network::mojom::ReferrerPolicy response_referrer_policy,
network::mojom::IPAddressSpace response_address_space,
- const Vector<CSPHeaderAndType>& /* response_csp_headers */,
+ Vector<network::mojom::blink::
+ ContentSecurityPolicyPtr> /* response_csp_headers */,
const Vector<String>* /* response_origin_trial_tokens */,
int64_t appcache_id) {
// Step 14.3. "Set worker global scope's url to response's url."
@@ -204,7 +211,8 @@ void DedicatedWorkerGlobalScope::Initialize(
// response CSP headers. These should be called after SetAddressSpace() to
// correctly override the address space by the "treat-as-public-address" CSP
// directive.
- InitContentSecurityPolicyFromVector(OutsideContentSecurityPolicyHeaders());
+ InitContentSecurityPolicyFromVector(
+ mojo::Clone(OutsideContentSecurityPolicies()));
BindContentSecurityPolicyToExecutionContext();
// This should be called after OriginTrialContext::AddTokens() to install
@@ -399,7 +407,7 @@ void DedicatedWorkerGlobalScope::DidFetchClassicScript(
// origin trial tokens in DedicatedWorkerGlobalScope's constructor.
Initialize(classic_script_loader->ResponseURL(), response_referrer_policy,
classic_script_loader->ResponseAddressSpace(),
- Vector<CSPHeaderAndType>(),
+ Vector<network::mojom::blink::ContentSecurityPolicyPtr>(),
nullptr /* response_origin_trial_tokens */,
classic_script_loader->AppCacheID());
@@ -437,6 +445,7 @@ DedicatedWorkerObjectProxy& DedicatedWorkerGlobalScope::WorkerObjectProxy()
}
void DedicatedWorkerGlobalScope::Trace(Visitor* visitor) const {
+ visitor->Trace(dedicated_worker_host_);
visitor->Trace(animation_frame_provider_);
WorkerGlobalScope::Trace(visitor);
}