LibWeb: Make base URL of HTML::Script Optional

This is a null or a URL in the spec, which we were previously
representing through the invalid state of URL.
This commit is contained in:
Shannon Booth 2025-02-16 15:53:04 +13:00 committed by Tim Flynn
commit 705001483a
Notes: github-actions[bot] 2025-02-19 13:02:39 +00:00
5 changed files with 9 additions and 9 deletions

View file

@ -623,7 +623,7 @@ void fetch_internal_module_script_graph(JS::Realm& realm, JS::ModuleRequest cons
// 5. Fetch a single module script given url, fetch client settings object, destination, options, referringScript's settings object's realm,
// referringScript's base URL, moduleRequest, false, and onSingleFetchComplete as defined below. If performFetch was given, pass it along as well.
fetch_single_module_script(realm, url, fetch_client_settings_object, destination, options, referring_script.realm(), referring_script.base_url(), module_request, TopLevelModule::No, perform_fetch, on_single_fetch_complete);
fetch_single_module_script(realm, url, fetch_client_settings_object, destination, options, referring_script.realm(), referring_script.base_url().value(), module_request, TopLevelModule::No, perform_fetch, on_single_fetch_complete);
}
// https://html.spec.whatwg.org/multipage/webappapis.html#fetch-the-descendants-of-a-module-script

View file

@ -11,7 +11,7 @@ namespace Web::HTML {
GC_DEFINE_ALLOCATOR(Script);
Script::Script(URL::URL base_url, ByteString filename, JS::Realm& realm)
Script::Script(Optional<URL::URL> base_url, ByteString filename, JS::Realm& realm)
: m_base_url(move(base_url))
, m_filename(move(filename))
, m_realm(realm)

View file

@ -24,7 +24,7 @@ class Script
public:
virtual ~Script() override;
URL::URL const& base_url() const { return m_base_url; }
Optional<URL::URL> const& base_url() const { return m_base_url; }
ByteString const& filename() const { return m_filename; }
JS::Realm& realm() { return m_realm; }
@ -37,14 +37,14 @@ public:
void set_parse_error(JS::Value value) { m_parse_error = value; }
protected:
Script(URL::URL base_url, ByteString filename, JS::Realm&);
Script(Optional<URL::URL> base_url, ByteString filename, JS::Realm&);
virtual void visit_edges(Visitor&) override;
private:
virtual void visit_host_defined_self(JS::Cell::Visitor&) override;
URL::URL m_base_url;
Optional<URL::URL> m_base_url;
ByteString m_filename;
GC::Ref<JS::Realm> m_realm;