diff --git a/Libraries/LibWebView/Application.h b/Libraries/LibWebView/Application.h index 503aa9780cd..fcc9eb4e037 100644 --- a/Libraries/LibWebView/Application.h +++ b/Libraries/LibWebView/Application.h @@ -6,7 +6,6 @@ #pragma once -#include #include #include #include @@ -71,17 +70,10 @@ public: void refresh_tab_list(); protected: - template ApplicationType> - static NonnullOwnPtr create(Main::Arguments const& arguments) - { - auto app = adopt_own(*new ApplicationType { {} }); - app->initialize(arguments); - - return app; - } - Application(); + void initialize(Main::Arguments const&); + virtual void process_did_exit(Process&&); virtual void create_platform_arguments(Core::ArgsParser&) { } @@ -93,8 +85,6 @@ protected: Main::Arguments& arguments() { return m_arguments; } private: - void initialize(Main::Arguments const& arguments); - void launch_spare_web_content_process(); ErrorOr launch_request_server(); ErrorOr launch_image_decoder_server(); @@ -160,16 +150,17 @@ private: } -#define WEB_VIEW_APPLICATION(ApplicationType) \ -public: \ - static NonnullOwnPtr create(Main::Arguments const& arguments) \ - { \ - return WebView::Application::create(arguments); \ - } \ - \ - static ApplicationType& the() \ - { \ - return static_cast(WebView::Application::the()); \ - } \ - \ - ApplicationType(Badge); +#define WEB_VIEW_APPLICATION(ApplicationType) \ +public: \ + template \ + static NonnullOwnPtr create(Main::Arguments const& arguments, ApplicationArguments&&... application_arguments) \ + { \ + auto app = adopt_own(*new ApplicationType { forward(application_arguments)... }); \ + app->initialize(arguments); \ + return app; \ + } \ + \ + static ApplicationType& the() \ + { \ + return static_cast(WebView::Application::the()); \ + } diff --git a/Tests/LibWeb/test-web/Application.cpp b/Tests/LibWeb/test-web/Application.cpp index 405fb740971..2c036202f8f 100644 --- a/Tests/LibWeb/test-web/Application.cpp +++ b/Tests/LibWeb/test-web/Application.cpp @@ -14,7 +14,7 @@ namespace TestWeb { -Application::Application(Badge) +Application::Application() : test_concurrency(Core::System::hardware_concurrency()) , python_executable_path("python3") { diff --git a/Tests/LibWeb/test-web/Application.h b/Tests/LibWeb/test-web/Application.h index 2fb0721270e..33c7593f4d8 100644 --- a/Tests/LibWeb/test-web/Application.h +++ b/Tests/LibWeb/test-web/Application.h @@ -17,6 +17,7 @@ class Application : public WebView::Application { WEB_VIEW_APPLICATION(Application) public: + explicit Application(); ~Application(); virtual void create_platform_arguments(Core::ArgsParser&) override; diff --git a/UI/AppKit/Application/Application.h b/UI/AppKit/Application/Application.h index c44aafbe4a7..ad0f07ab431 100644 --- a/UI/AppKit/Application/Application.h +++ b/UI/AppKit/Application/Application.h @@ -16,6 +16,8 @@ class Application final : public WebView::Application { WEB_VIEW_APPLICATION(Application) private: + explicit Application(); + virtual Optional ask_user_for_download_folder() const override; virtual NonnullOwnPtr create_platform_event_loop() override; }; diff --git a/UI/AppKit/Application/Application.mm b/UI/AppKit/Application/Application.mm index 1a90e5a6e5b..4fbdb2c85b9 100644 --- a/UI/AppKit/Application/Application.mm +++ b/UI/AppKit/Application/Application.mm @@ -17,9 +17,7 @@ namespace Ladybird { -Application::Application(Badge) -{ -} +Application::Application() = default; Optional Application::ask_user_for_download_folder() const { diff --git a/UI/Qt/Application.cpp b/UI/Qt/Application.cpp index 02043589638..04b156f0484 100644 --- a/UI/Qt/Application.cpp +++ b/UI/Qt/Application.cpp @@ -48,10 +48,7 @@ public: } }; -Application::Application(Badge) -{ -} - +Application::Application() = default; Application::~Application() = default; void Application::create_platform_options(WebView::BrowserOptions&, WebView::WebContentOptions& web_content_options) diff --git a/UI/Qt/Application.h b/UI/Qt/Application.h index 5fbe4e9b5e4..e9b6071c7e7 100644 --- a/UI/Qt/Application.h +++ b/UI/Qt/Application.h @@ -29,6 +29,8 @@ public: void set_active_window(BrowserWindow& w) { m_active_window = &w; } private: + explicit Application(); + virtual void create_platform_options(WebView::BrowserOptions&, WebView::WebContentOptions&) override; virtual NonnullOwnPtr create_platform_event_loop() override;