From 9c67c4a270270e4db81079ae23c2c7e2d5ca7092 Mon Sep 17 00:00:00 2001 From: ayeteadoe Date: Tue, 1 Jul 2025 20:55:11 -0700 Subject: [PATCH] LibWebView: Enable EXPLICIT_SYMBOL_EXPORT --- Libraries/LibWebView/Application.h | 3 ++- Libraries/LibWebView/Attribute.h | 7 ++++--- Libraries/LibWebView/Autocomplete.h | 7 ++++--- Libraries/LibWebView/BrowserProcess.h | 5 +++-- Libraries/LibWebView/CMakeLists.txt | 2 +- Libraries/LibWebView/ConsoleOutput.h | 13 +++++++------ Libraries/LibWebView/CookieJar.h | 6 +++--- Libraries/LibWebView/DOMNodeProperties.h | 7 ++++--- Libraries/LibWebView/Database.h | 3 ++- .../EventLoop/EventLoopImplementationMacOS.h | 5 +++-- Libraries/LibWebView/Forward.h | 1 + Libraries/LibWebView/HeadlessWebView.h | 3 ++- Libraries/LibWebView/HelperProcess.h | 15 ++++++++------- Libraries/LibWebView/MachPortServer.h | 3 ++- Libraries/LibWebView/Mutation.h | 13 +++++++------ Libraries/LibWebView/Plugins/FontPlugin.h | 3 ++- Libraries/LibWebView/Plugins/ImageCodecPlugin.h | 3 ++- Libraries/LibWebView/Process.h | 3 ++- Libraries/LibWebView/ProcessManager.h | 6 +++--- Libraries/LibWebView/SearchEngine.h | 7 ++++--- Libraries/LibWebView/Settings.h | 6 +++--- Libraries/LibWebView/SiteIsolation.h | 5 +++-- Libraries/LibWebView/SourceHighlighter.h | 7 ++++--- Libraries/LibWebView/StorageJar.h | 2 +- Libraries/LibWebView/URL.h | 11 ++++++----- Libraries/LibWebView/UserAgent.h | 5 +++-- Libraries/LibWebView/Utilities.h | 15 ++++++++------- Libraries/LibWebView/ViewImplementation.h | 2 +- Libraries/LibWebView/WebContentClient.h | 2 +- Libraries/LibWebView/WebUI.h | 2 +- Libraries/LibWebView/WebUI/ProcessesUI.h | 3 ++- Libraries/LibWebView/WebUI/SettingsUI.h | 3 ++- Services/WebContent/CMakeLists.txt | 3 +-- Services/WebWorker/CMakeLists.txt | 2 +- Tests/LibWeb/test-web/CMakeLists.txt | 6 ------ UI/CMakeLists.txt | 9 +-------- 36 files changed, 104 insertions(+), 94 deletions(-) diff --git a/Libraries/LibWebView/Application.h b/Libraries/LibWebView/Application.h index f1e94220727..96d1013d1c6 100644 --- a/Libraries/LibWebView/Application.h +++ b/Libraries/LibWebView/Application.h @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include @@ -28,7 +29,7 @@ namespace WebView { struct ApplicationSettingsObserver; -class Application : public DevTools::DevToolsDelegate { +class WEBVIEW_API Application : public DevTools::DevToolsDelegate { AK_MAKE_NONCOPYABLE(Application); public: diff --git a/Libraries/LibWebView/Attribute.h b/Libraries/LibWebView/Attribute.h index f28e4262c00..34badd96b20 100644 --- a/Libraries/LibWebView/Attribute.h +++ b/Libraries/LibWebView/Attribute.h @@ -8,10 +8,11 @@ #include #include +#include namespace WebView { -struct Attribute { +struct WEBVIEW_API Attribute { String name; String value; }; @@ -21,9 +22,9 @@ struct Attribute { namespace IPC { template<> -ErrorOr encode(Encoder&, WebView::Attribute const&); +WEBVIEW_API ErrorOr encode(Encoder&, WebView::Attribute const&); template<> -ErrorOr decode(Decoder&); +WEBVIEW_API ErrorOr decode(Decoder&); } diff --git a/Libraries/LibWebView/Autocomplete.h b/Libraries/LibWebView/Autocomplete.h index 408c5ec6904..3839be6fbd2 100644 --- a/Libraries/LibWebView/Autocomplete.h +++ b/Libraries/LibWebView/Autocomplete.h @@ -13,6 +13,7 @@ #include #include #include +#include namespace WebView { @@ -21,10 +22,10 @@ struct AutocompleteEngine { StringView query_url; }; -ReadonlySpan autocomplete_engines(); -Optional find_autocomplete_engine_by_name(StringView name); +WEBVIEW_API ReadonlySpan autocomplete_engines(); +WEBVIEW_API Optional find_autocomplete_engine_by_name(StringView name); -class Autocomplete { +class WEBVIEW_API Autocomplete { public: Autocomplete(); ~Autocomplete(); diff --git a/Libraries/LibWebView/BrowserProcess.h b/Libraries/LibWebView/BrowserProcess.h index e3245c8d3ad..cf20b257f43 100644 --- a/Libraries/LibWebView/BrowserProcess.h +++ b/Libraries/LibWebView/BrowserProcess.h @@ -13,13 +13,14 @@ #include #include #include +#include #include #include #include namespace WebView { -class UIProcessConnectionFromClient final +class WEBVIEW_API UIProcessConnectionFromClient final : public IPC::ConnectionFromClient { C_OBJECT(UIProcessConnectionFromClient); @@ -38,7 +39,7 @@ private: virtual void create_new_window(Vector urls) override; }; -class BrowserProcess { +class WEBVIEW_API BrowserProcess { AK_MAKE_NONCOPYABLE(BrowserProcess); AK_MAKE_DEFAULT_MOVABLE(BrowserProcess); diff --git a/Libraries/LibWebView/CMakeLists.txt b/Libraries/LibWebView/CMakeLists.txt index 508a771a701..8b8a43cf0a5 100644 --- a/Libraries/LibWebView/CMakeLists.txt +++ b/Libraries/LibWebView/CMakeLists.txt @@ -68,7 +68,7 @@ set(GENERATED_SOURCES UIProcessServerEndpoint.h ) -ladybird_lib(LibWebView webview) +ladybird_lib(LibWebView webview EXPLICIT_SYMBOL_EXPORT) target_link_libraries(LibWebView PRIVATE LibCore LibDevTools LibFileSystem LibGfx LibImageDecoderClient LibIPC LibRequests LibJS LibWeb LibUnicode LibURL LibSyntax LibTextCodec) if (APPLE) diff --git a/Libraries/LibWebView/ConsoleOutput.h b/Libraries/LibWebView/ConsoleOutput.h index a506ed361ed..c45a3df80b6 100644 --- a/Libraries/LibWebView/ConsoleOutput.h +++ b/Libraries/LibWebView/ConsoleOutput.h @@ -13,29 +13,30 @@ #include #include #include +#include namespace WebView { -struct ConsoleLog { +struct WEBVIEW_API ConsoleLog { JS::Console::LogLevel level; Vector arguments; }; -struct StackFrame { +struct WEBVIEW_API StackFrame { Optional function; Optional file; Optional line; Optional column; }; -struct ConsoleError { +struct WEBVIEW_API ConsoleError { String name; String message; Vector trace; bool inside_promise { false }; }; -struct ConsoleOutput { +struct WEBVIEW_API ConsoleOutput { UnixDateTime timestamp; Variant output; }; @@ -63,9 +64,9 @@ template<> ErrorOr decode(Decoder&); template<> -ErrorOr encode(Encoder&, WebView::ConsoleOutput const&); +WEBVIEW_API ErrorOr encode(Encoder&, WebView::ConsoleOutput const&); template<> -ErrorOr decode(Decoder&); +WEBVIEW_API ErrorOr decode(Decoder&); } diff --git a/Libraries/LibWebView/CookieJar.h b/Libraries/LibWebView/CookieJar.h index 7573d64e32c..2177e14710f 100644 --- a/Libraries/LibWebView/CookieJar.h +++ b/Libraries/LibWebView/CookieJar.h @@ -29,14 +29,14 @@ struct CookieStorageKey { String path; }; -class CookieJar { +class WEBVIEW_API CookieJar { struct Statements { Database::StatementID insert_cookie { 0 }; Database::StatementID expire_cookie { 0 }; Database::StatementID select_all_cookies { 0 }; }; - class TransientStorage { + class WEBVIEW_API TransientStorage { public: using Cookies = HashMap; @@ -72,7 +72,7 @@ class CookieJar { Cookies m_dirty_cookies; }; - struct PersistedStorage { + struct WEBVIEW_API PersistedStorage { void insert_cookie(Web::Cookie::Cookie const& cookie); TransientStorage::Cookies select_all_cookies(); diff --git a/Libraries/LibWebView/DOMNodeProperties.h b/Libraries/LibWebView/DOMNodeProperties.h index ae71db6db1b..b0cd33db7c7 100644 --- a/Libraries/LibWebView/DOMNodeProperties.h +++ b/Libraries/LibWebView/DOMNodeProperties.h @@ -8,10 +8,11 @@ #include #include +#include namespace WebView { -struct DOMNodeProperties { +struct WEBVIEW_API DOMNodeProperties { enum class Type { ComputedStyle, Layout, @@ -27,9 +28,9 @@ struct DOMNodeProperties { namespace IPC { template<> -ErrorOr encode(Encoder&, WebView::DOMNodeProperties const&); +WEBVIEW_API ErrorOr encode(Encoder&, WebView::DOMNodeProperties const&); template<> -ErrorOr decode(Decoder&); +WEBVIEW_API ErrorOr decode(Decoder&); } diff --git a/Libraries/LibWebView/Database.h b/Libraries/LibWebView/Database.h index 051ae639e34..044211a5b45 100644 --- a/Libraries/LibWebView/Database.h +++ b/Libraries/LibWebView/Database.h @@ -13,13 +13,14 @@ #include #include #include +#include struct sqlite3; struct sqlite3_stmt; namespace WebView { -class Database : public RefCounted { +class WEBVIEW_API Database : public RefCounted { public: static ErrorOr> create(); ~Database(); diff --git a/Libraries/LibWebView/EventLoop/EventLoopImplementationMacOS.h b/Libraries/LibWebView/EventLoop/EventLoopImplementationMacOS.h index a0df4f6b520..04fe394a1f5 100644 --- a/Libraries/LibWebView/EventLoop/EventLoopImplementationMacOS.h +++ b/Libraries/LibWebView/EventLoop/EventLoopImplementationMacOS.h @@ -9,10 +9,11 @@ #include #include #include +#include namespace WebView { -class EventLoopManagerMacOS final : public Core::EventLoopManager { +class WEBVIEW_API EventLoopManagerMacOS final : public Core::EventLoopManager { public: virtual NonnullOwnPtr make_implementation() override; @@ -28,7 +29,7 @@ public: virtual void unregister_signal(int) override; }; -class EventLoopImplementationMacOS final : public Core::EventLoopImplementation { +class WEBVIEW_API EventLoopImplementationMacOS final : public Core::EventLoopImplementation { public: // FIXME: This currently only manages the main NSApp event loop, as that is all we currently // interact with. When we need multiple event loops, or an event loop that isn't the diff --git a/Libraries/LibWebView/Forward.h b/Libraries/LibWebView/Forward.h index 6668ed1c3bc..bac362d1ec4 100644 --- a/Libraries/LibWebView/Forward.h +++ b/Libraries/LibWebView/Forward.h @@ -8,6 +8,7 @@ #include #include +#include namespace WebView { diff --git a/Libraries/LibWebView/HeadlessWebView.h b/Libraries/LibWebView/HeadlessWebView.h index 4b68d02b5a2..9f90434109d 100644 --- a/Libraries/LibWebView/HeadlessWebView.h +++ b/Libraries/LibWebView/HeadlessWebView.h @@ -10,11 +10,12 @@ #include #include #include +#include #include namespace WebView { -class HeadlessWebView : public WebView::ViewImplementation { +class WEBVIEW_API HeadlessWebView : public WebView::ViewImplementation { public: static NonnullOwnPtr create(Core::AnonymousBuffer theme, Web::DevicePixelSize window_size); static NonnullOwnPtr create_child(HeadlessWebView&, u64 page_index); diff --git a/Libraries/LibWebView/HelperProcess.h b/Libraries/LibWebView/HelperProcess.h index fb258851514..7412f2e2ffc 100644 --- a/Libraries/LibWebView/HelperProcess.h +++ b/Libraries/LibWebView/HelperProcess.h @@ -12,25 +12,26 @@ #include #include #include +#include #include #include namespace WebView { -ErrorOr> launch_web_content_process( +WEBVIEW_API ErrorOr> launch_web_content_process( WebView::ViewImplementation& view, IPC::File image_decoder_socket, Optional request_server_socket = {}); -ErrorOr> launch_spare_web_content_process( +WEBVIEW_API ErrorOr> launch_spare_web_content_process( IPC::File image_decoder_socket, Optional request_server_socket = {}); -ErrorOr> launch_image_decoder_process(); -ErrorOr> launch_web_worker_process(Web::Bindings::AgentType); -ErrorOr> launch_request_server_process(); +WEBVIEW_API ErrorOr> launch_image_decoder_process(); +WEBVIEW_API ErrorOr> launch_web_worker_process(Web::Bindings::AgentType); +WEBVIEW_API ErrorOr> launch_request_server_process(); -ErrorOr connect_new_request_server_client(); -ErrorOr connect_new_image_decoder_client(); +WEBVIEW_API ErrorOr connect_new_request_server_client(); +WEBVIEW_API ErrorOr connect_new_image_decoder_client(); } diff --git a/Libraries/LibWebView/MachPortServer.h b/Libraries/LibWebView/MachPortServer.h index 7fdf4f673fe..802c7d6d584 100644 --- a/Libraries/LibWebView/MachPortServer.h +++ b/Libraries/LibWebView/MachPortServer.h @@ -11,6 +11,7 @@ #include #include #include +#include #if !defined(AK_OS_MACH) # error "This file is only for Mach kernel-based OS's" @@ -18,7 +19,7 @@ namespace WebView { -class MachPortServer { +class WEBVIEW_API MachPortServer { public: MachPortServer(); diff --git a/Libraries/LibWebView/Mutation.h b/Libraries/LibWebView/Mutation.h index 94187bc8602..b0f150cf507 100644 --- a/Libraries/LibWebView/Mutation.h +++ b/Libraries/LibWebView/Mutation.h @@ -11,25 +11,26 @@ #include #include #include +#include namespace WebView { -struct AttributeMutation { +struct WEBVIEW_API AttributeMutation { String attribute_name; Optional new_value; }; -struct CharacterDataMutation { +struct WEBVIEW_API CharacterDataMutation { String new_value; }; -struct ChildListMutation { +struct WEBVIEW_API ChildListMutation { Vector added; Vector removed; size_t target_child_count { 0 }; }; -struct Mutation { +struct WEBVIEW_API Mutation { using Type = Variant; String type; @@ -61,9 +62,9 @@ template<> ErrorOr decode(Decoder&); template<> -ErrorOr encode(Encoder&, WebView::Mutation const&); +WEBVIEW_API ErrorOr encode(Encoder&, WebView::Mutation const&); template<> -ErrorOr decode(Decoder&); +WEBVIEW_API ErrorOr decode(Decoder&); } diff --git a/Libraries/LibWebView/Plugins/FontPlugin.h b/Libraries/LibWebView/Plugins/FontPlugin.h index a85816cdafd..f472f325edc 100644 --- a/Libraries/LibWebView/Plugins/FontPlugin.h +++ b/Libraries/LibWebView/Plugins/FontPlugin.h @@ -10,10 +10,11 @@ #include #include #include +#include namespace WebView { -class FontPlugin final : public Web::Platform::FontPlugin { +class WEBVIEW_API FontPlugin final : public Web::Platform::FontPlugin { public: FontPlugin(bool is_layout_test_mode, Gfx::SystemFontProvider* = nullptr); virtual ~FontPlugin(); diff --git a/Libraries/LibWebView/Plugins/ImageCodecPlugin.h b/Libraries/LibWebView/Plugins/ImageCodecPlugin.h index 984045cad15..148efd0921e 100644 --- a/Libraries/LibWebView/Plugins/ImageCodecPlugin.h +++ b/Libraries/LibWebView/Plugins/ImageCodecPlugin.h @@ -9,10 +9,11 @@ #include #include +#include namespace WebView { -class ImageCodecPlugin final : public Web::Platform::ImageCodecPlugin { +class WEBVIEW_API ImageCodecPlugin final : public Web::Platform::ImageCodecPlugin { public: explicit ImageCodecPlugin(NonnullRefPtr); virtual ~ImageCodecPlugin() override; diff --git a/Libraries/LibWebView/Process.h b/Libraries/LibWebView/Process.h index cd80a2c1884..bea0ad63771 100644 --- a/Libraries/LibWebView/Process.h +++ b/Libraries/LibWebView/Process.h @@ -11,11 +11,12 @@ #include #include #include +#include #include namespace WebView { -class Process { +class WEBVIEW_API Process { AK_MAKE_NONCOPYABLE(Process); AK_MAKE_DEFAULT_MOVABLE(Process); diff --git a/Libraries/LibWebView/ProcessManager.h b/Libraries/LibWebView/ProcessManager.h index 7ac283b1940..6ce1220373e 100644 --- a/Libraries/LibWebView/ProcessManager.h +++ b/Libraries/LibWebView/ProcessManager.h @@ -16,10 +16,10 @@ namespace WebView { -ProcessType process_type_from_name(StringView); -StringView process_name_from_type(ProcessType type); +WEBVIEW_API ProcessType process_type_from_name(StringView); +WEBVIEW_API StringView process_name_from_type(ProcessType type); -class ProcessManager { +class WEBVIEW_API ProcessManager { AK_MAKE_NONCOPYABLE(ProcessManager); public: diff --git a/Libraries/LibWebView/SearchEngine.h b/Libraries/LibWebView/SearchEngine.h index d526e796f00..a4539d166b0 100644 --- a/Libraries/LibWebView/SearchEngine.h +++ b/Libraries/LibWebView/SearchEngine.h @@ -9,17 +9,18 @@ #include #include #include +#include namespace WebView { struct SearchEngine { - String format_search_query_for_display(StringView query) const; - String format_search_query_for_navigation(StringView query) const; + WEBVIEW_API String format_search_query_for_display(StringView query) const; + WEBVIEW_API String format_search_query_for_navigation(StringView query) const; String name; String query_url; }; -ReadonlySpan builtin_search_engines(); +WEBVIEW_API ReadonlySpan builtin_search_engines(); } diff --git a/Libraries/LibWebView/Settings.h b/Libraries/LibWebView/Settings.h index 2c3f457fc59..725d7548050 100644 --- a/Libraries/LibWebView/Settings.h +++ b/Libraries/LibWebView/Settings.h @@ -18,7 +18,7 @@ namespace WebView { -struct SiteSetting { +struct WEBVIEW_API SiteSetting { SiteSetting(); bool enabled_globally { false }; @@ -30,7 +30,7 @@ enum class DoNotTrack { Yes, }; -class SettingsObserver { +class WEBVIEW_API SettingsObserver { public: explicit SettingsObserver(); virtual ~SettingsObserver(); @@ -44,7 +44,7 @@ public: virtual void dns_settings_changed() { } }; -class Settings { +class WEBVIEW_API Settings { public: static Settings create(Badge); diff --git a/Libraries/LibWebView/SiteIsolation.h b/Libraries/LibWebView/SiteIsolation.h index 0f76a2204a7..9b0e33281cc 100644 --- a/Libraries/LibWebView/SiteIsolation.h +++ b/Libraries/LibWebView/SiteIsolation.h @@ -7,10 +7,11 @@ #pragma once #include +#include namespace WebView { -void disable_site_isolation(); -[[nodiscard]] bool is_url_suitable_for_same_process_navigation(URL::URL const& current_url, URL::URL const& target_url); +WEBVIEW_API void disable_site_isolation(); +[[nodiscard]] WEBVIEW_API bool is_url_suitable_for_same_process_navigation(URL::URL const& current_url, URL::URL const& target_url); } diff --git a/Libraries/LibWebView/SourceHighlighter.h b/Libraries/LibWebView/SourceHighlighter.h index 603913cec8b..3344871e5b5 100644 --- a/Libraries/LibWebView/SourceHighlighter.h +++ b/Libraries/LibWebView/SourceHighlighter.h @@ -14,6 +14,7 @@ #include #include #include +#include namespace WebView { @@ -22,7 +23,7 @@ enum class HighlightOutputMode { SourceOnly, // Just the highlighted source }; -class SourceDocument final : public Syntax::Document { +class WEBVIEW_API SourceDocument final : public Syntax::Document { public: static NonnullRefPtr create(String const& source) { @@ -47,7 +48,7 @@ private: Vector m_lines; }; -class SourceHighlighterClient final : public Syntax::HighlighterClient { +class WEBVIEW_API SourceHighlighterClient final : public Syntax::HighlighterClient { public: SourceHighlighterClient(String const& source, Syntax::Language); virtual ~SourceHighlighterClient() = default; @@ -75,7 +76,7 @@ private: OwnPtr m_highlighter; }; -String highlight_source(Optional const&, URL::URL const& base_url, String const& source, Syntax::Language, HighlightOutputMode); +WEBVIEW_API String highlight_source(Optional const&, URL::URL const& base_url, String const& source, Syntax::Language, HighlightOutputMode); constexpr inline StringView HTML_HIGHLIGHTER_STYLE = R"~~~( @media (prefers-color-scheme: dark) { diff --git a/Libraries/LibWebView/StorageJar.h b/Libraries/LibWebView/StorageJar.h index 14b88b2d580..39b835ecd5a 100644 --- a/Libraries/LibWebView/StorageJar.h +++ b/Libraries/LibWebView/StorageJar.h @@ -26,7 +26,7 @@ struct StorageLocation { String bottle_key; }; -class StorageJar { +class WEBVIEW_API StorageJar { AK_MAKE_NONCOPYABLE(StorageJar); AK_MAKE_NONMOVABLE(StorageJar); diff --git a/Libraries/LibWebView/URL.h b/Libraries/LibWebView/URL.h index 780eb4c3571..c5f7884f25b 100644 --- a/Libraries/LibWebView/URL.h +++ b/Libraries/LibWebView/URL.h @@ -9,6 +9,7 @@ #include #include #include +#include #include namespace WebView { @@ -17,15 +18,15 @@ enum class AppendTLD { No, Yes, }; -Optional sanitize_url(StringView, Optional const& search_engine = {}, AppendTLD = AppendTLD::No); -Vector sanitize_urls(ReadonlySpan raw_urls, URL::URL const& new_tab_page_url); +WEBVIEW_API Optional sanitize_url(StringView, Optional const& search_engine = {}, AppendTLD = AppendTLD::No); +WEBVIEW_API Vector sanitize_urls(ReadonlySpan raw_urls, URL::URL const& new_tab_page_url); struct URLParts { StringView scheme_and_subdomain; StringView effective_tld_plus_one; StringView remainder; }; -Optional break_url_into_parts(StringView url); +WEBVIEW_API Optional break_url_into_parts(StringView url); // These are both used for the "right-click -> copy FOO" interaction for links. enum class URLType { @@ -33,7 +34,7 @@ enum class URLType { Telephone, Other, }; -URLType url_type(URL::URL const&); -String url_text_to_copy(URL::URL const&); +WEBVIEW_API URLType url_type(URL::URL const&); +WEBVIEW_API String url_text_to_copy(URL::URL const&); } diff --git a/Libraries/LibWebView/UserAgent.h b/Libraries/LibWebView/UserAgent.h index 34e9a7c2a84..2dddd85f453 100644 --- a/Libraries/LibWebView/UserAgent.h +++ b/Libraries/LibWebView/UserAgent.h @@ -9,11 +9,12 @@ #include #include #include +#include namespace WebView { -extern OrderedHashMap const user_agents; +WEBVIEW_API extern OrderedHashMap const user_agents; -Optional normalize_user_agent_name(StringView); +WEBVIEW_API Optional normalize_user_agent_name(StringView); } diff --git a/Libraries/LibWebView/Utilities.h b/Libraries/LibWebView/Utilities.h index 9bcc835625b..0efd72c7172 100644 --- a/Libraries/LibWebView/Utilities.h +++ b/Libraries/LibWebView/Utilities.h @@ -11,17 +11,18 @@ #include #include #include +#include namespace WebView { -void platform_init(Optional ladybird_binary_path = {}); -void copy_default_config_files(StringView config_path); -ErrorOr> get_paths_for_helper_process(StringView process_name); +WEBVIEW_API void platform_init(Optional ladybird_binary_path = {}); +WEBVIEW_API void copy_default_config_files(StringView config_path); +WEBVIEW_API ErrorOr> get_paths_for_helper_process(StringView process_name); -extern ByteString s_ladybird_resource_root; -Optional mach_server_name(); -void set_mach_server_name(ByteString name); +WEBVIEW_API extern ByteString s_ladybird_resource_root; +WEBVIEW_API Optional mach_server_name(); +WEBVIEW_API void set_mach_server_name(ByteString name); -ErrorOr handle_attached_debugger(); +WEBVIEW_API ErrorOr handle_attached_debugger(); } diff --git a/Libraries/LibWebView/ViewImplementation.h b/Libraries/LibWebView/ViewImplementation.h index 23371e149c8..6e899a29184 100644 --- a/Libraries/LibWebView/ViewImplementation.h +++ b/Libraries/LibWebView/ViewImplementation.h @@ -34,7 +34,7 @@ namespace WebView { -class ViewImplementation : public SettingsObserver { +class WEBVIEW_API ViewImplementation : public SettingsObserver { public: virtual ~ViewImplementation(); diff --git a/Libraries/LibWebView/WebContentClient.h b/Libraries/LibWebView/WebContentClient.h index f729146ba86..53c25fbb5a1 100644 --- a/Libraries/LibWebView/WebContentClient.h +++ b/Libraries/LibWebView/WebContentClient.h @@ -26,7 +26,7 @@ namespace WebView { class ViewImplementation; -class WebContentClient final +class WEBVIEW_API WebContentClient final : public IPC::ConnectionToServer , public WebContentClientEndpoint { C_OBJECT_ABSTRACT(WebContentClient); diff --git a/Libraries/LibWebView/WebUI.h b/Libraries/LibWebView/WebUI.h index 5f13c8ab9ec..556178ef11d 100644 --- a/Libraries/LibWebView/WebUI.h +++ b/Libraries/LibWebView/WebUI.h @@ -20,7 +20,7 @@ namespace WebView { -class WebUI +class WEBVIEW_API WebUI : public IPC::ConnectionToServer , public WebUIClientEndpoint { public: diff --git a/Libraries/LibWebView/WebUI/ProcessesUI.h b/Libraries/LibWebView/WebUI/ProcessesUI.h index 0af21336809..c97de413cec 100644 --- a/Libraries/LibWebView/WebUI/ProcessesUI.h +++ b/Libraries/LibWebView/WebUI/ProcessesUI.h @@ -6,11 +6,12 @@ #pragma once +#include #include namespace WebView { -class ProcessesUI : public WebUI { +class WEBVIEW_API ProcessesUI : public WebUI { WEB_UI(ProcessesUI); private: diff --git a/Libraries/LibWebView/WebUI/SettingsUI.h b/Libraries/LibWebView/WebUI/SettingsUI.h index a956ce47974..acdedcc967b 100644 --- a/Libraries/LibWebView/WebUI/SettingsUI.h +++ b/Libraries/LibWebView/WebUI/SettingsUI.h @@ -6,11 +6,12 @@ #pragma once +#include #include namespace WebView { -class SettingsUI : public WebUI { +class WEBVIEW_API SettingsUI : public WebUI { WEB_UI(SettingsUI); private: diff --git a/Services/WebContent/CMakeLists.txt b/Services/WebContent/CMakeLists.txt index 5a225ad069b..213e89caa9b 100644 --- a/Services/WebContent/CMakeLists.txt +++ b/Services/WebContent/CMakeLists.txt @@ -52,7 +52,7 @@ 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 + # FIXME: This is a hack to get around lld-link error undefined symbols in LibWeb target_link_libraries(WebContent PRIVATE $,INCLUDE,AbortSignal> $,INCLUDE,AttributeNames> @@ -78,7 +78,6 @@ if(WIN32) $,INCLUDE,TransformStream> $,INCLUDE,WebUI> $,INCLUDE,WritableStream> - $,INCLUDE,Utilities> ) find_package(unofficial-angle REQUIRED CONFIG) target_link_libraries(WebContent PRIVATE LibTextCodec unofficial::angle::libGLESv2) diff --git a/Services/WebWorker/CMakeLists.txt b/Services/WebWorker/CMakeLists.txt index c341453ce72..1567cd228ab 100644 --- a/Services/WebWorker/CMakeLists.txt +++ b/Services/WebWorker/CMakeLists.txt @@ -22,7 +22,7 @@ target_include_directories(WebWorker PRIVATE ${LADYBIRD_SOURCE_DIR}) target_link_libraries(WebWorker PRIVATE webworkerservice) if(WIN32) - # FIXME: This is a hack to get around lld-link error undefined symbols in various libraries + # FIXME: This is a hack to get around lld-link error undefined symbols in LibWeb target_link_libraries(webworkerservice PRIVATE $,INCLUDE,CallbackType> $,INCLUDE,DedicatedWorkerGlobalScope> diff --git a/Tests/LibWeb/test-web/CMakeLists.txt b/Tests/LibWeb/test-web/CMakeLists.txt index dd0efdb1b54..24b91f9f54c 100644 --- a/Tests/LibWeb/test-web/CMakeLists.txt +++ b/Tests/LibWeb/test-web/CMakeLists.txt @@ -13,12 +13,6 @@ target_link_libraries(test-web PRIVATE AK LibCore LibDiff LibFileSystem LibGfx L if (APPLE) target_compile_definitions(test-web PRIVATE LADYBIRD_BINARY_PATH="$") elseif (WIN32) - # FIXME: This is a hack to get around lld-link error undefined symbols in various libraries - target_link_libraries(test-web PRIVATE - $,INCLUDE,Application> - $,INCLUDE,Utilities> - $,INCLUDE,WebContentClient> - ) target_link_libraries(test-web PRIVATE LibDevTools) find_package(pthread REQUIRED) target_include_directories(test-web PRIVATE $) diff --git a/UI/CMakeLists.txt b/UI/CMakeLists.txt index 62e587e91ef..3f7c42fa147 100644 --- a/UI/CMakeLists.txt +++ b/UI/CMakeLists.txt @@ -77,14 +77,7 @@ target_include_directories(${LADYBIRD_TARGET} ${LADYBIRD_SOURCE_DIR}) target_include_directories(${LADYBIRD_TARGET} ${LADYBIRD_SOURCE_DIR}/Services/) if(WIN32) - # FIXME: This is a hack to get around lld-link error undefined symbols in various libraries - target_link_libraries(${LADYBIRD_TARGET} - $,INCLUDE,Application> - $,INCLUDE,UserAgent> - $,INCLUDE,Utilities> - $,INCLUDE,WebContentClient> - LibDevTools - ) + target_link_libraries(${LADYBIRD_TARGET} LibDevTools) endif() function(set_helper_process_properties)