Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • BC/public/external/qt/qtwebengine-chromium
Show changes
Commits on Source (7)
Showing with 97 additions and 38 deletions
...@@ -38,20 +38,22 @@ void LogKeyboardLockMethodCalled(KeyboardLockMethods method) { ...@@ -38,20 +38,22 @@ void LogKeyboardLockMethodCalled(KeyboardLockMethods method) {
} // namespace } // namespace
KeyboardLockServiceImpl::KeyboardLockServiceImpl( KeyboardLockServiceImpl::KeyboardLockServiceImpl(
RenderFrameHost* render_frame_host) RenderFrameHost* render_frame_host,
: render_frame_host_(static_cast<RenderFrameHostImpl*>(render_frame_host)) { blink::mojom::KeyboardLockServiceRequest request)
: FrameServiceBase(render_frame_host, std::move(request)),
render_frame_host_(static_cast<RenderFrameHostImpl*>(render_frame_host)) {
DCHECK(render_frame_host_); DCHECK(render_frame_host_);
} }
KeyboardLockServiceImpl::~KeyboardLockServiceImpl() = default;
// static // static
void KeyboardLockServiceImpl::CreateMojoService( void KeyboardLockServiceImpl::CreateMojoService(
RenderFrameHost* render_frame_host, RenderFrameHost* render_frame_host,
blink::mojom::KeyboardLockServiceRequest request) { blink::mojom::KeyboardLockServiceRequest request) {
mojo::MakeStrongBinding( DCHECK(render_frame_host);
std::make_unique<KeyboardLockServiceImpl>(render_frame_host),
std::move(request)); // The object is bound to the lifetime of |render_frame_host| and the mojo
// connection. See FrameServiceBase for details.
new KeyboardLockServiceImpl(render_frame_host, std::move(request));
} }
void KeyboardLockServiceImpl::RequestKeyboardLock( void KeyboardLockServiceImpl::RequestKeyboardLock(
...@@ -131,4 +133,6 @@ void KeyboardLockServiceImpl::GetKeyboardLayoutMap( ...@@ -131,4 +133,6 @@ void KeyboardLockServiceImpl::GetKeyboardLayoutMap(
std::move(callback).Run(std::move(response)); std::move(callback).Run(std::move(response));
} }
KeyboardLockServiceImpl::~KeyboardLockServiceImpl() = default;
} // namespace content } // namespace content
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include <vector> #include <vector>
#include "content/common/content_export.h" #include "content/common/content_export.h"
#include "content/public/browser/frame_service_base.h"
#include "mojo/public/cpp/bindings/strong_binding.h" #include "mojo/public/cpp/bindings/strong_binding.h"
#include "third_party/blink/public/platform/modules/keyboard_lock/keyboard_lock.mojom.h" #include "third_party/blink/public/platform/modules/keyboard_lock/keyboard_lock.mojom.h"
...@@ -17,11 +18,11 @@ namespace content { ...@@ -17,11 +18,11 @@ namespace content {
class RenderFrameHost; class RenderFrameHost;
class RenderFrameHostImpl; class RenderFrameHostImpl;
class CONTENT_EXPORT KeyboardLockServiceImpl class CONTENT_EXPORT KeyboardLockServiceImpl final
: public blink::mojom::KeyboardLockService { : public FrameServiceBase<blink::mojom::KeyboardLockService> {
public: public:
explicit KeyboardLockServiceImpl(RenderFrameHost* render_frame_host); KeyboardLockServiceImpl(RenderFrameHost* render_frame_host,
~KeyboardLockServiceImpl() override; blink::mojom::KeyboardLockServiceRequest request);
static void CreateMojoService( static void CreateMojoService(
RenderFrameHost* render_frame_host, RenderFrameHost* render_frame_host,
...@@ -34,6 +35,9 @@ class CONTENT_EXPORT KeyboardLockServiceImpl ...@@ -34,6 +35,9 @@ class CONTENT_EXPORT KeyboardLockServiceImpl
void GetKeyboardLayoutMap(GetKeyboardLayoutMapCallback callback) override; void GetKeyboardLayoutMap(GetKeyboardLayoutMapCallback callback) override;
private: private:
// |this| can only be destroyed by FrameServiceBase.
~KeyboardLockServiceImpl() override;
RenderFrameHostImpl* const render_frame_host_; RenderFrameHostImpl* const render_frame_host_;
}; };
......
...@@ -702,6 +702,12 @@ class CORE_EXPORT Document : public ContainerNode, ...@@ -702,6 +702,12 @@ class CORE_EXPORT Document : public ContainerNode,
String UserAgent() const final; String UserAgent() const final;
void DisableEval(const String& error_message) final; void DisableEval(const String& error_message) final;
// TODO(https://crbug.com/880986): Implement Document's HTTPS state in more
// spec-conformant way.
HttpsState GetHttpsState() const final {
return CalculateHttpsState(GetSecurityOrigin());
}
CSSStyleSheet& ElementSheet(); CSSStyleSheet& ElementSheet();
virtual DocumentParser* CreateParser(); virtual DocumentParser* CreateParser();
......
...@@ -37,6 +37,7 @@ ...@@ -37,6 +37,7 @@
#include "third_party/blink/renderer/core/dom/context_lifecycle_observer.h" #include "third_party/blink/renderer/core/dom/context_lifecycle_observer.h"
#include "third_party/blink/renderer/platform/heap/handle.h" #include "third_party/blink/renderer/platform/heap/handle.h"
#include "third_party/blink/renderer/platform/loader/fetch/access_control_status.h" #include "third_party/blink/renderer/platform/loader/fetch/access_control_status.h"
#include "third_party/blink/renderer/platform/loader/fetch/https_state.h"
#include "third_party/blink/renderer/platform/supplementable.h" #include "third_party/blink/renderer/platform/supplementable.h"
#include "third_party/blink/renderer/platform/weborigin/referrer_policy.h" #include "third_party/blink/renderer/platform/weborigin/referrer_policy.h"
#include "v8/include/v8.h" #include "v8/include/v8.h"
...@@ -143,6 +144,8 @@ class CORE_EXPORT ExecutionContext : public ContextLifecycleNotifier, ...@@ -143,6 +144,8 @@ class CORE_EXPORT ExecutionContext : public ContextLifecycleNotifier,
virtual LocalDOMWindow* ExecutingWindow() const { return nullptr; } virtual LocalDOMWindow* ExecutingWindow() const { return nullptr; }
virtual String UserAgent() const = 0; virtual String UserAgent() const = 0;
virtual HttpsState GetHttpsState() const = 0;
// Gets the DOMTimerCoordinator which maintains the "active timer // Gets the DOMTimerCoordinator which maintains the "active timer
// list" of tasks created by setTimeout and setInterval. The // list" of tasks created by setTimeout and setInterval. The
// DOMTimerCoordinator is owned by the ExecutionContext and should // DOMTimerCoordinator is owned by the ExecutionContext and should
......
...@@ -340,7 +340,8 @@ void WebSharedWorkerImpl::ContinueOnScriptLoaderFinished() { ...@@ -340,7 +340,8 @@ void WebSharedWorkerImpl::ContinueOnScriptLoaderFinished() {
content_security_policy ? content_security_policy->Headers() content_security_policy ? content_security_policy->Headers()
: Vector<CSPHeaderAndType>(), : Vector<CSPHeaderAndType>(),
referrer_policy, starter_origin, starter_secure_context, referrer_policy, starter_origin, starter_secure_context,
worker_clients, main_script_loader_->ResponseAddressSpace(), document->GetHttpsState(), worker_clients,
main_script_loader_->ResponseAddressSpace(),
main_script_loader_->OriginTrialTokens(), devtools_worker_token_, main_script_loader_->OriginTrialTokens(), devtools_worker_token_,
std::move(worker_settings), kV8CacheOptionsDefault, std::move(worker_settings), kV8CacheOptionsDefault,
nullptr /* worklet_module_response_map */, nullptr /* worklet_module_response_map */,
......
...@@ -45,8 +45,8 @@ LayoutWorkletGlobalScopeProxy::LayoutWorkletGlobalScopeProxy( ...@@ -45,8 +45,8 @@ LayoutWorkletGlobalScopeProxy::LayoutWorkletGlobalScopeProxy(
document->Url(), ScriptType::kModule, document->UserAgent(), document->Url(), ScriptType::kModule, document->UserAgent(),
document->GetContentSecurityPolicy()->Headers(), document->GetContentSecurityPolicy()->Headers(),
document->GetReferrerPolicy(), document->GetSecurityOrigin(), document->GetReferrerPolicy(), document->GetSecurityOrigin(),
document->IsSecureContext(), worker_clients, document->AddressSpace(), document->IsSecureContext(), document->GetHttpsState(), worker_clients,
OriginTrialContext::GetTokens(document).get(), document->AddressSpace(), OriginTrialContext::GetTokens(document).get(),
base::UnguessableToken::Create(), nullptr /* worker_settings */, base::UnguessableToken::Create(), nullptr /* worker_settings */,
kV8CacheOptionsDefault, module_responses_map); kV8CacheOptionsDefault, module_responses_map);
global_scope_ = LayoutWorkletGlobalScope::Create( global_scope_ = LayoutWorkletGlobalScope::Create(
......
...@@ -209,17 +209,11 @@ bool RequestIsSubframeSubresource( ...@@ -209,17 +209,11 @@ bool RequestIsSubframeSubresource(
frame_type != network::mojom::RequestContextFrameType::kNested); frame_type != network::mojom::RequestContextFrameType::kNested);
} }
// static static bool IsInsecureUrl(const KURL& url) {
bool MixedContentChecker::IsMixedContent(const SecurityOrigin* security_origin,
const KURL& url) {
if (!SchemeRegistry::ShouldTreatURLSchemeAsRestrictingMixedContent(
security_origin->Protocol()))
return false;
// |url| is mixed content if its origin is not potentially trustworthy nor // |url| is mixed content if its origin is not potentially trustworthy nor
// secure. We do a quick check against `SecurityOrigin::isSecure` to catch // secure. We do a quick check against `SecurityOrigin::IsSecure` to catch
// things like `about:blank`, which cannot be sanely passed into // things like `about:blank`, which cannot be sanely passed into
// `SecurityOrigin::create` (as their origin depends on their context). // `SecurityOrigin::Create` (as their origin depends on their context).
// blob: and filesystem: URLs never hit the network, and access is restricted // blob: and filesystem: URLs never hit the network, and access is restricted
// to same-origin contexts, so they are not blocked either. // to same-origin contexts, so they are not blocked either.
bool is_allowed = url.ProtocolIs("blob") || url.ProtocolIs("filesystem") || bool is_allowed = url.ProtocolIs("blob") || url.ProtocolIs("filesystem") ||
...@@ -228,6 +222,29 @@ bool MixedContentChecker::IsMixedContent(const SecurityOrigin* security_origin, ...@@ -228,6 +222,29 @@ bool MixedContentChecker::IsMixedContent(const SecurityOrigin* security_origin,
return !is_allowed; return !is_allowed;
} }
// static
bool MixedContentChecker::IsMixedContent(const SecurityOrigin* security_origin,
const KURL& url) {
if (!SchemeRegistry::ShouldTreatURLSchemeAsRestrictingMixedContent(
security_origin->Protocol()))
return false;
return IsInsecureUrl(url);
}
// static
bool MixedContentChecker::IsMixedContent(
const FetchClientSettingsObjectImpl& settings,
const KURL& url) {
switch (settings.GetHttpsState()) {
case HttpsState::kNone:
return false;
case HttpsState::kModern:
return IsInsecureUrl(url);
}
}
// static // static
Frame* MixedContentChecker::InWhichFrameIsContentMixed( Frame* MixedContentChecker::InWhichFrameIsContentMixed(
Frame* frame, Frame* frame,
...@@ -457,7 +474,7 @@ bool MixedContentChecker::ShouldBlockFetchOnWorker( ...@@ -457,7 +474,7 @@ bool MixedContentChecker::ShouldBlockFetchOnWorker(
SecurityViolationReportingPolicy reporting_policy, SecurityViolationReportingPolicy reporting_policy,
bool is_worklet_global_scope) { bool is_worklet_global_scope) {
if (!MixedContentChecker::IsMixedContent( if (!MixedContentChecker::IsMixedContent(
worker_fetch_context.GetSecurityOrigin(), url)) { *worker_fetch_context.GetFetchClientSettingsObject(), url)) {
return false; return false;
} }
...@@ -563,7 +580,7 @@ bool MixedContentChecker::IsWebSocketAllowed( ...@@ -563,7 +580,7 @@ bool MixedContentChecker::IsWebSocketAllowed(
const WorkerFetchContext& worker_fetch_context, const WorkerFetchContext& worker_fetch_context,
const KURL& url) { const KURL& url) {
if (!MixedContentChecker::IsMixedContent( if (!MixedContentChecker::IsMixedContent(
worker_fetch_context.GetSecurityOrigin(), url)) { *worker_fetch_context.GetFetchClientSettingsObject(), url)) {
return true; return true;
} }
......
...@@ -44,6 +44,7 @@ ...@@ -44,6 +44,7 @@
namespace blink { namespace blink {
class ConsoleMessage; class ConsoleMessage;
class FetchClientSettingsObjectImpl;
class Frame; class Frame;
class FrameFetchContext; class FrameFetchContext;
class LocalFrame; class LocalFrame;
...@@ -86,6 +87,7 @@ class CORE_EXPORT MixedContentChecker final { ...@@ -86,6 +87,7 @@ class CORE_EXPORT MixedContentChecker final {
static bool IsWebSocketAllowed(const WorkerFetchContext&, const KURL&); static bool IsWebSocketAllowed(const WorkerFetchContext&, const KURL&);
static bool IsMixedContent(const SecurityOrigin*, const KURL&); static bool IsMixedContent(const SecurityOrigin*, const KURL&);
static bool IsMixedContent(const FetchClientSettingsObjectImpl&, const KURL&);
static bool IsMixedFormAction(LocalFrame*, static bool IsMixedFormAction(LocalFrame*,
const KURL&, const KURL&,
SecurityViolationReportingPolicy = SecurityViolationReportingPolicy =
......
...@@ -186,7 +186,8 @@ void ModuleScriptLoaderTest::InitializeForWorklet() { ...@@ -186,7 +186,8 @@ void ModuleScriptLoaderTest::InitializeForWorklet() {
GetDocument().Url(), ScriptType::kModule, GetDocument().UserAgent(), GetDocument().Url(), ScriptType::kModule, GetDocument().UserAgent(),
Vector<CSPHeaderAndType>(), GetDocument().GetReferrerPolicy(), Vector<CSPHeaderAndType>(), GetDocument().GetReferrerPolicy(),
GetDocument().GetSecurityOrigin(), GetDocument().IsSecureContext(), GetDocument().GetSecurityOrigin(), GetDocument().IsSecureContext(),
nullptr /* worker_clients */, GetDocument().AddressSpace(), GetDocument().GetHttpsState(), nullptr /* worker_clients */,
GetDocument().AddressSpace(),
OriginTrialContext::GetTokens(&GetDocument()).get(), OriginTrialContext::GetTokens(&GetDocument()).get(),
base::UnguessableToken::Create(), nullptr /* worker_settings */, base::UnguessableToken::Create(), nullptr /* worker_settings */,
kV8CacheOptionsDefault, new WorkletModuleResponsesMap); kV8CacheOptionsDefault, new WorkletModuleResponsesMap);
......
...@@ -107,7 +107,7 @@ WorkerFetchContext::WorkerFetchContext( ...@@ -107,7 +107,7 @@ WorkerFetchContext::WorkerFetchContext(
SubresourceFilter::Create(global_scope, std::move(web_filter)); SubresourceFilter::Create(global_scope, std::move(web_filter));
} }
} }
const FetchClientSettingsObject* const FetchClientSettingsObjectImpl*
WorkerFetchContext::GetFetchClientSettingsObject() const { WorkerFetchContext::GetFetchClientSettingsObject() const {
return fetch_client_settings_object_.Get(); return fetch_client_settings_object_.Get();
} }
...@@ -292,8 +292,6 @@ void WorkerFetchContext::PrepareRequest(ResourceRequest& request, ...@@ -292,8 +292,6 @@ void WorkerFetchContext::PrepareRequest(ResourceRequest& request,
DCHECK(!user_agent.IsNull()); DCHECK(!user_agent.IsNull());
request.SetHTTPUserAgent(AtomicString(user_agent)); request.SetHTTPUserAgent(AtomicString(user_agent));
FrameLoader::UpgradeInsecureRequest(request, global_scope_);
WrappedResourceRequest webreq(request); WrappedResourceRequest webreq(request);
web_context_->WillSendRequest(webreq); web_context_->WillSendRequest(webreq);
} }
...@@ -390,6 +388,7 @@ void WorkerFetchContext::PopulateResourceRequest( ...@@ -390,6 +388,7 @@ void WorkerFetchContext::PopulateResourceRequest(
const ClientHintsPreferences& hints_preferences, const ClientHintsPreferences& hints_preferences,
const FetchParameters::ResourceWidth& resource_width, const FetchParameters::ResourceWidth& resource_width,
ResourceRequest& out_request) { ResourceRequest& out_request) {
FrameLoader::UpgradeInsecureRequest(out_request, global_scope_);
SetFirstPartyCookieAndRequestorOrigin(out_request); SetFirstPartyCookieAndRequestorOrigin(out_request);
} }
......
...@@ -37,7 +37,7 @@ class WorkerFetchContext final : public BaseFetchContext { ...@@ -37,7 +37,7 @@ class WorkerFetchContext final : public BaseFetchContext {
~WorkerFetchContext() override; ~WorkerFetchContext() override;
// BaseFetchContext implementation: // BaseFetchContext implementation:
const FetchClientSettingsObject* GetFetchClientSettingsObject() const FetchClientSettingsObjectImpl* GetFetchClientSettingsObject()
const override; const override;
KURL GetSiteForCookies() const override; KURL GetSiteForCookies() const override;
SubresourceFilter* GetSubresourceFilter() const override; SubresourceFilter* GetSubresourceFilter() const override;
......
...@@ -34,6 +34,11 @@ const String FetchClientSettingsObjectImpl::GetOutgoingReferrer() const { ...@@ -34,6 +34,11 @@ const String FetchClientSettingsObjectImpl::GetOutgoingReferrer() const {
return execution_context_->OutgoingReferrer(); return execution_context_->OutgoingReferrer();
} }
HttpsState FetchClientSettingsObjectImpl::GetHttpsState() const {
DCHECK(execution_context_->IsContextThread());
return execution_context_->GetHttpsState();
}
void FetchClientSettingsObjectImpl::Trace(Visitor* visitor) { void FetchClientSettingsObjectImpl::Trace(Visitor* visitor) {
visitor->Trace(execution_context_); visitor->Trace(execution_context_);
FetchClientSettingsObject::Trace(visitor); FetchClientSettingsObject::Trace(visitor);
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include "third_party/blink/renderer/core/script/fetch_client_settings_object.h" #include "third_party/blink/renderer/core/script/fetch_client_settings_object.h"
#include "third_party/blink/renderer/platform/cross_thread_copier.h" #include "third_party/blink/renderer/platform/cross_thread_copier.h"
#include "third_party/blink/renderer/platform/heap/member.h" #include "third_party/blink/renderer/platform/heap/member.h"
#include "third_party/blink/renderer/platform/loader/fetch/https_state.h"
#include "third_party/blink/renderer/platform/weborigin/kurl.h" #include "third_party/blink/renderer/platform/weborigin/kurl.h"
#include "third_party/blink/renderer/platform/weborigin/referrer_policy.h" #include "third_party/blink/renderer/platform/weborigin/referrer_policy.h"
#include "third_party/blink/renderer/platform/weborigin/security_origin.h" #include "third_party/blink/renderer/platform/weborigin/security_origin.h"
...@@ -35,6 +36,8 @@ class CORE_EXPORT FetchClientSettingsObjectImpl final ...@@ -35,6 +36,8 @@ class CORE_EXPORT FetchClientSettingsObjectImpl final
ReferrerPolicy GetReferrerPolicy() const override; ReferrerPolicy GetReferrerPolicy() const override;
const String GetOutgoingReferrer() const override; const String GetOutgoingReferrer() const override;
HttpsState GetHttpsState() const;
void Trace(Visitor* visitor) override; void Trace(Visitor* visitor) override;
private: private:
......
...@@ -34,6 +34,10 @@ class NullExecutionContext ...@@ -34,6 +34,10 @@ class NullExecutionContext
void DisableEval(const String&) override {} void DisableEval(const String&) override {}
String UserAgent() const override { return String(); } String UserAgent() const override { return String(); }
HttpsState GetHttpsState() const override {
return CalculateHttpsState(GetSecurityOrigin());
}
EventTarget* ErrorEventTarget() override { return nullptr; } EventTarget* ErrorEventTarget() override { return nullptr; }
bool TasksNeedPause() override { return tasks_need_pause_; } bool TasksNeedPause() override { return tasks_need_pause_; }
......
...@@ -307,7 +307,8 @@ DedicatedWorker::CreateGlobalScopeCreationParams() { ...@@ -307,7 +307,8 @@ DedicatedWorker::CreateGlobalScopeCreationParams() {
script_url_, script_type, GetExecutionContext()->UserAgent(), script_url_, script_type, GetExecutionContext()->UserAgent(),
GetExecutionContext()->GetContentSecurityPolicy()->Headers(), GetExecutionContext()->GetContentSecurityPolicy()->Headers(),
kReferrerPolicyDefault, GetExecutionContext()->GetSecurityOrigin(), kReferrerPolicyDefault, GetExecutionContext()->GetSecurityOrigin(),
GetExecutionContext()->IsSecureContext(), CreateWorkerClients(), GetExecutionContext()->IsSecureContext(),
GetExecutionContext()->GetHttpsState(), CreateWorkerClients(),
GetExecutionContext()->GetSecurityContext().AddressSpace(), GetExecutionContext()->GetSecurityContext().AddressSpace(),
OriginTrialContext::GetTokens(GetExecutionContext()).get(), OriginTrialContext::GetTokens(GetExecutionContext()).get(),
devtools_worker_token, std::move(settings), kV8CacheOptionsDefault, devtools_worker_token, std::move(settings), kV8CacheOptionsDefault,
......
...@@ -133,10 +133,12 @@ class DedicatedWorkerMessagingProxyForTest ...@@ -133,10 +133,12 @@ class DedicatedWorkerMessagingProxyForTest
std::make_unique<GlobalScopeCreationParams>( std::make_unique<GlobalScopeCreationParams>(
script_url, ScriptType::kClassic, "fake user agent", headers, script_url, ScriptType::kClassic, "fake user agent", headers,
kReferrerPolicyDefault, security_origin_.get(), kReferrerPolicyDefault, security_origin_.get(),
false /* starter_secure_context */, nullptr /* worker_clients */, false /* starter_secure_context */,
mojom::IPAddressSpace::kLocal, nullptr /* origin_trial_tokens */, CalculateHttpsState(security_origin_.get()),
base::UnguessableToken::Create(), std::move(worker_settings), nullptr /* worker_clients */, mojom::IPAddressSpace::kLocal,
kV8CacheOptionsDefault, nullptr /* worklet_module_responses_map */), nullptr /* origin_trial_tokens */, base::UnguessableToken::Create(),
std::move(worker_settings), kV8CacheOptionsDefault,
nullptr /* worklet_module_responses_map */),
WorkerBackingThreadStartupData( WorkerBackingThreadStartupData(
WorkerBackingThreadStartupData::HeapLimitMode::kDefault, WorkerBackingThreadStartupData::HeapLimitMode::kDefault,
WorkerBackingThreadStartupData::AtomicsWaitMode::kAllow)); WorkerBackingThreadStartupData::AtomicsWaitMode::kAllow));
......
...@@ -17,6 +17,7 @@ GlobalScopeCreationParams::GlobalScopeCreationParams( ...@@ -17,6 +17,7 @@ GlobalScopeCreationParams::GlobalScopeCreationParams(
ReferrerPolicy referrer_policy, ReferrerPolicy referrer_policy,
const SecurityOrigin* starter_origin, const SecurityOrigin* starter_origin,
bool starter_secure_context, bool starter_secure_context,
HttpsState starter_https_state,
WorkerClients* worker_clients, WorkerClients* worker_clients,
mojom::IPAddressSpace address_space, mojom::IPAddressSpace address_space,
const Vector<String>* origin_trial_tokens, const Vector<String>* origin_trial_tokens,
...@@ -34,6 +35,7 @@ GlobalScopeCreationParams::GlobalScopeCreationParams( ...@@ -34,6 +35,7 @@ GlobalScopeCreationParams::GlobalScopeCreationParams(
referrer_policy(referrer_policy), referrer_policy(referrer_policy),
starter_origin(starter_origin ? starter_origin->IsolatedCopy() : nullptr), starter_origin(starter_origin ? starter_origin->IsolatedCopy() : nullptr),
starter_secure_context(starter_secure_context), starter_secure_context(starter_secure_context),
starter_https_state(starter_https_state),
worker_clients(worker_clients), worker_clients(worker_clients),
address_space(address_space), address_space(address_space),
parent_devtools_token(parent_devtools_token), parent_devtools_token(parent_devtools_token),
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include "third_party/blink/renderer/core/workers/worker_settings.h" #include "third_party/blink/renderer/core/workers/worker_settings.h"
#include "third_party/blink/renderer/core/workers/worklet_module_responses_map.h" #include "third_party/blink/renderer/core/workers/worklet_module_responses_map.h"
#include "third_party/blink/renderer/platform/graphics/begin_frame_provider.h" #include "third_party/blink/renderer/platform/graphics/begin_frame_provider.h"
#include "third_party/blink/renderer/platform/loader/fetch/https_state.h"
#include "third_party/blink/renderer/platform/network/content_security_policy_parsers.h" #include "third_party/blink/renderer/platform/network/content_security_policy_parsers.h"
#include "third_party/blink/renderer/platform/network/content_security_policy_response_headers.h" #include "third_party/blink/renderer/platform/network/content_security_policy_response_headers.h"
#include "third_party/blink/renderer/platform/weborigin/kurl.h" #include "third_party/blink/renderer/platform/weborigin/kurl.h"
...@@ -44,6 +45,7 @@ struct CORE_EXPORT GlobalScopeCreationParams final { ...@@ -44,6 +45,7 @@ struct CORE_EXPORT GlobalScopeCreationParams final {
ReferrerPolicy referrer_policy, ReferrerPolicy referrer_policy,
const SecurityOrigin*, const SecurityOrigin*,
bool starter_secure_context, bool starter_secure_context,
HttpsState starter_https_state,
WorkerClients*, WorkerClients*,
mojom::IPAddressSpace, mojom::IPAddressSpace,
const Vector<String>* origin_trial_tokens, const Vector<String>* origin_trial_tokens,
...@@ -95,6 +97,8 @@ struct CORE_EXPORT GlobalScopeCreationParams final { ...@@ -95,6 +97,8 @@ struct CORE_EXPORT GlobalScopeCreationParams final {
// The value should be supplied as the result of Document.IsSecureContext(). // The value should be supplied as the result of Document.IsSecureContext().
bool starter_secure_context; bool starter_secure_context;
HttpsState starter_https_state;
// This object is created and initialized on the thread creating // This object is created and initialized on the thread creating
// a new worker context, but ownership of it and this // a new worker context, but ownership of it and this
// GlobalScopeCreationParams structure is passed along to the new worker // GlobalScopeCreationParams structure is passed along to the new worker
......
...@@ -67,8 +67,9 @@ class MainThreadWorkletTest : public PageTestBase { ...@@ -67,8 +67,9 @@ class MainThreadWorkletTest : public PageTestBase {
document->Url(), ScriptType::kModule, document->UserAgent(), document->Url(), ScriptType::kModule, document->UserAgent(),
document->GetContentSecurityPolicy()->Headers(), document->GetContentSecurityPolicy()->Headers(),
document->GetReferrerPolicy(), document->GetSecurityOrigin(), document->GetReferrerPolicy(), document->GetSecurityOrigin(),
document->IsSecureContext(), nullptr /* worker_clients */, document->IsSecureContext(), document->GetHttpsState(),
document->AddressSpace(), OriginTrialContext::GetTokens(document).get(), nullptr /* worker_clients */, document->AddressSpace(),
OriginTrialContext::GetTokens(document).get(),
base::UnguessableToken::Create(), nullptr /* worker_settings */, base::UnguessableToken::Create(), nullptr /* worker_settings */,
kV8CacheOptionsDefault, new WorkletModuleResponsesMap); kV8CacheOptionsDefault, new WorkletModuleResponsesMap);
global_scope_ = new MainThreadWorkletGlobalScope( global_scope_ = new MainThreadWorkletGlobalScope(
......
...@@ -59,7 +59,7 @@ void ThreadedWorkletMessagingProxy::Initialize( ...@@ -59,7 +59,7 @@ void ThreadedWorkletMessagingProxy::Initialize(
document->Url(), ScriptType::kModule, document->UserAgent(), document->Url(), ScriptType::kModule, document->UserAgent(),
csp->Headers(), document->GetReferrerPolicy(), csp->Headers(), document->GetReferrerPolicy(),
document->GetSecurityOrigin(), document->IsSecureContext(), document->GetSecurityOrigin(), document->IsSecureContext(),
worker_clients, document->AddressSpace(), document->GetHttpsState(), worker_clients, document->AddressSpace(),
OriginTrialContext::GetTokens(document).get(), OriginTrialContext::GetTokens(document).get(),
base::UnguessableToken::Create(), base::UnguessableToken::Create(),
std::make_unique<WorkerSettings>(document->GetSettings()), std::make_unique<WorkerSettings>(document->GetSettings()),
......