mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-27 12:46:06 +00:00
LibWeb: Pass top-level navigation initiator origin to Fetch's Request
This commit is contained in:
parent
60ca15c0de
commit
e9246c15d9
Notes:
github-actions[bot]
2025-08-12 11:09:51 +00:00
Author: https://github.com/kennethmyhra
Commit: e9246c15d9
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/5826
Reviewed-by: https://github.com/trflynn89 ✅
2 changed files with 11 additions and 1 deletions
|
@ -228,6 +228,9 @@ public:
|
|||
[[nodiscard]] OriginType const& origin() const { return m_origin; }
|
||||
void set_origin(OriginType origin) { m_origin = move(origin); }
|
||||
|
||||
[[nodiscard]] Optional<URL::Origin> const& top_level_navigation_initiator_origin() const { return m_top_level_navigation_initiator_origin; }
|
||||
void set_top_level_navigation_initiator_origin(Optional<URL::Origin> top_level_navigation_initiator_origin) { m_top_level_navigation_initiator_origin = move(top_level_navigation_initiator_origin); }
|
||||
|
||||
[[nodiscard]] PolicyContainerType const& policy_container() const { return m_policy_container; }
|
||||
void set_policy_container(PolicyContainerType policy_container) { m_policy_container = move(policy_container); }
|
||||
|
||||
|
@ -417,6 +420,10 @@ private:
|
|||
// A request has an associated origin, which is "client" or an origin. Unless stated otherwise it is "client".
|
||||
OriginType m_origin { Origin::Client };
|
||||
|
||||
// https://fetch.spec.whatwg.org/#request-top-level-navigation-initiator-origin
|
||||
// A request has an associated top-level navigation initiator origin, which is an origin or null. Unless stated otherwise it is null.
|
||||
Optional<URL::Origin> m_top_level_navigation_initiator_origin;
|
||||
|
||||
// https://fetch.spec.whatwg.org/#concept-request-policy-container
|
||||
// A request has an associated policy container, which is "client" or a policy container. Unless stated otherwise
|
||||
// it is "client".
|
||||
|
|
|
@ -866,7 +866,10 @@ static WebIDL::ExceptionOr<Navigable::NavigationParamsVariant> create_navigation
|
|||
request->set_referrer(entry->document_state()->request_referrer());
|
||||
request->set_policy_container(source_snapshot_params.source_policy_container);
|
||||
|
||||
// FIXME: 4. If navigable is a top-level traversable, then set request's top-level navigation initiator origin to entry's document state's initiator origin.
|
||||
// 4. If navigable is a top-level traversable, then set request's top-level navigation initiator origin to entry's
|
||||
// document state's initiator origin.
|
||||
if (navigable->top_level_traversable()->parent() == nullptr)
|
||||
request->set_top_level_navigation_initiator_origin(entry->document_state()->origin());
|
||||
|
||||
// 5. If request's client is null:
|
||||
if (request->client() == nullptr) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue