From e02270c5cc1692761a60d7928e6d2adf740b27aa Mon Sep 17 00:00:00 2001 From: Linus Groh Date: Sat, 3 Apr 2021 15:15:31 +0200 Subject: [PATCH] LibWeb: Make XMLHttpRequest.open() work with relative URLs --- Userland/Libraries/LibWeb/XHR/XMLHttpRequest.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Userland/Libraries/LibWeb/XHR/XMLHttpRequest.cpp b/Userland/Libraries/LibWeb/XHR/XMLHttpRequest.cpp index 94a6bef629..72518bdb15 100644 --- a/Userland/Libraries/LibWeb/XHR/XMLHttpRequest.cpp +++ b/Userland/Libraries/LibWeb/XHR/XMLHttpRequest.cpp @@ -1,5 +1,6 @@ /* * Copyright (c) 2020, Andreas Kling + * Copyright (c) 2021, Linus Groh * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -124,6 +125,7 @@ DOM::ExceptionOr XMLHttpRequest::set_request_header(const String& header, return {}; } +// https://xhr.spec.whatwg.org/#dom-xmlhttprequest-open DOM::ExceptionOr XMLHttpRequest::open(const String& method, const String& url) { // FIXME: Let settingsObject be this’s relevant settings object. @@ -135,10 +137,9 @@ DOM::ExceptionOr XMLHttpRequest::open(const String& method, const String& if (is_forbidden_method(method)) return DOM::SecurityError::create("Forbidden method, must not be 'CONNECT', 'TRACE', or 'TRACK'"); - String normalized_method = normalize_method(method); + auto normalized_method = normalize_method(method); - // FIXME: Pass in settingObject's API base URL and API URL character encoding. - URL parsed_url(url); + auto parsed_url = m_window->document().complete_url(url); if (!parsed_url.is_valid()) return DOM::SyntaxError::create("Invalid URL");