summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTarja Sundqvist <tarja.sundqvist@qt.io>2024-01-22 23:14:16 +0200
committerTarja Sundqvist <tarja.sundqvist@qt.io>2024-03-04 18:33:04 +0000
commitb4d8fd00369aafd8285b7cd37c9307f6d0b655d7 (patch)
tree9491b4da02f51b8a6fa7899ce005645c441229c5
parent66bcbe7ab41f0502b7cc5af784658e1c583b7b11 (diff)
parent1ae83597c2e326f6bda47070a833bac61264218f (diff)
Merge remote-tracking branch 'origin/tqtc/lts-6.2.8' into tqtc/lts-6.2-opensource
Conflicts solved in a file: dependencies.yaml Change-Id: I4145e9fb83987d1611086718fd910cdd1f833bbe
-rw-r--r--.cmake.conf2
-rw-r--r--.qmake.conf2
-rw-r--r--dependencies.yaml4
-rw-r--r--src/plugins/android/qandroidwebview.cpp15
4 files changed, 19 insertions, 4 deletions
diff --git a/.cmake.conf b/.cmake.conf
index 07d90b8..e62fae5 100644
--- a/.cmake.conf
+++ b/.cmake.conf
@@ -1,2 +1,2 @@
-set(QT_REPO_MODULE_VERSION "6.2.7")
+set(QT_REPO_MODULE_VERSION "6.2.8")
set(QT_REPO_MODULE_PRERELEASE_VERSION_SEGMENT "")
diff --git a/.qmake.conf b/.qmake.conf
index f9a9af8..6cf2140 100644
--- a/.qmake.conf
+++ b/.qmake.conf
@@ -2,4 +2,4 @@ load(qt_build_config)
DEFINES += QT_NO_FOREACH
-MODULE_VERSION = 6.2.7
+MODULE_VERSION = 6.2.8
diff --git a/dependencies.yaml b/dependencies.yaml
index 2c0c313..f28b146 100644
--- a/dependencies.yaml
+++ b/dependencies.yaml
@@ -1,7 +1,7 @@
dependencies:
../tqtc-qtdeclarative:
- ref: 02277e3753613d9e19bbb36367c7d2b1d13d7545
+ ref: 302ab20d46280e11042f3896460c55d8b8146e41
required: true
../tqtc-qtwebengine:
- ref: 85d4a8a66a5da12223cc4998850d8d81328b3919
+ ref: 4561d2575e60aefcd3e6cd0226f4fd92271a6c06
required: false
diff --git a/src/plugins/android/qandroidwebview.cpp b/src/plugins/android/qandroidwebview.cpp
index 57d2f6c..c957342 100644
--- a/src/plugins/android/qandroidwebview.cpp
+++ b/src/plugins/android/qandroidwebview.cpp
@@ -51,6 +51,9 @@
#include <QtCore/qurl.h>
#include <QtCore/qdebug.h>
+#include <QAbstractEventDispatcher>
+#include <QThread>
+
QT_BEGIN_NAMESPACE
static const char qtAndroidWebViewControllerClass[] = "org/qtproject/qt/android/view/QtAndroidWebViewController";
@@ -81,10 +84,22 @@ QAndroidWebViewPrivate::QAndroidWebViewPrivate(QObject *p)
, m_callbackId(0)
, m_window(0)
{
+ // QtAndroidWebViewController constructor blocks a qGuiThread until
+ // the WebView is created and configured in UI thread.
+ // That is why we cannot proceed until AndroidDeadlockProtector is locked
+ while (!QtAndroidPrivate::acquireAndroidDeadlockProtector()) {
+ auto eventDispatcher = QThread::currentThread()->eventDispatcher();
+ if (eventDispatcher)
+ eventDispatcher->processEvents(
+ QEventLoop::ExcludeUserInputEvents|QEventLoop::ExcludeSocketNotifiers);
+ }
m_viewController = QJniObject(qtAndroidWebViewControllerClass,
"(Landroid/app/Activity;J)V",
QtAndroidPrivate::activity(),
m_id);
+
+ QtAndroidPrivate::releaseAndroidDeadlockProtector();
+
m_webView = m_viewController.callObjectMethod("getWebView",
"()Landroid/webkit/WebView;");