From 432645dd5ef3f033057199fd3ee3752529aecc56 Mon Sep 17 00:00:00 2001 From: MarshallVielmetti Date: Thu, 4 Jul 2024 09:12:33 -0400 Subject: [PATCH 1/3] added persistence checking to CefQueryCallback_N.cpp --- native/CefQueryCallback_N.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/native/CefQueryCallback_N.cpp b/native/CefQueryCallback_N.cpp index 017ff1aa..f5959049 100644 --- a/native/CefQueryCallback_N.cpp +++ b/native/CefQueryCallback_N.cpp @@ -31,7 +31,12 @@ Java_org_cef_callback_CefQueryCallback_1N_N_1Success(JNIEnv* env, if (!callback) return; callback->Success(GetJNIString(env, response)); - ClearSelf(env, obj); + + bool persistent = false; + JNI_CALL_BOOLEAN_METHOD(persistent, env, obj, "getIsPersistent", "()Z"); + + if (!persistent) + ClearSelf(env, obj); } JNIEXPORT void JNICALL From ab34e099501f30ab0b3ba4ebc07c31f24e3dfe6e Mon Sep 17 00:00:00 2001 From: MarshallVielmetti Date: Thu, 4 Jul 2024 09:13:43 -0400 Subject: [PATCH 2/3] added persistent_ flag to CefQueryCallback_N in Javaside --- java/org/cef/callback/CefQueryCallback_N.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/java/org/cef/callback/CefQueryCallback_N.java b/java/org/cef/callback/CefQueryCallback_N.java index 14b32e3a..b57859a9 100644 --- a/java/org/cef/callback/CefQueryCallback_N.java +++ b/java/org/cef/callback/CefQueryCallback_N.java @@ -5,7 +5,10 @@ package org.cef.callback; class CefQueryCallback_N extends CefNativeAdapter implements CefQueryCallback { - CefQueryCallback_N() {} + private boolean persistent_; + + CefQueryCallback_N() { + } @Override protected void finalize() throws Throwable { @@ -31,6 +34,15 @@ public void failure(int error_code, String error_message) { } } + private void makePersistent() { + this.persistent_ = true; + } + + private boolean getIsPersistent() { + return this.persistent_; + } + private final native void N_Success(long self, String response); + private final native void N_Failure(long self, int error_code, String error_message); } From 69ea19b6e7e87d099ba9eec69a9abe37d6123acb Mon Sep 17 00:00:00 2001 From: MarshallVielmetti Date: Thu, 4 Jul 2024 09:15:15 -0400 Subject: [PATCH 3/3] call makePersistent in message_router_handler.cpp --- native/message_router_handler.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/native/message_router_handler.cpp b/native/message_router_handler.cpp index 793ccf7c..20fb0feb 100644 --- a/native/message_router_handler.cpp +++ b/native/message_router_handler.cpp @@ -44,6 +44,9 @@ bool MessageRouterHandler::OnQuery( jboolean jresult = JNI_FALSE; + if (persistent) + JNI_CALL_VOID_METHOD(env, jcallback.get(), "makePersistent", "()V"); + JNI_CALL_METHOD(env, handle_, "onQuery", "(Lorg/cef/browser/CefBrowser;Lorg/cef/browser/" "CefFrame;JLjava/lang/String;ZLorg/cef/"