1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-28 15:27:34 +00:00

Ladybird: Add RequestServer process to optionally replace Qt Networking

LibTLS still can't access many parts of the web, so let's hide this
behind a flag (with all the plumbing that entails).

Hopefully this can encourage folks to improve LibTLS's algorithm support
:^).
This commit is contained in:
Andrew Kaster 2023-08-01 14:39:19 -06:00 committed by Andreas Kling
parent ec3267e002
commit b5bfe732d7
26 changed files with 336 additions and 31 deletions

View file

@ -40,7 +40,7 @@ link_qt("ladybird_qt_components") {
config("ladybird_config") {
include_dirs = [
"//Userland/Applications",
"//Userland",
"//Userland/Services",
]
defines = [ "AK_DONT_REPLACE_STD" ]
}
@ -52,6 +52,7 @@ executable("ladybird_executable") {
]
data_deps = [
":headless-browser",
"RequestServer",
"SQLServer",
"WebContent",
"WebDriver",
@ -67,6 +68,7 @@ executable("ladybird_executable") {
"//Userland/Libraries/LibIPC",
"//Userland/Libraries/LibJS",
"//Userland/Libraries/LibMain",
"//Userland/Libraries/LibProtocol",
"//Userland/Libraries/LibSQL",
"//Userland/Libraries/LibWeb",
"//Userland/Libraries/LibWebView",
@ -119,6 +121,7 @@ executable("headless-browser") {
"//Userland/Libraries/LibIPC",
"//Userland/Libraries/LibJS",
"//Userland/Libraries/LibMain",
"//Userland/Libraries/LibProtocol",
"//Userland/Libraries/LibTLS",
"//Userland/Libraries/LibWeb",
"//Userland/Libraries/LibWebSocket",
@ -142,11 +145,13 @@ if (current_os == "mac") {
public_deps = [
":headless-browser",
":ladybird_executable",
"RequestServer",
"SQLServer",
"WebContent",
"WebDriver",
]
sources = [
"$root_out_dir/bin/RequestServer",
"$root_out_dir/bin/SQLServer",
"$root_out_dir/bin/WebContent",
"$root_out_dir/bin/WebDriver",
@ -176,6 +181,7 @@ if (current_os == "mac") {
"//Userland/Libraries/LibJS",
"//Userland/Libraries/LibLine",
"//Userland/Libraries/LibMarkdown",
"//Userland/Libraries/LibProtocol",
"//Userland/Libraries/LibRegex",
"//Userland/Libraries/LibSQL",
"//Userland/Libraries/LibSoftGPU",
@ -209,6 +215,7 @@ if (current_os == "mac") {
"$root_out_dir/lib/liblagom-js.dylib",
"$root_out_dir/lib/liblagom-line.dylib",
"$root_out_dir/lib/liblagom-markdown.dylib",
"$root_out_dir/lib/liblagom-protocol.dylib",
"$root_out_dir/lib/liblagom-regex.dylib",
"$root_out_dir/lib/liblagom-softgpu.dylib",
"$root_out_dir/lib/liblagom-sql.dylib",
@ -239,7 +246,9 @@ if (current_os == "mac") {
}
bundle_data("ladybird_config_resources") {
public_deps = [ "//Userland/Libraries/LibTLS:ca_certificates_download" ]
sources = [
"$root_build_dir/cacert.pem",
"//Base/home/anon/.config/BrowserAutoplayAllowlist.txt",
"//Base/home/anon/.config/BrowserContentFilters.txt",
]

View file

@ -0,0 +1,42 @@
import("//Ladybird/link_qt.gni")
link_qt("RequestServer_qt") {
qt_components = [ "Core" ]
}
executable("RequestServer") {
configs += [
"//Ladybird:ladybird_config",
":RequestServer_qt",
]
include_dirs = [
"//Userland/Libraries",
"//Userland/Services",
]
deps = [
"//AK",
"//Userland/Libraries/LibCore",
"//Userland/Libraries/LibCrypto",
"//Userland/Libraries/LibFileSystem",
"//Userland/Libraries/LibGemini",
"//Userland/Libraries/LibHTTP",
"//Userland/Libraries/LibIPC",
"//Userland/Libraries/LibMain",
"//Userland/Libraries/LibProtocol",
"//Userland/Libraries/LibTLS",
]
sources = [
"../Utilities.cpp",
"//Userland/Services/RequestServer/ConnectionCache.cpp",
"//Userland/Services/RequestServer/ConnectionFromClient.cpp",
"//Userland/Services/RequestServer/GeminiProtocol.cpp",
"//Userland/Services/RequestServer/GeminiRequest.cpp",
"//Userland/Services/RequestServer/HttpProtocol.cpp",
"//Userland/Services/RequestServer/HttpRequest.cpp",
"//Userland/Services/RequestServer/HttpsProtocol.cpp",
"//Userland/Services/RequestServer/HttpsRequest.cpp",
"//Userland/Services/RequestServer/Protocol.cpp",
"//Userland/Services/RequestServer/Request.cpp",
"main.cpp",
]
}

View file

@ -12,7 +12,6 @@ moc_qt_objects("generate_moc") {
link_qt("WebContent_qt") {
qt_components = [
"Core",
"Gui",
"Network",
"Multimedia",
]
@ -36,8 +35,10 @@ executable("WebContent") {
"//Userland/Libraries/LibIPC",
"//Userland/Libraries/LibJS",
"//Userland/Libraries/LibMain",
"//Userland/Libraries/LibProtocol",
"//Userland/Libraries/LibWeb",
"//Userland/Libraries/LibWebSocket",
"//Userland/Libraries/LibWebView",
"//Userland/Libraries/LibWebView:WebContentClientEndpoint",
"//Userland/Libraries/LibWebView:WebContentServerEndpoint",
"//Userland/Libraries/LibWebView:WebDriverClientEndpoint",
@ -48,6 +49,7 @@ executable("WebContent") {
"../AudioThread.cpp",
"../EventLoopImplementationQt.cpp",
"../FontPluginLadybird.cpp",
"../HelperProcess.cpp",
"../ImageCodecPluginLadybird.cpp",
"../RequestManagerQt.cpp",
"../Utilities.cpp",