mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-01 13:49:16 +00:00
LibURL+LibWeb: Make URL::Origin default constructor private
Instead, porting over all users to use the newly created Origin::create_opaque factory function. This also requires porting over some users of Origin to avoid default construction.
This commit is contained in:
parent
5deb8ba2f8
commit
e0d7278820
Notes:
github-actions[bot]
2025-06-17 18:55:18 +00:00
Author: https://github.com/shannonbooth
Commit: e0d7278820
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/5094
Reviewed-by: https://github.com/gmta ✅
16 changed files with 70 additions and 66 deletions
|
@ -30,20 +30,18 @@ ErrorOr<void> encode(Encoder& encoder, Web::HTML::SerializedEnvironmentSettingsO
|
|||
template<>
|
||||
ErrorOr<Web::HTML::SerializedEnvironmentSettingsObject> decode(Decoder& decoder)
|
||||
{
|
||||
Web::HTML::SerializedEnvironmentSettingsObject object {};
|
||||
|
||||
object.id = TRY(decoder.decode<String>());
|
||||
object.creation_url = TRY(decoder.decode<URL::URL>());
|
||||
object.top_level_creation_url = TRY(decoder.decode<Optional<URL::URL>>());
|
||||
object.top_level_origin = TRY(decoder.decode<Optional<URL::Origin>>());
|
||||
object.api_url_character_encoding = TRY(decoder.decode<String>());
|
||||
object.api_base_url = TRY(decoder.decode<URL::URL>());
|
||||
object.origin = TRY(decoder.decode<URL::Origin>());
|
||||
object.policy_container = TRY(decoder.decode<Web::HTML::SerializedPolicyContainer>());
|
||||
object.cross_origin_isolated_capability = TRY(decoder.decode<Web::HTML::CanUseCrossOriginIsolatedAPIs>());
|
||||
object.time_origin = TRY(decoder.decode<double>());
|
||||
|
||||
return object;
|
||||
return Web::HTML::SerializedEnvironmentSettingsObject {
|
||||
.id = TRY(decoder.decode<String>()),
|
||||
.creation_url = TRY(decoder.decode<URL::URL>()),
|
||||
.top_level_creation_url = TRY(decoder.decode<Optional<URL::URL>>()),
|
||||
.top_level_origin = TRY(decoder.decode<Optional<URL::Origin>>()),
|
||||
.api_url_character_encoding = TRY(decoder.decode<String>()),
|
||||
.api_base_url = TRY(decoder.decode<URL::URL>()),
|
||||
.origin = TRY(decoder.decode<URL::Origin>()),
|
||||
.policy_container = TRY(decoder.decode<Web::HTML::SerializedPolicyContainer>()),
|
||||
.cross_origin_isolated_capability = TRY(decoder.decode<Web::HTML::CanUseCrossOriginIsolatedAPIs>()),
|
||||
.time_origin = TRY(decoder.decode<double>()),
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -30,9 +30,8 @@ GC::Ref<WorkerEnvironmentSettingsObject> WorkerEnvironmentSettingsObject::setup(
|
|||
|
||||
// 4. Let settings object be a new environment settings object whose algorithms are defined as follows:
|
||||
// NOTE: See the functions defined for this class.
|
||||
auto settings_object = realm->create<WorkerEnvironmentSettingsObject>(move(execution_context), worker, unsafe_worker_creation_time);
|
||||
auto settings_object = realm->create<WorkerEnvironmentSettingsObject>(move(execution_context), worker, move(inherited_origin), unsafe_worker_creation_time);
|
||||
settings_object->target_browsing_context = nullptr;
|
||||
settings_object->m_origin = move(inherited_origin);
|
||||
|
||||
// FIXME: 5. Set settings object's id to a new unique opaque string, creation URL to worker global scope's url, top-level creation URL to null, target browsing context to null, and active service worker to null.
|
||||
// 6. If worker global scope is a DedicatedWorkerGlobalScope object, then set settings object's top-level origin to outside settings's top-level origin.
|
||||
|
@ -64,7 +63,7 @@ URL::Origin WorkerEnvironmentSettingsObject::origin() const
|
|||
{
|
||||
// Return a unique opaque origin if worker global scope's url's scheme is "data", and inherited origin otherwise.
|
||||
if (m_global_scope->url().scheme() == "data")
|
||||
return URL::Origin {};
|
||||
return URL::Origin::create_opaque();
|
||||
return m_origin;
|
||||
}
|
||||
|
||||
|
|
|
@ -18,8 +18,9 @@ class WorkerEnvironmentSettingsObject final
|
|||
GC_DECLARE_ALLOCATOR(WorkerEnvironmentSettingsObject);
|
||||
|
||||
public:
|
||||
WorkerEnvironmentSettingsObject(NonnullOwnPtr<JS::ExecutionContext> execution_context, GC::Ref<WorkerGlobalScope> global_scope, HighResolutionTime::DOMHighResTimeStamp unsafe_worker_creation_time)
|
||||
WorkerEnvironmentSettingsObject(NonnullOwnPtr<JS::ExecutionContext> execution_context, GC::Ref<WorkerGlobalScope> global_scope, URL::Origin origin, HighResolutionTime::DOMHighResTimeStamp unsafe_worker_creation_time)
|
||||
: EnvironmentSettingsObject(move(execution_context))
|
||||
, m_origin(move(origin))
|
||||
, m_global_scope(global_scope)
|
||||
, m_unsafe_worker_creation_time(unsafe_worker_creation_time)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue