From 7fd4c7b0c67d343f66471553a097d4f962418426 Mon Sep 17 00:00:00 2001 From: Linus Groh Date: Thu, 13 Oct 2022 18:26:35 +0200 Subject: [PATCH] LibWeb: Implement 'host is domain' concept from the URL spec --- Userland/Libraries/LibWeb/URL/URL.cpp | 11 +++++++++++ Userland/Libraries/LibWeb/URL/URL.h | 1 + 2 files changed, 12 insertions(+) diff --git a/Userland/Libraries/LibWeb/URL/URL.cpp b/Userland/Libraries/LibWeb/URL/URL.cpp index 09bb522f9e..57944b664e 100644 --- a/Userland/Libraries/LibWeb/URL/URL.cpp +++ b/Userland/Libraries/LibWeb/URL/URL.cpp @@ -5,6 +5,8 @@ * SPDX-License-Identifier: BSD-2-Clause */ +#include +#include #include #include #include @@ -340,4 +342,13 @@ HTML::Origin url_origin(AK::URL const& url) return HTML::Origin {}; } +// https://url.spec.whatwg.org/#concept-domain +bool host_is_domain(StringView host) +{ + // A domain is a non-empty ASCII string that identifies a realm within a network. + return !host.is_empty() + && !IPv4Address::from_string(host).has_value() + && !IPv6Address::from_string(host).has_value(); +} + } diff --git a/Userland/Libraries/LibWeb/URL/URL.h b/Userland/Libraries/LibWeb/URL/URL.h index 44d5add4fd..e2af21fa3e 100644 --- a/Userland/Libraries/LibWeb/URL/URL.h +++ b/Userland/Libraries/LibWeb/URL/URL.h @@ -72,5 +72,6 @@ private: }; HTML::Origin url_origin(AK::URL const&); +bool host_is_domain(StringView host); }