From c3618b891fbf787eb371cbe966b37d39850bb149 Mon Sep 17 00:00:00 2001 From: Shannon Booth Date: Sat, 28 Jun 2025 20:50:17 +1200 Subject: [PATCH] Meta+LibURL: Always enable public suffix data We should not encourage no public suffix data as a supported configuration. --- Libraries/LibURL/CMakeLists.txt | 1 - Libraries/LibURL/URL.cpp | 17 +++--------- Meta/CMake/common_options.cmake | 1 - Meta/CMake/public_suffix.cmake | 47 +++++++++++++++------------------ 4 files changed, 24 insertions(+), 42 deletions(-) diff --git a/Libraries/LibURL/CMakeLists.txt b/Libraries/LibURL/CMakeLists.txt index 00e6466e0a0..09b4b0f5f4d 100644 --- a/Libraries/LibURL/CMakeLists.txt +++ b/Libraries/LibURL/CMakeLists.txt @@ -21,4 +21,3 @@ set(SOURCES serenity_lib(LibURL url) target_link_libraries(LibURL PRIVATE LibUnicode LibTextCodec LibRegex LibCrypto) -target_compile_definitions(LibURL PRIVATE ENABLE_PUBLIC_SUFFIX=$) diff --git a/Libraries/LibURL/URL.cpp b/Libraries/LibURL/URL.cpp index 6b99b051571..b5f96a4dd07 100644 --- a/Libraries/LibURL/URL.cpp +++ b/Libraries/LibURL/URL.cpp @@ -14,12 +14,9 @@ #include #include #include +#include #include -#if defined(ENABLE_PUBLIC_SUFFIX) -# include -#endif - namespace URL { Optional URL::complete_url(StringView relative_url) const @@ -494,22 +491,14 @@ ByteString percent_decode(StringView input) return builder.to_byte_string(); } -bool is_public_suffix([[maybe_unused]] StringView host) +bool is_public_suffix(StringView host) { -#if defined(ENABLE_PUBLIC_SUFFIX) return PublicSuffixData::the()->is_public_suffix(host); -#else - return false; -#endif } -Optional get_public_suffix([[maybe_unused]] StringView host) +Optional get_public_suffix(StringView host) { -#if defined(ENABLE_PUBLIC_SUFFIX) return MUST(PublicSuffixData::the()->get_public_suffix(host)); -#else - return {}; -#endif } // https://github.com/publicsuffix/list/wiki/Format#algorithm diff --git a/Meta/CMake/common_options.cmake b/Meta/CMake/common_options.cmake index d20264b291a..b4a05861528 100644 --- a/Meta/CMake/common_options.cmake +++ b/Meta/CMake/common_options.cmake @@ -24,7 +24,6 @@ serenity_option(ENABLE_ALL_THE_DEBUG_MACROS OFF CACHE BOOL "Enable all debug mac serenity_option(ENABLE_ALL_DEBUG_FACILITIES OFF CACHE BOOL "Enable all noisy debug symbols and options. Not recommended for normal developer use") serenity_option(ENABLE_COMPILETIME_HEADER_CHECK OFF CACHE BOOL "Enable compiletime check that each library header compiles stand-alone") -serenity_option(ENABLE_PUBLIC_SUFFIX_DOWNLOAD ON CACHE BOOL "Enable download of the Public Suffix List at build time") serenity_option(INCLUDE_WASM_SPEC_TESTS OFF CACHE BOOL "Download and include the WebAssembly spec testsuite") serenity_option(INCLUDE_FLAC_SPEC_TESTS OFF CACHE BOOL "Download and include the FLAC spec testsuite") serenity_option(ENABLE_CACERT_DOWNLOAD ON CACHE BOOL "Enable download of cacert.pem at build time") diff --git a/Meta/CMake/public_suffix.cmake b/Meta/CMake/public_suffix.cmake index d835377bbf0..b955e984e34 100644 --- a/Meta/CMake/public_suffix.cmake +++ b/Meta/CMake/public_suffix.cmake @@ -1,29 +1,24 @@ include(${CMAKE_CURRENT_LIST_DIR}/utils.cmake) -if (ENABLE_PUBLIC_SUFFIX_DOWNLOAD) - set(PUBLIC_SUFFIX_PATH "${SERENITY_CACHE_DIR}/PublicSuffix" CACHE PATH "Download location for PublicSuffix files") - set(PUBLIC_SUFFIX_DATA_URL "https://raw.githubusercontent.com/publicsuffix/list/master/public_suffix_list.dat") - set(PUBLIC_SUFFIX_DATA_PATH "${PUBLIC_SUFFIX_PATH}/public_suffix_list.dat") - - set(PUBLIC_SUFFIX_DATA_HEADER PublicSuffixData.h) - set(PUBLIC_SUFFIX_DATA_IMPLEMENTATION PublicSuffixData.cpp) - - if (ENABLE_NETWORK_DOWNLOADS) - download_file("${PUBLIC_SUFFIX_DATA_URL}" "${PUBLIC_SUFFIX_DATA_PATH}") - else() - message(STATUS "Skipping download of ${PUBLIC_SUFFIX_DATA_URL}, expecting it to be in ${PUBLIC_SUFFIX_DATA_PATH}") - endif() - invoke_cpp_generator( - "PublicSuffixData" - Lagom::GeneratePublicSuffixData - "${PUBLIC_SUFFIX_PATH}/" - "${PUBLIC_SUFFIX_DATA_HEADER}" - "${PUBLIC_SUFFIX_DATA_IMPLEMENTATION}" - arguments -p "${PUBLIC_SUFFIX_DATA_PATH}" - ) - - set(PUBLIC_SUFFIX_SOURCES - ${PUBLIC_SUFFIX_DATA_HEADER} - ${PUBLIC_SUFFIX_DATA_IMPLEMENTATION} - ) +set(PUBLIC_SUFFIX_PATH "${SERENITY_CACHE_DIR}/PublicSuffix" CACHE PATH "Download location for PublicSuffix files") +set(PUBLIC_SUFFIX_DATA_URL "https://raw.githubusercontent.com/publicsuffix/list/master/public_suffix_list.dat") +set(PUBLIC_SUFFIX_DATA_PATH "${PUBLIC_SUFFIX_PATH}/public_suffix_list.dat") +set(PUBLIC_SUFFIX_DATA_HEADER PublicSuffixData.h) +set(PUBLIC_SUFFIX_DATA_IMPLEMENTATION PublicSuffixData.cpp) +if (ENABLE_NETWORK_DOWNLOADS) + download_file("${PUBLIC_SUFFIX_DATA_URL}" "${PUBLIC_SUFFIX_DATA_PATH}") +else() + message(STATUS "Skipping download of ${PUBLIC_SUFFIX_DATA_URL}, expecting it to be in ${PUBLIC_SUFFIX_DATA_PATH}") endif() +invoke_cpp_generator( + "PublicSuffixData" + Lagom::GeneratePublicSuffixData + "${PUBLIC_SUFFIX_PATH}/" + "${PUBLIC_SUFFIX_DATA_HEADER}" + "${PUBLIC_SUFFIX_DATA_IMPLEMENTATION}" + arguments -p "${PUBLIC_SUFFIX_DATA_PATH}" +) +set(PUBLIC_SUFFIX_SOURCES + ${PUBLIC_SUFFIX_DATA_HEADER} + ${PUBLIC_SUFFIX_DATA_IMPLEMENTATION} +)