From 4d97b2986636f739c96de016e902820350b72638 Mon Sep 17 00:00:00 2001 From: Alex Studer Date: Wed, 3 Jul 2024 17:31:23 -0400 Subject: [PATCH] Android: Create a WebView::Application object to placate LibWebView LibWebView uses the Application object in WebContentClient.cpp, so we need one to exist. It doesn't really do anything, since we never add processes to it, but it just has to exist. --- Ladybird/Android/src/main/cpp/LadybirdActivity.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Ladybird/Android/src/main/cpp/LadybirdActivity.cpp b/Ladybird/Android/src/main/cpp/LadybirdActivity.cpp index a590a9552b6..e4a60ef0eb3 100644 --- a/Ladybird/Android/src/main/cpp/LadybirdActivity.cpp +++ b/Ladybird/Android/src/main/cpp/LadybirdActivity.cpp @@ -19,11 +19,13 @@ #include #include #include +#include #include static ErrorOr extract_tar_archive(String archive_file, ByteString output_directory); JavaVM* global_vm; +static OwnPtr s_application; static OwnPtr s_main_event_loop; static jobject s_java_instance; static jmethodID s_schedule_event_loop_method; @@ -69,6 +71,11 @@ Java_org_serenityos_ladybird_LadybirdActivity_initNativeCode(JNIEnv* env, jobjec }; Core::EventLoopManager::install(*event_loop_manager); s_main_event_loop = make(); + + // FIXME: We are not making use of this Application object to track our processes. + // So, right now, the Application's ProcessManager is constantly empty. + // (However, LibWebView depends on an Application object existing, so we do have to actually create one.) + s_application = make(0, nullptr); } extern "C" JNIEXPORT void JNICALL @@ -84,6 +91,7 @@ Java_org_serenityos_ladybird_LadybirdActivity_disposeNativeCode(JNIEnv* env, job { s_main_event_loop = nullptr; s_schedule_event_loop_method = nullptr; + s_application = nullptr; env->DeleteGlobalRef(s_java_instance); delete &Core::EventLoopManager::the();