diff --git a/Libraries/LibURL/InternalURLs.h b/Libraries/LibURL/InternalURLs.h new file mode 100644 index 0000000000..34d24d79fd --- /dev/null +++ b/Libraries/LibURL/InternalURLs.h @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2026, Tim Flynn + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#pragma once + +#include +#include +#include + +namespace URL { + +#define ENUMERATE_INTERNAL_URLS \ + __URL_ENUMERATE(bookmarks) \ + __URL_ENUMERATE(newtab) \ + __URL_ENUMERATE(processes) \ + __URL_ENUMERATE(settings) \ + __URL_ENUMERATE(version) + +#define __URL_ENUMERATE(url) \ + inline URL const& about_##url() \ + { \ + static NeverDestroyed url = URL::about(#url##_string); \ + return *url; \ + } +ENUMERATE_INTERNAL_URLS +#undef __URL_ENUMERATE + +inline bool is_webui_url(URL const& url) +{ +#define __URL_ENUMERATE(internal_url) \ + if (url == about_##internal_url()) \ + return true; + ENUMERATE_INTERNAL_URLS +#undef __URL_ENUMERATE + + return false; +} + +} diff --git a/Libraries/LibURL/URL.h b/Libraries/LibURL/URL.h index 46cf46d77e..1034963cbf 100644 --- a/Libraries/LibURL/URL.h +++ b/Libraries/LibURL/URL.h @@ -212,18 +212,7 @@ URL create_with_data(StringView mime_type, StringView payload, bool is_base64 = inline URL about_blank() { return URL::about("blank"_string); } inline URL about_srcdoc() { return URL::about("srcdoc"_string); } - inline URL about_error() { return URL::about("error"_string); } -inline URL about_newtab() { return URL::about("newtab"_string); } -inline URL about_bookmarks() { return URL::about("bookmarks"_string); } -inline URL about_processes() { return URL::about("processes"_string); } -inline URL about_settings() { return URL::about("settings"_string); } -inline URL about_version() { return URL::about("version"_string); } - -inline bool is_webui_url(URL const& url) -{ - return first_is_one_of(url, about_bookmarks(), about_processes(), about_settings(), about_version()); -} } diff --git a/Libraries/LibWeb/HTML/Scripting/Environments.cpp b/Libraries/LibWeb/HTML/Scripting/Environments.cpp index 4d2b61cdce..f1dca538e5 100644 --- a/Libraries/LibWeb/HTML/Scripting/Environments.cpp +++ b/Libraries/LibWeb/HTML/Scripting/Environments.cpp @@ -7,6 +7,7 @@ * SPDX-License-Identifier: BSD-2-Clause */ +#include #include #include #include diff --git a/Libraries/LibWeb/SecureContexts/AbstractOperations.cpp b/Libraries/LibWeb/SecureContexts/AbstractOperations.cpp index 844cd5a8e3..6faca28126 100644 --- a/Libraries/LibWeb/SecureContexts/AbstractOperations.cpp +++ b/Libraries/LibWeb/SecureContexts/AbstractOperations.cpp @@ -6,6 +6,7 @@ #include #include +#include #include #include #include diff --git a/Libraries/LibWebView/Application.cpp b/Libraries/LibWebView/Application.cpp index 9737ad9c7e..1e4bdc2bf8 100644 --- a/Libraries/LibWebView/Application.cpp +++ b/Libraries/LibWebView/Application.cpp @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include diff --git a/Libraries/LibWebView/Settings.cpp b/Libraries/LibWebView/Settings.cpp index a7326f3556..f73e74da0d 100644 --- a/Libraries/LibWebView/Settings.cpp +++ b/Libraries/LibWebView/Settings.cpp @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include diff --git a/UI/Gtk/BrowserWindow.cpp b/UI/Gtk/BrowserWindow.cpp index ddde4847bb..4d9a910a4f 100644 --- a/UI/Gtk/BrowserWindow.cpp +++ b/UI/Gtk/BrowserWindow.cpp @@ -6,6 +6,7 @@ #include #include +#include #include #include #include diff --git a/UI/Qt/Application.cpp b/UI/Qt/Application.cpp index 307803957d..1fdb1cb5db 100644 --- a/UI/Qt/Application.cpp +++ b/UI/Qt/Application.cpp @@ -5,17 +5,19 @@ */ #include +#include #include #include #include #include -#if defined(AK_OS_MACOS) -# include -#endif #include #include #include +#if defined(AK_OS_MACOS) +# include +#endif + #include #include #include