From 7192cf748748dfb812c66dd4b047d1fcac29a368 Mon Sep 17 00:00:00 2001 From: sin-ack Date: Sun, 13 Aug 2023 11:14:04 +0000 Subject: [PATCH] LibWeb: Add hack for computing the request referer during load This is a temporary hack until navigables are used to load pages, which uses fetch infrastructure that does this according to spec. --- Userland/Libraries/LibWeb/Loader/FrameLoader.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Userland/Libraries/LibWeb/Loader/FrameLoader.cpp b/Userland/Libraries/LibWeb/Loader/FrameLoader.cpp index a7ea529bfb..34cfad35c2 100644 --- a/Userland/Libraries/LibWeb/Loader/FrameLoader.cpp +++ b/Userland/Libraries/LibWeb/Loader/FrameLoader.cpp @@ -20,6 +20,7 @@ #include #include #include +#include #include namespace Web { @@ -77,6 +78,12 @@ bool FrameLoader::load(LoadRequest& request, Type type) if (!request.headers().contains("Accept")) request.set_header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"); + // HACK: We're crudely computing the referer value and shoving it into the + // request until fetch infrastructure is used here. + auto referrer_url = ReferrerPolicy::strip_url_for_use_as_referrer(url); + if (referrer_url.has_value() && !request.headers().contains("Referer")) + request.set_header("Referer", referrer_url->serialize()); + set_resource(ResourceLoader::the().load_resource(Resource::Type::Generic, request)); if (type == Type::IFrame)