diff --git a/Libraries/LibJS/Runtime/Completion.cpp b/Libraries/LibJS/Runtime/Completion.cpp index 117fed983d7..5b3a4167596 100644 --- a/Libraries/LibJS/Runtime/Completion.cpp +++ b/Libraries/LibJS/Runtime/Completion.cpp @@ -148,4 +148,9 @@ Completion throw_completion(Value value) return { Completion::Type::Throw, value }; } +void set_log_all_js_exceptions(bool const enabled) +{ + g_log_all_js_exceptions = enabled; +} + } diff --git a/Libraries/LibJS/Runtime/Completion.h b/Libraries/LibJS/Runtime/Completion.h index 0dfbb77f248..cbf8d5fa053 100644 --- a/Libraries/LibJS/Runtime/Completion.h +++ b/Libraries/LibJS/Runtime/Completion.h @@ -348,4 +348,6 @@ inline Completion normal_completion(Value value) // 6.2.4.2 ThrowCompletion ( value ), https://tc39.es/ecma262/#sec-throwcompletion JS_API Completion throw_completion(Value); +JS_API void set_log_all_js_exceptions(bool enabled); + } diff --git a/Libraries/LibWeb/Fetch/Fetching/Fetching.cpp b/Libraries/LibWeb/Fetch/Fetching/Fetching.cpp index ac76619016a..d7be18ccb27 100644 --- a/Libraries/LibWeb/Fetch/Fetching/Fetching.cpp +++ b/Libraries/LibWeb/Fetch/Fetching/Fetching.cpp @@ -66,7 +66,7 @@ namespace Web::Fetch::Fetching { -bool g_http_cache_enabled; +bool g_http_cache_enabled = false; #define TRY_OR_IGNORE(expression) \ ({ \ @@ -2841,4 +2841,9 @@ void append_fetch_metadata_headers_for_request(Infrastructure::Request& request) set_sec_fetch_user_header(request); } +void set_http_cache_enabled(bool const enabled) +{ + g_http_cache_enabled = enabled; +} + } diff --git a/Libraries/LibWeb/Fetch/Fetching/Fetching.h b/Libraries/LibWeb/Fetch/Fetching/Fetching.h index 4646fcc1bc2..f6033799f18 100644 --- a/Libraries/LibWeb/Fetch/Fetching/Fetching.h +++ b/Libraries/LibWeb/Fetch/Fetching/Fetching.h @@ -54,4 +54,6 @@ void set_sec_fetch_site_header(Infrastructure::Request&); void set_sec_fetch_user_header(Infrastructure::Request&); void append_fetch_metadata_headers_for_request(Infrastructure::Request&); +void set_http_cache_enabled(bool enabled); + } diff --git a/Libraries/LibWeb/WebIDL/Tracing.cpp b/Libraries/LibWeb/WebIDL/Tracing.cpp index 7cc6a3db822..f88f18fa4e7 100644 --- a/Libraries/LibWeb/WebIDL/Tracing.cpp +++ b/Libraries/LibWeb/WebIDL/Tracing.cpp @@ -13,6 +13,7 @@ namespace Web::WebIDL { bool g_enable_idl_tracing = false; +static void log_trace_impl(JS::VM&, char const*); void log_trace_impl(JS::VM& vm, char const* function) { if (!g_enable_idl_tracing) @@ -39,4 +40,15 @@ void log_trace_impl(JS::VM& vm, char const* function) dbgln("{}({})", function, builder.string_view()); } +void log_trace(JS::VM& vm, char const* function) +{ + if (g_enable_idl_tracing) + log_trace_impl(vm, function); +} + +void set_enable_idl_tracing(bool const enabled) +{ + g_enable_idl_tracing = enabled; +} + } diff --git a/Libraries/LibWeb/WebIDL/Tracing.h b/Libraries/LibWeb/WebIDL/Tracing.h index fb442f87dd1..9b4ed8f7e05 100644 --- a/Libraries/LibWeb/WebIDL/Tracing.h +++ b/Libraries/LibWeb/WebIDL/Tracing.h @@ -10,14 +10,8 @@ namespace Web::WebIDL { -extern bool g_enable_idl_tracing; +void log_trace(JS::VM& vm, char const* function); -void log_trace_impl(JS::VM&, char const*); - -inline void log_trace(JS::VM& vm, char const* function) -{ - if (g_enable_idl_tracing) - log_trace_impl(vm, function); -} +void set_enable_idl_tracing(bool enabled); } diff --git a/Services/WebContent/CMakeLists.txt b/Services/WebContent/CMakeLists.txt index 25567e6d46e..5a225ad069b 100644 --- a/Services/WebContent/CMakeLists.txt +++ b/Services/WebContent/CMakeLists.txt @@ -51,6 +51,40 @@ endif() target_link_libraries(WebContent PRIVATE webcontentservice LibURL) +if(WIN32) + # FIXME: This is a hack to get around lld-link error undefined symbols in various libraries + target_link_libraries(WebContent PRIVATE + $,INCLUDE,AbortSignal> + $,INCLUDE,AttributeNames> + $,INCLUDE,Buffers> + $,INCLUDE,CallbackType> + $,INCLUDE,DocumentObserver> + $,INCLUDE,EventNames> + $,INCLUDE,Fetching> + $,INCLUDE,HeapTimer> + $,INCLUDE,MutationType> + $,INCLUDE,Namespace> + $,INCLUDE,NavigationObserver> + $,INCLUDE,PaintableBox> + $,INCLUDE,Policy> + $,INCLUDE,PolicyContainer> + $,INCLUDE,PullIntoDescriptor> + $,INCLUDE,ReadableByteStreamController> + $,INCLUDE,ReadableStream> + $,INCLUDE,ShadowRoot> + $,INCLUDE,TagNames> + $,INCLUDE,Text> + $,INCLUDE,Tracing> + $,INCLUDE,TransformStream> + $,INCLUDE,WebUI> + $,INCLUDE,WritableStream> + $,INCLUDE,Utilities> + ) + find_package(unofficial-angle REQUIRED CONFIG) + target_link_libraries(WebContent PRIVATE LibTextCodec unofficial::angle::libGLESv2) +endif() + + target_sources(webcontentservice PUBLIC FILE_SET server TYPE HEADERS BASE_DIRS ${LADYBIRD_SOURCE_DIR}/Services FILES ConnectionFromClient.h diff --git a/Services/WebContent/ConnectionFromClient.cpp b/Services/WebContent/ConnectionFromClient.cpp index f1e2c5d05a1..ed1a5cf6e0e 100644 --- a/Services/WebContent/ConnectionFromClient.cpp +++ b/Services/WebContent/ConnectionFromClient.cpp @@ -74,7 +74,7 @@ void ConnectionFromClient::die() Messages::WebContentServer::InitTransportResponse ConnectionFromClient::init_transport([[maybe_unused]] int peer_pid) { #ifdef AK_OS_WINDOWS - m_transport.set_peer_pid(peer_pid); + m_transport->set_peer_pid(peer_pid); return Core::System::getpid(); #endif VERIFY_NOT_REACHED(); diff --git a/Services/WebContent/main.cpp b/Services/WebContent/main.cpp index 1db23f1977e..74c70bc2368 100644 --- a/Services/WebContent/main.cpp +++ b/Services/WebContent/main.cpp @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -28,6 +29,7 @@ #include #include #include +#include #include #include #include @@ -54,24 +56,6 @@ static ErrorOr reinitialize_resource_loader(IPC::File const& image_decoder static ErrorOr initialize_image_decoder(int image_decoder_socket); static ErrorOr reinitialize_image_decoder(IPC::File const& image_decoder_socket); -namespace JS { - -extern bool g_log_all_js_exceptions; - -} - -namespace Web::WebIDL { - -extern bool g_enable_idl_tracing; - -} - -namespace Web::Fetch::Fetching { - -extern bool g_http_cache_enabled; - -} - ErrorOr ladybird_main(Main::Arguments arguments) { AK::set_rich_debug_enabled(true); @@ -168,7 +152,8 @@ ErrorOr ladybird_main(Main::Arguments arguments) WebView::disable_site_isolation(); if (enable_http_cache) { - Web::Fetch::Fetching::g_http_cache_enabled = true; + + Web::Fetch::Fetching::set_http_cache_enabled(true); } Web::Painting::g_paint_viewport_scrollbars = !disable_scrollbar_painting; @@ -206,11 +191,11 @@ ErrorOr ladybird_main(Main::Arguments arguments) TRY(initialize_resource_loader(Web::Bindings::main_thread_vm().heap(), request_server_socket)); if (log_all_js_exceptions) { - JS::g_log_all_js_exceptions = true; + JS::set_log_all_js_exceptions(true); } if (enable_idl_tracing) { - Web::WebIDL::g_enable_idl_tracing = true; + Web::WebIDL::set_enable_idl_tracing(true); } auto maybe_content_filter_error = load_content_filters(config_path);