Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package qt6-webview for openSUSE:Factory 
checked in at 2024-04-08 17:38:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qt6-webview (Old)
 and      /work/SRC/openSUSE:Factory/.qt6-webview.new.1905 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "qt6-webview"

Mon Apr  8 17:38:19 2024 rev:16 rq:1165814 version:6.7.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/qt6-webview/qt6-webview.changes  2024-03-28 
14:11:51.092064728 +0100
+++ /work/SRC/openSUSE:Factory/.qt6-webview.new.1905/qt6-webview.changes        
2024-04-08 17:50:10.565044199 +0200
@@ -1,0 +2,6 @@
+Tue Apr  2 13:40:06 UTC 2024 - Christophe Marin <christo...@krop.fr>
+
+- Update to 6.7.0:
+  * https://www.qt.io/blog/qt-6.7-released
+
+-------------------------------------------------------------------

Old:
----
  qtwebview-everywhere-src-6.6.3.tar.xz

New:
----
  qtwebview-everywhere-src-6.7.0.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ qt6-webview.spec ++++++
--- /var/tmp/diff_new_pack.cGtfDN/_old  2024-04-08 17:50:11.121064720 +0200
+++ /var/tmp/diff_new_pack.cGtfDN/_new  2024-04-08 17:50:11.125064867 +0200
@@ -16,8 +16,8 @@
 #
 
 
-%define real_version 6.6.3
-%define short_version 6.6
+%define real_version 6.7.0
+%define short_version 6.7
 %define tar_name qtwebview-everywhere-src
 %define tar_suffix %{nil}
 #
@@ -27,7 +27,7 @@
 %endif
 #
 Name:           qt6-webview%{?pkg_suffix}
-Version:        6.6.3
+Version:        6.7.0
 Release:        0
 Summary:        Qt 6 WebView library
 License:        LGPL-3.0-only OR (GPL-2.0-only OR GPL-3.0-or-later)
@@ -46,7 +46,7 @@
 BuildRequires:  cmake(Qt6WebEngineCore) = %{real_version}
 BuildRequires:  cmake(Qt6WebEngineQuick) = %{real_version}
 # Only available where qtwebengine is
-ExclusiveArch:  aarch64 x86_64 riscv64
+ExclusiveArch:  aarch64 x86_64 %x86_64 riscv64
 %if "%{qt6_flavor}" == "docs"
 BuildRequires:  qt6-tools
 %{qt6_doc_packages}

++++++ qtwebview-everywhere-src-6.6.3.tar.xz -> 
qtwebview-everywhere-src-6.7.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtwebview-everywhere-src-6.6.3/.cmake.conf 
new/qtwebview-everywhere-src-6.7.0/.cmake.conf
--- old/qtwebview-everywhere-src-6.6.3/.cmake.conf      2024-03-19 
15:23:24.000000000 +0100
+++ new/qtwebview-everywhere-src-6.7.0/.cmake.conf      2024-03-23 
03:14:31.000000000 +0100
@@ -1,3 +1,4 @@
-set(QT_REPO_MODULE_VERSION "6.6.3")
+set(QT_REPO_MODULE_VERSION "6.7.0")
 set(QT_REPO_MODULE_PRERELEASE_VERSION_SEGMENT "alpha1")
 set(QT_EXTRA_INTERNAL_TARGET_DEFINES "QT_NO_AS_CONST=1")
+list(APPEND QT_EXTRA_INTERNAL_TARGET_DEFINES "QT_NO_FOREACH=1")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtwebview-everywhere-src-6.6.3/.tag 
new/qtwebview-everywhere-src-6.7.0/.tag
--- old/qtwebview-everywhere-src-6.6.3/.tag     2024-03-19 15:23:24.000000000 
+0100
+++ new/qtwebview-everywhere-src-6.7.0/.tag     2024-03-23 03:14:31.000000000 
+0100
@@ -1 +1 @@
-2ba692f13a218edd824ae6307791faeb24c5a48b
+7548ee6677e7e9c02f51edff8676c1c29e2d108f
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebview-everywhere-src-6.6.3/coin/axivion/ci_config_linux.json 
new/qtwebview-everywhere-src-6.7.0/coin/axivion/ci_config_linux.json
--- old/qtwebview-everywhere-src-6.6.3/coin/axivion/ci_config_linux.json        
2024-03-19 15:23:24.000000000 +0100
+++ new/qtwebview-everywhere-src-6.7.0/coin/axivion/ci_config_linux.json        
2024-03-23 03:14:31.000000000 +0100
@@ -1,9 +1,5 @@
 {
     "Project": {
-        "Git": {
-            "_active": true,
-            "sourceserver_gitdir": 
"/data/axivion/databases/$(env:TESTED_MODULE_COIN).git"
-        },
         "BuildSystemIntegration": {
             "child_order": [
                 "GCCSetup",
@@ -32,29 +28,14 @@
                 "build/qml/*/lib*.so*.ir"
             ],
             "ir": "build/$(env:TESTED_MODULE_COIN).ir"
-        },
-        "Project-GlobalOptions": {
-            "directory": "../work/qt/$(env:TESTED_MODULE_COIN)",
-            "ir": "build/$(env:TESTED_MODULE_COIN).ir",
-            "name": "qt_$(env:TESTED_MODULE_COIN)_dev_$(env:TARGET_OS_COIN)"
-        }
-    },
-    "Results": {
-        "Dashboard": {
-            "dashboard_url": "https://axivion-srv.ci.qt.io/axivion/";
-        },
-        "Database": {
-            "ci_mode": {
-                "directory": "/data/axivion/databases"
-            }
         }
     },
     "_Format": "1.0",
-    "_Version": "trunk-9e0ef9c5818",
+    "_Version": "7.6.2",
     "_VersionNum": [
         7,
         6,
-        9999,
-        11489
+        2,
+        12725
     ]
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtwebview-everywhere-src-6.6.3/dependencies.yaml 
new/qtwebview-everywhere-src-6.7.0/dependencies.yaml
--- old/qtwebview-everywhere-src-6.6.3/dependencies.yaml        2024-03-19 
15:23:24.000000000 +0100
+++ new/qtwebview-everywhere-src-6.7.0/dependencies.yaml        2024-03-23 
03:14:31.000000000 +0100
@@ -1,7 +1,7 @@
 dependencies:
   ../qtdeclarative:
-    ref: ab5521fd1a637739c7e91def84caa84426055aff
+    ref: e6d14fcdc95713f65367499629f93fb1f1e35ec9
     required: true
   ../qtwebengine:
-    ref: ee8f63ea4b325404529f231273adf1fb6eb874d1
+    ref: 1a3e3a233d91037215851ac2821397fc9a846e64
     required: false
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebview-everywhere-src-6.6.3/examples/webview/CMakeLists.txt 
new/qtwebview-everywhere-src-6.7.0/examples/webview/CMakeLists.txt
--- old/qtwebview-everywhere-src-6.6.3/examples/webview/CMakeLists.txt  
2024-03-19 15:23:24.000000000 +0100
+++ new/qtwebview-everywhere-src-6.7.0/examples/webview/CMakeLists.txt  
2024-03-23 03:14:31.000000000 +0100
@@ -1,6 +1,6 @@
 # Copyright (C) 2022 The Qt Company Ltd.
 # SPDX-License-Identifier: BSD-3-Clause
 
-if(TARGET Qt::WebView)
+if(TARGET Qt6::WebView)
     qt_internal_add_example(minibrowser)
 endif()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebview-everywhere-src-6.6.3/examples/webview/minibrowser/CMakeLists.txt 
new/qtwebview-everywhere-src-6.7.0/examples/webview/minibrowser/CMakeLists.txt
--- 
old/qtwebview-everywhere-src-6.6.3/examples/webview/minibrowser/CMakeLists.txt  
    2024-03-19 15:23:24.000000000 +0100
+++ 
new/qtwebview-everywhere-src-6.7.0/examples/webview/minibrowser/CMakeLists.txt  
    2024-03-23 03:14:31.000000000 +0100
@@ -24,11 +24,11 @@
 )
 
 target_link_libraries(minibrowser PUBLIC
-    Qt::Core
-    Qt::Gui
-    Qt::Qml
-    Qt::Quick
-    Qt::WebView
+    Qt6::Core
+    Qt6::Gui
+    Qt6::Qml
+    Qt6::Quick
+    Qt6::WebView
 )
 
 # Resources:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebview-everywhere-src-6.6.3/src/jar/src/org/qtproject/qt/android/view/QtAndroidWebViewController.java
 
new/qtwebview-everywhere-src-6.7.0/src/jar/src/org/qtproject/qt/android/view/QtAndroidWebViewController.java
--- 
old/qtwebview-everywhere-src-6.6.3/src/jar/src/org/qtproject/qt/android/view/QtAndroidWebViewController.java
        2024-03-19 15:23:24.000000000 +0100
+++ 
new/qtwebview-everywhere-src-6.7.0/src/jar/src/org/qtproject/qt/android/view/QtAndroidWebViewController.java
        2024-03-23 03:14:31.000000000 +0100
@@ -59,8 +59,8 @@
     private native void c_onReceivedTitle(long id, String title);
     private native void c_onRunJavaScriptResult(long id, long callbackId, 
String result);
     private native void c_onReceivedError(long id, int errorCode, String 
description, String url);
-    private native void c_onCookieAdded(long id, boolean result, String 
domain, String name);
-    private native void c_onCookieRemoved(long id, boolean result, String 
domain, String name);
+    private static native void c_onCookieAdded(long id, boolean result, String 
domain, String name);
+    private static native void c_onCookieRemoved(long id, boolean result, 
String domain, String name);
 
     // We need to block the UI thread in some cases, if it takes to long we 
should timeout before
     // ANR kicks in... Usually the hard limit is set to 10s and if exceed that 
then we're in trouble.
@@ -627,7 +627,7 @@
         });
     }
 
-    private void setCookieImp(final String url, final String cookieString, 
ValueCallback<Boolean> callback)
+    private static void setCookieImp(final String url, final String 
cookieString, ValueCallback<Boolean> callback)
     {
         CookieManager cookieManager = CookieManager.getInstance();
         cookieManager.setAcceptCookie(true);
@@ -639,13 +639,13 @@
         }
     }
 
-    public void setCookie(final String url, final String cookieString)
+    public static void setCookie(final long id, final String url, final String 
cookieString)
     {
         setCookieImp(url, cookieString, new ValueCallback<Boolean>() {
             @Override
             public void onReceiveValue(Boolean value) {
                 try {
-                    c_onCookieAdded(m_id, value, url, 
cookieString.split("=")[0]);
+                    c_onCookieAdded(id, value, url, 
cookieString.split("=")[0]);
                 } catch (Exception e) {
                     e.printStackTrace();
                 }
@@ -653,7 +653,7 @@
         });
     }
 
-    private boolean hasValidCookie(final String url, final String cookieString)
+    private static boolean hasValidCookie(final String url, final String 
cookieString)
     {
         CookieManager cookieManager = CookieManager.getInstance();
         cookieManager.removeExpiredCookie();
@@ -677,12 +677,12 @@
         return cookieFound;
     }
 
-    private String getExpireString()
+    private static String getExpireString()
     {
         return "expires=\"Thu, 1 Jan 1970 00:00:00 GMT\"";
     }
 
-    public void removeCookie(final String url, final String cookieString)
+    public static void removeCookie(final long id, final String url, final 
String cookieString)
     {
         // We need to work with what we have
         // 1. Check if there's cookies for the url
@@ -696,7 +696,7 @@
                     try {
                         // 3. Verify that the cookie was indeed removed
                         final boolean removed = (hadCookie && 
!hasValidCookie(url, cookieString));
-                        c_onCookieRemoved(m_id, removed, url, 
cookieString.split("=")[0]);
+                        c_onCookieRemoved(id, removed, url, 
cookieString.split("=")[0]);
                     } catch (Exception e) {
                         e.printStackTrace();
                     }
@@ -705,7 +705,7 @@
         }
     }
 
-    public void removeCookies() {
+    public static void removeCookies() {
         try {
             CookieManager.getInstance().removeAllCookies(null);
         } catch (Exception e) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebview-everywhere-src-6.6.3/src/plugins/android/qandroidwebview.cpp 
new/qtwebview-everywhere-src-6.7.0/src/plugins/android/qandroidwebview.cpp
--- old/qtwebview-everywhere-src-6.6.3/src/plugins/android/qandroidwebview.cpp  
2024-03-19 15:23:24.000000000 +0100
+++ new/qtwebview-everywhere-src-6.7.0/src/plugins/android/qandroidwebview.cpp  
2024-03-23 03:14:31.000000000 +0100
@@ -7,24 +7,29 @@
 #include <QtCore/private/qjnihelpers_p.h>
 #include <QtCore/qjniobject.h>
 
-#include <QtCore/qmap.h>
-#include <android/bitmap.h>
-#include <QtGui/qguiapplication.h>
+#include <QtCore/qset.h>
 #include <QtCore/qjsondocument.h>
 #include <QtCore/qjsonobject.h>
 #include <QtCore/qurl.h>
 #include <QtCore/qdebug.h>
+#include <QtCore/qthread.h>
+#include <QtCore/qabstracteventdispatcher.h>
+
+#include <QtGui/qguiapplication.h>
 
-#include <QAbstractEventDispatcher>
-#include <QThread>
+#include <android/bitmap.h>
+#include <android/log.h>
 
 QT_BEGIN_NAMESPACE
 
-QAndroidWebViewSettingsPrivate::QAndroidWebViewSettingsPrivate(QJniObject 
viewController, QObject *p)
-    : QAbstractWebViewSettings(p)
-    , m_viewController(viewController)
-{
+Q_DECLARE_JNI_CLASS(Bitmap, "android/graphics/Bitmap");
 
+using namespace QtJniTypes;
+using namespace Qt::StringLiterals;
+
+QAndroidWebViewSettingsPrivate::QAndroidWebViewSettingsPrivate(const 
WebViewController &viewController, QObject *p)
+    : QAbstractWebViewSettings(p), m_viewController(viewController)
+{
 }
 
 bool QAndroidWebViewSettingsPrivate::localStorageEnabled() const
@@ -49,51 +54,30 @@
 
 void QAndroidWebViewSettingsPrivate::setLocalContentCanAccessFileUrls(bool 
enabled)
 {
-    m_viewController.callMethod<void>("setAllowFileAccessFromFileURLs", 
"(Z)V", enabled);
+    m_viewController.callMethod<void>("setAllowFileAccessFromFileURLs", 
enabled);
 }
 
 void QAndroidWebViewSettingsPrivate::setJavascriptEnabled(bool enabled)
 {
-    m_viewController.callMethod<void>("setJavaScriptEnabled", "(Z)V", enabled);
+    m_viewController.callMethod<void>("setJavaScriptEnabled", enabled);
 }
 
 void QAndroidWebViewSettingsPrivate::setLocalStorageEnabled(bool enabled)
 {
-    m_viewController.callMethod<void>("setLocalStorageEnabled", "(Z)V", 
enabled);
+    m_viewController.callMethod<void>("setLocalStorageEnabled", enabled);
 }
 
 void QAndroidWebViewSettingsPrivate::setAllowFileAccess(bool enabled)
 {
-    m_viewController.callMethod<void>("setAllowFileAccess", "(Z)V", enabled);
+    m_viewController.callMethod<void>("setAllowFileAccess", enabled);
 }
 
-static const char qtAndroidWebViewControllerClass[] = 
"org/qtproject/qt/android/view/QtAndroidWebViewController";
-
-//static bool favIcon(JNIEnv *env, jobject icon, QImage *image)
-//{
-//    // TODO:
-//    AndroidBitmapInfo bitmapInfo;
-//    if (AndroidBitmap_getInfo(env, icon, &bitmapInfo) != 
ANDROID_BITMAP_RESULT_SUCCESS)
-//        return false;
-
-//    void *pixelData;
-//    if (AndroidBitmap_lockPixels(env, icon, &pixelData) != 
ANDROID_BITMAP_RESULT_SUCCESS)
-//        return false;
-
-//    *image = QImage::fromData(static_cast<const uchar *>(pixelData), 
bitmapInfo.width * bitmapInfo.height);
-//    AndroidBitmap_unlockPixels(env, icon);
-
-//    return true;
-//}
-
-typedef QMap<quintptr, QAndroidWebViewPrivate *> WebViews;
+typedef QSet<QAndroidWebViewPrivate *> WebViews;
 Q_GLOBAL_STATIC(WebViews, g_webViews)
 
 QAndroidWebViewPrivate::QAndroidWebViewPrivate(QObject *p)
-    : QAbstractWebView(p)
-    , m_id(reinterpret_cast<quintptr>(this))
-    , m_callbackId(0)
-    , m_window(0)
+    : QAbstractWebView(p) , m_callbackId(0) , m_window(nullptr)
+    , m_viewController(nullptr) , m_webView(nullptr)
 {
     // QtAndroidWebViewController constructor blocks a qGuiThread until
     // the WebView is created and configured in UI thread.
@@ -104,26 +88,22 @@
             eventDispatcher->processEvents(
                     
QEventLoop::ExcludeUserInputEvents|QEventLoop::ExcludeSocketNotifiers);
     }
-    m_viewController = QJniObject(qtAndroidWebViewControllerClass,
-                                  "(Landroid/app/Activity;J)V",
-                                  QtAndroidPrivate::activity(),
-                                  m_id);
+    m_viewController = WebViewController(QtAndroidPrivate::activity(), 
reinterpret_cast<jlong>(this));
 
     QtAndroidPrivate::releaseAndroidDeadlockProtector();
 
-    m_webView = m_viewController.callObjectMethod("getWebView",
-                                                  
"()Landroid/webkit/WebView;");
+    m_webView = m_viewController.callMethod<WebView>("getWebView");
     m_settings = new QAndroidWebViewSettingsPrivate(m_viewController, this);
 
     m_window = QWindow::fromWinId(reinterpret_cast<WId>(m_webView.object()));
-    g_webViews->insert(m_id, this);
+    g_webViews->insert(this);
     connect(qApp, &QGuiApplication::applicationStateChanged,
             this, &QAndroidWebViewPrivate::onApplicationStateChanged);
 }
 
 QAndroidWebViewPrivate::~QAndroidWebViewPrivate()
 {
-    g_webViews->take(m_id);
+    g_webViews->remove(this);
     if (m_window != 0) {
         m_window->setVisible(false);
         m_window->setParent(0);
@@ -135,52 +115,40 @@
 
 QString QAndroidWebViewPrivate::httpUserAgent() const
 {
-    return QString( 
m_viewController.callObjectMethod<jstring>("getUserAgent").toString());
+    return m_viewController.callMethod<QString>("getUserAgent");
 }
 
 void QAndroidWebViewPrivate::setHttpUserAgent(const QString &userAgent)
 {
-    m_viewController.callMethod<void>("setUserAgent",
-                                      "(Ljava/lang/String;)V",
-                                      
QJniObject::fromString(userAgent).object());
+    m_viewController.callMethod<void>("setUserAgent", userAgent);
     Q_EMIT httpUserAgentChanged(userAgent);
 }
 
 QUrl QAndroidWebViewPrivate::url() const
 {
-    return 
QUrl::fromUserInput(m_viewController.callObjectMethod<jstring>("getUrl").toString());
+    return QUrl::fromUserInput(m_viewController.callMethod<QString>("getUrl"));
 }
 
 void QAndroidWebViewPrivate::setUrl(const QUrl &url)
 {
-    m_viewController.callMethod<void>("loadUrl",
-                                      "(Ljava/lang/String;)V",
-                                      
QJniObject::fromString(url.toString()).object());
+    m_viewController.callMethod<void>("loadUrl", url.toString());
 }
 
 void QAndroidWebViewPrivate::loadHtml(const QString &html, const QUrl &baseUrl)
 {
-    const QJniObject &htmlString = QJniObject::fromString(html);
-    const QJniObject &mimeTypeString = 
QJniObject::fromString(QLatin1String("text/html;charset=UTF-8"));
-
-    baseUrl.isEmpty() ? m_viewController.callMethod<void>("loadData",
-                                                          
"(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V",
-                                                          htmlString.object(),
-                                                          
mimeTypeString.object(),
-                                                          0)
+    const QString mimeTypeString = u"text/html;charset=UTF-8"_s;
 
+    baseUrl.isEmpty() ? m_viewController.callMethod<void>("loadData", html, 
mimeTypeString,
+                                                          jstring(nullptr))
                       : 
m_viewController.callMethod<void>("loadDataWithBaseURL",
-                                                          
"(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V",
-                                                          
QJniObject::fromString(baseUrl.toString()).object(),
-                                                          htmlString.object(),
-                                                          
mimeTypeString.object(),
-                                                          0,
-                                                          0);
+                                                          baseUrl.toString(),
+                                                          html, mimeTypeString,
+                                                          jstring(nullptr), 
jstring(nullptr));
 }
 
 bool QAndroidWebViewPrivate::canGoBack() const
 {
-    return m_viewController.callMethod<jboolean>("canGoBack");
+    return m_viewController.callMethod<bool>("canGoBack");
 }
 
 void QAndroidWebViewPrivate::goBack()
@@ -190,7 +158,7 @@
 
 bool QAndroidWebViewPrivate::canGoForward() const
 {
-    return m_viewController.callMethod<jboolean>("canGoForward");
+    return m_viewController.callMethod<bool>("canGoForward");
 }
 
 void QAndroidWebViewPrivate::goForward()
@@ -205,7 +173,7 @@
 
 QString QAndroidWebViewPrivate::title() const
 {
-    return m_viewController.callObjectMethod<jstring>("getTitle").toString();
+    return m_viewController.callMethod<QString>("getTitle");
 }
 
 void QAndroidWebViewPrivate::setGeometry(const QRect &geometry)
@@ -233,10 +201,7 @@
         Q_EMIT javaScriptResult(callbackId, QVariant());
     }
 
-    m_viewController.callMethod<void>("runJavaScript",
-                                      "(Ljava/lang/String;J)V",
-                                      
static_cast<jstring>(QJniObject::fromString(script).object()),
-                                      callbackId);
+    m_viewController.callMethod<void>("runJavaScript", script, 
jlong(callbackId));
 }
 
 QAbstractWebViewSettings *QAndroidWebViewPrivate::getSettings() const
@@ -247,27 +212,23 @@
 void QAndroidWebViewPrivate::setCookie(const QString &domain, const QString 
&name, const QString &value)
 {
     QNativeInterface::QAndroidApplication::runOnAndroidMainThread([=]() {
-        m_viewController.callMethod<void>("setCookie",
-                                          
"(Ljava/lang/String;Ljava/lang/String;)V",
-                                          
static_cast<jstring>(QJniObject::fromString(domain).object()),
-                                          
static_cast<jstring>(QJniObject::fromString(name + "=" + value).object()));
+        const QString cookie = name + u'=' + value;
+        WebViewController::callStaticMethod<void>("setCookie", jlong(this), 
domain, cookie);
     });
 }
 
 void QAndroidWebViewPrivate::deleteCookie(const QString &domain, const QString 
&name)
 {
     QNativeInterface::QAndroidApplication::runOnAndroidMainThread([=]() {
-        m_viewController.callMethod<void>("removeCookie",
-                                          
"(Ljava/lang/String;Ljava/lang/String;)V",
-                                          
static_cast<jstring>(QJniObject::fromString(domain).object()),
-                                          
static_cast<jstring>(QJniObject::fromString(name.split(u'=').at(0) + 
u'=').object()));
+        const QString cookie = name.split(u'=').at(0) + u'=';
+        WebViewController::callStaticMethod<void>("removeCookie", jlong(this), 
domain, cookie);
     });
 }
 
 void QAndroidWebViewPrivate::deleteAllCookies()
 {
     QNativeInterface::QAndroidApplication::runOnAndroidMainThread([=]() {
-        m_viewController.callMethod<void>("removeCookies");
+        WebViewController::callStaticMethod<void>("removeCookies");
     });
 }
 
@@ -278,12 +239,12 @@
 
 int QAndroidWebViewPrivate::loadProgress() const
 {
-    return m_viewController.callMethod<jint>("getProgress");
+    return m_viewController.callMethod<int>("getProgress");
 }
 
 bool QAndroidWebViewPrivate::isLoading() const
 {
-    return m_viewController.callMethod<jboolean>("isLoading");
+    return m_viewController.callMethod<bool>("isLoading");
 }
 
 void QAndroidWebViewPrivate::setParentView(QObject *view)
@@ -328,9 +289,9 @@
     Q_UNUSED(env);
     Q_UNUSED(thiz);
 
-    const WebViews &wv = (*g_webViews);
-    QAndroidWebViewPrivate *wc = static_cast<QAndroidWebViewPrivate *>(wv[id]);
-    if (!wc)
+    Q_ASSERT(id);
+    QAndroidWebViewPrivate *wc = reinterpret_cast<QAndroidWebViewPrivate 
*>(id);
+    if (!g_webViews->contains(wc))
         return;
 
     const QString &resultString = QJniObject(result).toString();
@@ -349,6 +310,7 @@
                                 jsonValue.isNull() ? resultString
                                                    : jsonValue.toVariant());
 }
+Q_DECLARE_JNI_NATIVE_METHOD(c_onRunJavaScriptResult)
 
 static void c_onPageFinished(JNIEnv *env,
                              jobject thiz,
@@ -357,9 +319,10 @@
 {
     Q_UNUSED(env);
     Q_UNUSED(thiz);
-    const WebViews &wv = (*g_webViews);
-    QAndroidWebViewPrivate *wc = wv[id];
-    if (!wc)
+
+    Q_ASSERT(id);
+    QAndroidWebViewPrivate *wc = reinterpret_cast<QAndroidWebViewPrivate 
*>(id);
+    if (!g_webViews->contains(wc))
         return;
 
     QWebViewLoadRequestPrivate loadRequest(QUrl(QJniObject(url).toString()),
@@ -367,20 +330,23 @@
                                            QString());
     Q_EMIT wc->loadingChanged(loadRequest);
 }
+Q_DECLARE_JNI_NATIVE_METHOD(c_onPageFinished)
 
 static void c_onPageStarted(JNIEnv *env,
                             jobject thiz,
                             jlong id,
                             jstring url,
-                            jobject icon)
+                            Bitmap icon)
 {
     Q_UNUSED(env);
     Q_UNUSED(thiz);
     Q_UNUSED(icon);
-    const WebViews &wv = (*g_webViews);
-    QAndroidWebViewPrivate *wc = wv[id];
-    if (!wc)
+
+    Q_ASSERT(id);
+    QAndroidWebViewPrivate *wc = reinterpret_cast<QAndroidWebViewPrivate 
*>(id);
+    if (!g_webViews->contains(wc))
         return;
+
     QWebViewLoadRequestPrivate loadRequest(QUrl(QJniObject(url).toString()),
                                            QWebView::LoadStartedStatus,
                                            QString());
@@ -393,6 +359,7 @@
 //    if (favIcon(env, icon, &image))
 //        Q_EMIT wc->iconChanged(image);
 }
+Q_DECLARE_JNI_NATIVE_METHOD(c_onPageStarted)
 
 static void c_onProgressChanged(JNIEnv *env,
                                 jobject thiz,
@@ -401,36 +368,38 @@
 {
     Q_UNUSED(env);
     Q_UNUSED(thiz);
-    const WebViews &wv = (*g_webViews);
-    QAndroidWebViewPrivate *wc = wv[id];
-    if (!wc)
+
+    Q_ASSERT(id);
+    QAndroidWebViewPrivate *wc = reinterpret_cast<QAndroidWebViewPrivate 
*>(id);
+    if (!g_webViews->contains(wc))
         return;
 
     Q_EMIT wc->loadProgressChanged(newProgress);
 }
+Q_DECLARE_JNI_NATIVE_METHOD(c_onProgressChanged)
 
 static void c_onReceivedIcon(JNIEnv *env,
                              jobject thiz,
                              jlong id,
-                             jobject icon)
+                             Bitmap icon)
 {
     Q_UNUSED(env);
     Q_UNUSED(thiz);
-    Q_UNUSED(id);
     Q_UNUSED(icon);
 
-    const WebViews &wv = (*g_webViews);
-    QAndroidWebViewPrivate *wc = wv[id];
-    if (!wc)
+    Q_ASSERT(id);
+    QAndroidWebViewPrivate *wc = reinterpret_cast<QAndroidWebViewPrivate 
*>(id);
+    if (!g_webViews->contains(wc))
         return;
 
-    if (!icon)
+    if (!icon.isValid())
         return;
 
 //    QImage image;
 //    if (favIcon(env, icon, &image))
 //        Q_EMIT wc->iconChanged(image);
 }
+Q_DECLARE_JNI_NATIVE_METHOD(c_onReceivedIcon)
 
 static void c_onReceivedTitle(JNIEnv *env,
                               jobject thiz,
@@ -439,14 +408,16 @@
 {
     Q_UNUSED(env);
     Q_UNUSED(thiz);
-    const WebViews &wv = (*g_webViews);
-    QAndroidWebViewPrivate *wc = wv[id];
-    if (!wc)
+
+    Q_ASSERT(id);
+    QAndroidWebViewPrivate *wc = reinterpret_cast<QAndroidWebViewPrivate 
*>(id);
+    if (!g_webViews->contains(wc))
         return;
 
     const QString &qTitle = QJniObject(title).toString();
     Q_EMIT wc->titleChanged(qTitle);
 }
+Q_DECLARE_JNI_NATIVE_METHOD(c_onReceivedTitle)
 
 static void c_onReceivedError(JNIEnv *env,
                               jobject thiz,
@@ -459,18 +430,20 @@
     Q_UNUSED(thiz);
     Q_UNUSED(errorCode);
 
-    const WebViews &wv = (*g_webViews);
-    QAndroidWebViewPrivate *wc = wv[id];
-    if (!wc)
+    Q_ASSERT(id);
+    QAndroidWebViewPrivate *wc = reinterpret_cast<QAndroidWebViewPrivate 
*>(id);
+    if (!g_webViews->contains(wc))
         return;
+
     QWebViewLoadRequestPrivate loadRequest(QUrl(QJniObject(url).toString()),
                                            QWebView::LoadFailedStatus,
                                            QJniObject(description).toString());
     Q_EMIT wc->loadingChanged(loadRequest);
 }
+Q_DECLARE_JNI_NATIVE_METHOD(c_onReceivedError)
 
 static void c_onCookieAdded(JNIEnv *env,
-                            jobject thiz,
+                            jclass thiz,
                             jlong id,
                             jboolean result,
                             jstring domain,
@@ -479,17 +452,18 @@
     Q_UNUSED(env);
     Q_UNUSED(thiz);
 
-    if (result) {
-        const WebViews &wv = (*g_webViews);
-        QAndroidWebViewPrivate *wc = wv[id];
-        if (!wc)
-            return;
+    Q_ASSERT(id);
+    QAndroidWebViewPrivate *wc = reinterpret_cast<QAndroidWebViewPrivate 
*>(id);
+    if (!g_webViews->contains(wc))
+        return;
+
+    if (result)
         Q_EMIT wc->cookieAdded(QJniObject(domain).toString(), 
QJniObject(name).toString());
-    }
 }
+Q_DECLARE_JNI_NATIVE_METHOD(c_onCookieAdded)
 
 static void c_onCookieRemoved(JNIEnv *env,
-                              jobject thiz,
+                              jclass thiz,
                               jlong id,
                               jboolean result,
                               jstring domain,
@@ -498,54 +472,37 @@
     Q_UNUSED(env);
     Q_UNUSED(thiz);
 
-    if (result) {
-        const WebViews &wv = (*g_webViews);
-        QAndroidWebViewPrivate *wc = wv[id];
-        if (!wc)
-            return;
+    Q_ASSERT(id);
+    QAndroidWebViewPrivate *wc = reinterpret_cast<QAndroidWebViewPrivate 
*>(id);
+    if (!g_webViews->contains(wc))
+        return;
+
+    if (result)
         Q_EMIT wc->cookieRemoved(QJniObject(domain).toString(), 
QJniObject(name).toString());
-    }
 }
+Q_DECLARE_JNI_NATIVE_METHOD(c_onCookieRemoved)
 
-JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void* /*reserved*/)
+JNIEXPORT jint JNI_OnLoad(JavaVM* /* vm */, void* /*reserved*/)
 {
     static bool initialized = false;
     if (initialized)
         return JNI_VERSION_1_6;
     initialized = true;
 
-    typedef union {
-        JNIEnv *nativeEnvironment;
-        void *venv;
-    } UnionJNIEnvToVoid;
-
-    UnionJNIEnvToVoid uenv;
-    uenv.venv = NULL;
-
-    if (vm->GetEnv(&uenv.venv, JNI_VERSION_1_6) != JNI_OK)
-        return JNI_ERR;
-
-    JNIEnv *env = uenv.nativeEnvironment;
-    jclass clazz = 
QtAndroidPrivate::findClass(qtAndroidWebViewControllerClass, env);
-    if (!clazz)
-        return JNI_ERR;
-
-    JNINativeMethod methods[] = {
-        {"c_onPageFinished", "(JLjava/lang/String;)V", reinterpret_cast<void 
*>(c_onPageFinished)},
-        {"c_onPageStarted", "(JLjava/lang/String;Landroid/graphics/Bitmap;)V", 
reinterpret_cast<void *>(c_onPageStarted)},
-        {"c_onProgressChanged", "(JI)V", reinterpret_cast<void 
*>(c_onProgressChanged)},
-        {"c_onReceivedIcon", "(JLandroid/graphics/Bitmap;)V", 
reinterpret_cast<void *>(c_onReceivedIcon)},
-        {"c_onReceivedTitle", "(JLjava/lang/String;)V", reinterpret_cast<void 
*>(c_onReceivedTitle)},
-        {"c_onRunJavaScriptResult", "(JJLjava/lang/String;)V", 
reinterpret_cast<void *>(c_onRunJavaScriptResult)},
-        {"c_onReceivedError", "(JILjava/lang/String;Ljava/lang/String;)V", 
reinterpret_cast<void *>(c_onReceivedError)},
-        {"c_onCookieAdded", "(JZLjava/lang/String;Ljava/lang/String;)V", 
reinterpret_cast<void *>(c_onCookieAdded)},
-        {"c_onCookieRemoved", "(JZLjava/lang/String;Ljava/lang/String;)V", 
reinterpret_cast<void *>(c_onCookieRemoved)}
-    };
-
-    const int nMethods = sizeof(methods) / sizeof(methods[0]);
-
-    if (env->RegisterNatives(clazz, methods, nMethods) != JNI_OK)
+    if (!WebViewController::registerNativeMethods({
+        Q_JNI_NATIVE_METHOD(c_onRunJavaScriptResult),
+        Q_JNI_NATIVE_METHOD(c_onPageFinished),
+        Q_JNI_NATIVE_METHOD(c_onPageStarted),
+        Q_JNI_NATIVE_METHOD(c_onProgressChanged),
+        Q_JNI_NATIVE_METHOD(c_onReceivedIcon),
+        Q_JNI_NATIVE_METHOD(c_onReceivedTitle),
+        Q_JNI_NATIVE_METHOD(c_onReceivedError),
+        Q_JNI_NATIVE_METHOD(c_onCookieAdded),
+        Q_JNI_NATIVE_METHOD(c_onCookieRemoved),
+    })) {
+        qCritical("Failed to register native methods for WebViewController");
         return JNI_ERR;
+    }
 
     return JNI_VERSION_1_6;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebview-everywhere-src-6.6.3/src/plugins/android/qandroidwebview_p.h 
new/qtwebview-everywhere-src-6.7.0/src/plugins/android/qandroidwebview_p.h
--- old/qtwebview-everywhere-src-6.6.3/src/plugins/android/qandroidwebview_p.h  
2024-03-19 15:23:24.000000000 +0100
+++ new/qtwebview-everywhere-src-6.7.0/src/plugins/android/qandroidwebview_p.h  
2024-03-23 03:14:31.000000000 +0100
@@ -19,16 +19,21 @@
 #include <QtCore/qurl.h>
 #include <QtGui/qwindow.h>
 #include <QtCore/qjniobject.h>
+#include <QtCore/qjnitypes.h>
 
 #include <private/qabstractwebview_p.h>
 
+Q_DECLARE_JNI_CLASS(WebViewController, 
"org/qtproject/qt/android/view/QtAndroidWebViewController");
+Q_DECLARE_JNI_CLASS(WebView, "android/webkit/WebView");
+
 QT_BEGIN_NAMESPACE
 
 class QAndroidWebViewSettingsPrivate : public QAbstractWebViewSettings
 {
     Q_OBJECT
 public:
-    explicit QAndroidWebViewSettingsPrivate(QJniObject viewController, QObject 
*p = nullptr);
+    explicit QAndroidWebViewSettingsPrivate(const 
QtJniTypes::WebViewController &viewController,
+                                            QObject *p = nullptr);
 
     bool localStorageEnabled() const;
     bool javascriptEnabled() const;
@@ -42,7 +47,7 @@
     void setAllowFileAccess(bool enabled);
 
 private:
-    QJniObject m_viewController;
+    QtJniTypes::WebViewController m_viewController;
 };
 
 class QAndroidWebViewPrivate : public QAbstractWebView
@@ -87,11 +92,10 @@
     void onApplicationStateChanged(Qt::ApplicationState state);
 
 private:
-    quintptr m_id;
     quint64 m_callbackId;
     QWindow *m_window;
-    QJniObject m_viewController;
-    QJniObject m_webView;
+    QtJniTypes::WebViewController m_viewController;
+    QtJniTypes::WebView m_webView;
     QAndroidWebViewSettingsPrivate *m_settings;
 };
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebview-everywhere-src-6.6.3/src/plugins/darwin/qdarwinwebview_p.h 
new/qtwebview-everywhere-src-6.7.0/src/plugins/darwin/qdarwinwebview_p.h
--- old/qtwebview-everywhere-src-6.6.3/src/plugins/darwin/qdarwinwebview_p.h    
2024-03-19 15:23:24.000000000 +0100
+++ new/qtwebview-everywhere-src-6.7.0/src/plugins/darwin/qdarwinwebview_p.h    
2024-03-23 03:14:31.000000000 +0100
@@ -21,6 +21,8 @@
 
 #include <private/qabstractwebview_p.h>
 
+#include <QtCore/qpointer.h>
+
 #if defined(Q_OS_IOS) && defined(__OBJC__)
 #include <UIKit/UIGestureRecognizer.h>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebview-everywhere-src-6.6.3/src/plugins/webengine/qwebenginewebview_p.h 
new/qtwebview-everywhere-src-6.7.0/src/plugins/webengine/qwebenginewebview_p.h
--- 
old/qtwebview-everywhere-src-6.6.3/src/plugins/webengine/qwebenginewebview_p.h  
    2024-03-19 15:23:24.000000000 +0100
+++ 
new/qtwebview-everywhere-src-6.7.0/src/plugins/webengine/qwebenginewebview_p.h  
    2024-03-23 03:14:31.000000000 +0100
@@ -25,6 +25,8 @@
 #include <QtWebEngineQuick/QQuickWebEngineProfile>
 #include <QtWebEngineQuick/private/qquickwebenginesettings_p.h>
 
+#include <QtCore/qpointer.h>
+
 QT_BEGIN_NAMESPACE
 
 class QQuickWebEngineView;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebview-everywhere-src-6.6.3/src/webview/qwebview_p.h 
new/qtwebview-everywhere-src-6.7.0/src/webview/qwebview_p.h
--- old/qtwebview-everywhere-src-6.6.3/src/webview/qwebview_p.h 2024-03-19 
15:23:24.000000000 +0100
+++ new/qtwebview-everywhere-src-6.7.0/src/webview/qwebview_p.h 2024-03-23 
03:14:31.000000000 +0100
@@ -23,6 +23,8 @@
 #include <QtCore/qvariant.h>
 #include <QtGui/qimage.h>
 
+#include <QtCore/qpointer.h>
+
 QT_BEGIN_NAMESPACE
 
 class QWebViewLoadRequestPrivate;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtwebview-everywhere-src-6.6.3/sync.profile 
new/qtwebview-everywhere-src-6.7.0/sync.profile
--- old/qtwebview-everywhere-src-6.6.3/sync.profile     2024-03-19 
15:23:24.000000000 +0100
+++ new/qtwebview-everywhere-src-6.7.0/sync.profile     1970-01-01 
01:00:00.000000000 +0100
@@ -1,6 +0,0 @@
-%modules = ( # path to module name map
-    "QtWebView" => "$basedir/src/webview",
-    "QtWebViewQuick" => "$basedir/src/quick"
-);
-%moduleheaders = ( # restrict the module headers to those found in relative 
path
-);

Reply via email to