From 0d03a6e2b1fc067f45c48a51634d2e6e283f9061 Mon Sep 17 00:00:00 2001 From: Peter Varga Date: Thu, 14 Sep 2023 14:28:03 +0200 Subject: Do not try to delete BrowserAccessibilityInterface twice BrowserAccessibilityInterface is deleted when removing it from the QAccessibleInterface cache. It is removed from the cache in the BrowserAccessibilityQt destructor explicitly. On exit, the QAccessibleInterface cache might be destructed earlier than the corresponding BrowserAccessibilityQt and deletes all the cached interfaces. Reset the interface pointer to nullptr to make sure that the destructor doesn't try to delete an already deleted interface. Pick-to: 6.5.3 Fixes: QTBUG-115753 Change-Id: Ide02a84d2230145a3441d9ade47eaa14af897477 Reviewed-by: Allan Sandfeld Jensen (cherry picked from commit a931a1ed782b2069749dd316f51ca1044c21a61a) Reviewed-by: Qt Cherry-pick Bot (cherry picked from commit b65512cafc2e8da767af2d798c73158a8598ca94) --- src/core/browser_accessibility_qt.cpp | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/core/browser_accessibility_qt.cpp b/src/core/browser_accessibility_qt.cpp index d1cdd4b20..24c006dc5 100644 --- a/src/core/browser_accessibility_qt.cpp +++ b/src/core/browser_accessibility_qt.cpp @@ -25,10 +25,7 @@ public: BrowserAccessibilityQt(content::BrowserAccessibilityManager *manager, ui::AXNode *node); ~BrowserAccessibilityQt(); - QtWebEngineCore::BrowserAccessibilityInterface *interface() const { return m_interface; } - -private: - QtWebEngineCore::BrowserAccessibilityInterface *m_interface = nullptr; + QtWebEngineCore::BrowserAccessibilityInterface *interface = nullptr; }; class BrowserAccessibilityInterface @@ -41,6 +38,7 @@ class BrowserAccessibilityInterface { public: BrowserAccessibilityInterface(BrowserAccessibilityQt *chromiumInterface); + ~BrowserAccessibilityInterface() override; void destroy(); @@ -133,15 +131,17 @@ private: BrowserAccessibilityQt *q; }; -BrowserAccessibilityQt::BrowserAccessibilityQt(content::BrowserAccessibilityManager *manager, ui::AXNode *node) - : content::BrowserAccessibility(manager, node), - m_interface(new BrowserAccessibilityInterface(this)) +BrowserAccessibilityQt::BrowserAccessibilityQt(content::BrowserAccessibilityManager *manager, + ui::AXNode *node) + : content::BrowserAccessibility(manager, node) + , interface(new BrowserAccessibilityInterface(this)) { } BrowserAccessibilityQt::~BrowserAccessibilityQt() { - m_interface->destroy(); + if (interface) + interface->destroy(); } BrowserAccessibilityInterface::BrowserAccessibilityInterface(BrowserAccessibilityQt *chromiumInterface) @@ -157,6 +157,11 @@ BrowserAccessibilityInterface::BrowserAccessibilityInterface(BrowserAccessibilit m_id = QAccessible::registerAccessibleInterface(this); } +BrowserAccessibilityInterface::~BrowserAccessibilityInterface() +{ + q->interface = nullptr; +} + void BrowserAccessibilityInterface::destroy() { QAccessible::deleteAccessibleInterface(m_id); @@ -1140,12 +1145,12 @@ std::unique_ptr BrowserAccessibility::Create(BrowserAccess QAccessibleInterface *toQAccessibleInterface(BrowserAccessibility *obj) { - return static_cast(obj)->interface(); + return static_cast(obj)->interface; } const QAccessibleInterface *toQAccessibleInterface(const BrowserAccessibility *obj) { - return static_cast(obj)->interface(); + return static_cast(obj)->interface; } } // namespace content -- cgit v1.2.3 From dd2707678bcc0384ed7df4baa3c2213d45244765 Mon Sep 17 00:00:00 2001 From: Peter Varga Date: Thu, 14 Sep 2023 16:40:40 +0200 Subject: Add ImAbsolutePosition input method query cocoa qpa uses it. Pick-to: 6.5.3 Fixes: QTBUG-115994 Change-Id: Ie9556169add96946b71299066b8db92bee23066e Reviewed-by: Anu Aliyas Reviewed-by: Allan Sandfeld Jensen (cherry picked from commit 4522eef20ba636a78937fd58bf8c0a8a5aafe648) Reviewed-by: Qt Cherry-pick Bot (cherry picked from commit 6ddca2acb9c41504571ea9070e608b284d23bcc7) --- src/core/render_widget_host_view_qt_delegate_client.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src') diff --git a/src/core/render_widget_host_view_qt_delegate_client.cpp b/src/core/render_widget_host_view_qt_delegate_client.cpp index b388ea6f5..b66c53ceb 100644 --- a/src/core/render_widget_host_view_qt_delegate_client.cpp +++ b/src/core/render_widget_host_view_qt_delegate_client.cpp @@ -346,6 +346,7 @@ QVariant RenderWidgetHostViewQtDelegateClient::inputMethodQuery(Qt::InputMethodQ } return QVariant(); } + case Qt::ImAbsolutePosition: case Qt::ImCursorPosition: return m_cursorPosition; case Qt::ImAnchorPosition: -- cgit v1.2.3 From 6648aff8ac96be8b68b0ec6e6f5deec0f957fb3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Br=C3=BCning?= Date: Tue, 19 Sep 2023 10:38:34 +0200 Subject: Update Chromium Submodule src/3rdparty 31f287a0..ef090c47: * [Backport] Security bug 1427288 (2/2) * [Backport] Security bug 1427288 (1/2) * [Backport] Security bug 1449166 * [Backport] CVE-2023-4909: Inappropriate implementation in Interstitials * [Backport] CVE-2023-4908: Inappropriate implementation in Picture in Picture * [Backport] CVE-2023-4902: Inappropriate implementation in Input * Fixup [Backport] CVE-2023-2724: Type Confusion in V8 Task-number: QTBUG-116934 Change-Id: Id747cab635a75215d52156c139b73e671c79380b Reviewed-by: Michal Klocek --- src/3rdparty | 2 +- src/core/devtools_frontend_qt.cpp | 2 +- src/core/web_engine_context.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/3rdparty b/src/3rdparty index 31f287a01..ef090c47d 160000 --- a/src/3rdparty +++ b/src/3rdparty @@ -1 +1 @@ -Subproject commit 31f287a0142b6b78698504b528d35c9506dcdb43 +Subproject commit ef090c47d08c734ae2b3c1db508982aca0f3ee1e diff --git a/src/core/devtools_frontend_qt.cpp b/src/core/devtools_frontend_qt.cpp index a1b9ae91c..3fddd3410 100644 --- a/src/core/devtools_frontend_qt.cpp +++ b/src/core/devtools_frontend_qt.cpp @@ -62,7 +62,7 @@ DevToolsFrontendQt *DevToolsFrontendQt::Show(QSharedPointer new DevToolsFrontendQt(frontendAdapter, inspectedContents); if (contents->GetURL() == GURL(GetFrontendURL())) { - contents->GetController().Reload(content::ReloadType::ORIGINAL_REQUEST_URL, false); + contents->GetController().LoadOriginalRequestURL(); } else { content::NavigationController::LoadURLParams loadParams((GURL(GetFrontendURL()))); loadParams.transition_type = ui::PageTransitionFromInt(ui::PAGE_TRANSITION_AUTO_TOPLEVEL diff --git a/src/core/web_engine_context.cpp b/src/core/web_engine_context.cpp index 7bff7edca..be462a22d 100644 --- a/src/core/web_engine_context.cpp +++ b/src/core/web_engine_context.cpp @@ -937,7 +937,7 @@ const char *qWebEngineChromiumVersion() noexcept const char *qWebEngineChromiumSecurityPatchVersion() noexcept { - return "116.0.5845.187"; // FIXME: Remember to update + return "117.0.5938.63"; // FIXME: Remember to update } QT_END_NAMESPACE -- cgit v1.2.3 From 5932a58e11b382caae25dfa1d34751c8bc8ed797 Mon Sep 17 00:00:00 2001 From: Szabolcs David Date: Tue, 11 Apr 2023 15:48:26 +0200 Subject: Fix print button of PDF viewer plugin Do not try to start print preview automatically, just notify the embedder via printRequested signal instead of crashing. Also fix the signal name in WebEngineView docs. Task-number: QTBUG-104610 Task-number: QTBUG-117382 Change-Id: I251e0b8f6f03a73236320a66a0d3c7690939d88b Reviewed-by: Allan Sandfeld Jensen (cherry picked from commit 3801a9244cb57bfb6b6b08be652f42a135b71142) --- src/core/printing/print_view_manager_qt.cpp | 13 ++++++++++++- src/webenginequick/doc/src/webengineview_lgpl.qdoc | 5 +++-- src/webenginewidgets/api/qwebengineview.cpp | 3 ++- 3 files changed, 17 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/core/printing/print_view_manager_qt.cpp b/src/core/printing/print_view_manager_qt.cpp index 7d8a796f7..892c9e406 100644 --- a/src/core/printing/print_view_manager_qt.cpp +++ b/src/core/printing/print_view_manager_qt.cpp @@ -336,12 +336,23 @@ void PrintViewManagerQt::ShowScriptedPrintPreview(bool /*source_is_modifiable*/) // ignore for now } -void PrintViewManagerQt::RequestPrintPreview(printing::mojom::RequestPrintPreviewParamsPtr /*params*/) +void PrintViewManagerQt::RequestPrintPreview(printing::mojom::RequestPrintPreviewParamsPtr params) { + if (!m_printPreviewRfh && params->webnode_only) { + // The preview was requested by the print button of PDF viewer plugin. The code path ends up here, because + // Chromium automatically initiated a preview generation. We don't want that, just notify our embedder + // like we do in SetupScriptedPrintPreview() after window.print() and let them decide what to do. + content::WebContentsView *view = static_cast(web_contents()->GetOutermostWebContents())->GetView(); + if (WebContentsAdapterClient *client = WebContentsViewQt::from(view)->client()) + client->printRequested(); + return; + } + if (m_printSettings.empty()) { PrintPreviewDone(); return; } + mojo::AssociatedRemote printRenderFrame; m_printPreviewRfh->GetRemoteAssociatedInterfaces()->GetInterface(&printRenderFrame); printRenderFrame->PrintPreview(m_printSettings.Clone()); diff --git a/src/webenginequick/doc/src/webengineview_lgpl.qdoc b/src/webenginequick/doc/src/webengineview_lgpl.qdoc index 6390c0c02..358f8b1dd 100644 --- a/src/webenginequick/doc/src/webengineview_lgpl.qdoc +++ b/src/webenginequick/doc/src/webengineview_lgpl.qdoc @@ -1315,10 +1315,11 @@ */ /*! - \qmlsignal WebEngineView::printRequest + \qmlsignal WebEngineView::printRequested \since QtWebEngine 1.8 - This signal is emitted when the JavaScript \c{window.print()} method is called. + This signal is emitted when the JavaScript \c{window.print()} method is called or the user pressed the print + button of PDF viewer plugin. Typically, the signal handler can simply call printToPdf(). \sa printToPdf diff --git a/src/webenginewidgets/api/qwebengineview.cpp b/src/webenginewidgets/api/qwebengineview.cpp index 35fb98138..8d88726fa 100644 --- a/src/webenginewidgets/api/qwebengineview.cpp +++ b/src/webenginewidgets/api/qwebengineview.cpp @@ -1379,7 +1379,8 @@ void QWebEngineView::printToPdf(const std::function &re \fn void QWebEngineView::printRequested() \since 6.2 - This signal is emitted when the JavaScript \c{window.print()} method is called. + This signal is emitted when the JavaScript \c{window.print()} method is called or the user pressed the print + button of PDF viewer plugin. Typically, the signal handler can simply call print(). \sa print() -- cgit v1.2.3 From c526a8daa142b3a459cc357376a785b84abe5d0d Mon Sep 17 00:00:00 2001 From: Andreas Eliasson Date: Wed, 28 Jun 2023 12:21:11 +0200 Subject: Doc: Use \qml instead of \code for QML code snippet Change-Id: I2025d77a15eca0b26096344c3f97f91138893378 Reviewed-by: Paul Wicking (cherry picked from commit ae82cd21c55eacb940f90c084302db8fd21e198d) Reviewed-by: Qt Cherry-pick Bot --- src/pdfquick/doc/src/qtquickpdf-module.qdoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/pdfquick/doc/src/qtquickpdf-module.qdoc b/src/pdfquick/doc/src/qtquickpdf-module.qdoc index 1d31f6148..a4ca0d9e8 100644 --- a/src/pdfquick/doc/src/qtquickpdf-module.qdoc +++ b/src/pdfquick/doc/src/qtquickpdf-module.qdoc @@ -12,7 +12,7 @@ To use the types in this module, import the module with the following line: - \code + \qml import QtQuick.Pdf - \endcode + \endqml */ -- cgit v1.2.3 From 1e93e094d9eb9eb00f59be5936989fa0d76a3585 Mon Sep 17 00:00:00 2001 From: Joni Poikelin Date: Tue, 4 Apr 2023 13:04:29 +0300 Subject: QPdfNavigator: emit forward/backAvailableChanged when jumping pages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit QPdfPageNavigator did not emit the page history signals when pages were jumped. This patch ensures correct signal emission in all cases. It adds a new auto test class for QPdfPageNavigator. Fixes: QTBUG-112614 Change-Id: I67af5a4d22a8e76b9c12c72c168fa5b3b4390f2c Reviewed-by: Yigit Akcay Reviewed-by: Michael Brüning (cherry picked from commit 54ea7b5a2a1364b8fcdef859229ca58afe8d87ad) Reviewed-by: Qt Cherry-pick Bot --- src/pdf/qpdfpagenavigator.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/pdf/qpdfpagenavigator.cpp b/src/pdf/qpdfpagenavigator.cpp index 253c1dff8..e077e2184 100644 --- a/src/pdf/qpdfpagenavigator.cpp +++ b/src/pdf/qpdfpagenavigator.cpp @@ -207,9 +207,9 @@ void QPdfPageNavigator::jump(QPdfLink destination) emit currentLocationChanged(currentLocation()); if (d->changing) return; - if (!backAvailableWas) + if (backAvailableWas != backAvailable()) emit backAvailableChanged(backAvailable()); - if (forwardAvailableWas) + if (forwardAvailableWas != forwardAvailable()) emit forwardAvailableChanged(forwardAvailable()); emit jumped(currentLink()); qCDebug(qLcNav) << "push: index" << d->currentHistoryIndex << destination << "-> history" << @@ -263,9 +263,9 @@ void QPdfPageNavigator::jump(int page, const QPointF &location, qreal zoom) emit currentLocationChanged(currentLocation()); if (d->changing) return; - if (!backAvailableWas) + if (backAvailableWas != backAvailable()) emit backAvailableChanged(backAvailable()); - if (forwardAvailableWas) + if (forwardAvailableWas != forwardAvailable()) emit forwardAvailableChanged(forwardAvailable()); emit jumped(currentLink()); qCDebug(qLcNav) << "push: index" << d->currentHistoryIndex << "page" << page -- cgit v1.2.3 From 4e273b2b305dcbf8967863af83e42c1a081a7d9c Mon Sep 17 00:00:00 2001 From: Michal Klocek Date: Thu, 7 Sep 2023 18:02:00 +0200 Subject: Band aid fix for crashing D3D11 Warp setup Rhi can decide to run D3D11 with the software rendering through the software adapter aka "Microsoft Basic Render Driver". This unfortunately does not work well with ANGLE as it can use another adapter and sharing resources between qt and skia can fail. Try to guess which adapter might be used by rhi support or rhi backing store support classes and pass luid for ANGLE. Unfortunately this solution is far from perfect as it creates QRhi just to check what might be used later, however the user can select something totally different with QQuickGraphicsConfiguration. At lest for now we respect QSG_RHI_PREFER_SOFTWARE_RENDERER and QT_D3D_ADAPTER_INDEX. Moreover this patch should cover the case when rhi retrys with DXGI_ADAPTER_FLAG_SOFTWARE adapter if accelerated adapter fails. This is just a band aid patch to support windows on vm and we should come up with better solution. Fixes: QTBUG-116445 Pick-to: 6.5.3 Change-Id: I416dd82d688726ce872dc276570fe455d733a48e Reviewed-by: Allan Sandfeld Jensen (cherry picked from commit 8cef10f4faa9f2a5982e3cb780100cbc62209b07) Reviewed-by: Qt Cherry-pick Bot (cherry picked from commit fd3fd9ea0cb669c29382a473cb6f0e763205a8a7) --- src/core/web_engine_context.cpp | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'src') diff --git a/src/core/web_engine_context.cpp b/src/core/web_engine_context.cpp index be462a22d..973da88a7 100644 --- a/src/core/web_engine_context.cpp +++ b/src/core/web_engine_context.cpp @@ -4,6 +4,7 @@ #include "web_engine_context.h" #include +#include #include "base/base_switches.h" #include "base/bind.h" @@ -177,6 +178,31 @@ bool usingSoftwareDynamicGL() #endif } +#if defined(Q_OS_WIN) +static QString getAdapterLuid() { + static const bool preferSoftwareDevice = qEnvironmentVariableIntValue("QSG_RHI_PREFER_SOFTWARE_RENDERER"); + QRhiD3D11InitParams rhiParams; + QRhi::Flags flags; + if (preferSoftwareDevice) { + flags |= QRhi::PreferSoftwareRenderer; + } + QScopedPointer rhi(QRhi::create(QRhi::D3D11,&rhiParams,flags,nullptr)); + // mimic what QSGRhiSupport and QBackingStoreRhi does + if (!rhi && !preferSoftwareDevice) { + flags |= QRhi::PreferSoftwareRenderer; + rhi.reset(QRhi::create(QRhi::D3D11, &rhiParams, flags)); + } + if (rhi) { + const QRhiD3D11NativeHandles *handles = + static_cast(rhi->nativeHandles()); + Q_ASSERT(handles); + return QString("%1,%2").arg(handles->adapterLuidHigh).arg(handles->adapterLuidLow); + } else { + return QString(); + } +} +#endif + static bool openGLPlatformSupport() { return QGuiApplicationPrivate::platformIntegration()->hasCapability( @@ -727,6 +753,14 @@ WebEngineContext::WebEngineContext() } #endif +#if defined(Q_OS_WIN) + if (QQuickWindow::graphicsApi() == QSGRendererInterface::Direct3D11) { + const QString luid = getAdapterLuid(); + if (!luid.isEmpty()) + parsedCommandLine->AppendSwitchASCII(switches::kUseAdapterLuid, luid.toStdString()); + } +#endif + initializeFeatureList(parsedCommandLine, enableFeatures, disableFeatures); GLContextHelper::initialize(); -- cgit v1.2.3 From ee0905b625e526e0474d3f28f9563258b23e2b7a Mon Sep 17 00:00:00 2001 From: Szabolcs David Date: Thu, 21 Sep 2023 13:45:32 +0200 Subject: Add some missing documentation - Add docs of printRequested and fileSystemAccessRequested signals to QWebEnginePage. - HandleType and AccessFlags enums were missing from QWebEngineFileSystemAccessRequest. Fixes: QTBUG-117119 Change-Id: Ib8057e9471830a09417924f34ef91a54de62c36d Reviewed-by: Peter Varga Reviewed-by: Leena Miettinen (cherry picked from commit 50aafb2d4b6a0290987c725e3357386eb43790bb) Reviewed-by: Qt Cherry-pick Bot (cherry picked from commit 886916e7b0a8b02198186117fd48945da40f108e) --- src/core/api/qwebenginefilesystemaccessrequest.cpp | 19 +++++++++++++++++++ src/core/api/qwebenginepage.cpp | 22 +++++++++++++++++++++- 2 files changed, 40 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/core/api/qwebenginefilesystemaccessrequest.cpp b/src/core/api/qwebenginefilesystemaccessrequest.cpp index 6527e1766..3f901b671 100644 --- a/src/core/api/qwebenginefilesystemaccessrequest.cpp +++ b/src/core/api/qwebenginefilesystemaccessrequest.cpp @@ -27,6 +27,25 @@ QT_BEGIN_NAMESPACE either call accept() or reject(). */ +/*! + \enum QWebEngineFileSystemAccessRequest::AccessFlag + + This enum describes the type of the requested access: read, write or both. The options + can be OR-ed together from the following list: + + \value Read + \value Write +*/ + +/*! + \enum QWebEngineFileSystemAccessRequest::HandleType + + This enum describes the type of the requested file system entry. + + \value File + \value Directory +*/ + QWebEngineFileSystemAccessRequest::QWebEngineFileSystemAccessRequest( const QWebEngineFileSystemAccessRequest &other) = default; QWebEngineFileSystemAccessRequest &QWebEngineFileSystemAccessRequest::operator=( diff --git a/src/core/api/qwebenginepage.cpp b/src/core/api/qwebenginepage.cpp index 53930bc67..78021248c 100644 --- a/src/core/api/qwebenginepage.cpp +++ b/src/core/api/qwebenginepage.cpp @@ -510,6 +510,15 @@ void QWebEnginePagePrivate::runRegisterProtocolHandlerRequest(QWebEngineRegister Q_EMIT q->registerProtocolHandlerRequested(request); } +/*! + \fn void QWebEnginePage::fileSystemAccessRequested(QWebEngineFileSystemAccessRequest request) + \since 6.4 + + This signal is emitted when the web page requests access to local files or directories. + + The request object \a request can be used to accept or reject the request. +*/ + void QWebEnginePagePrivate::runFileSystemAccessRequest(QWebEngineFileSystemAccessRequest request) { Q_Q(QWebEnginePage); @@ -1504,7 +1513,7 @@ void QWebEnginePagePrivate::contextMenuRequested(QWebEngineContextMenuRequest *d } /*! - \fn bool QWebEnginePage::navigationRequested(QWebEngineNavigationRequest &request) + \fn void QWebEnginePage::navigationRequested(QWebEngineNavigationRequest &request) \since 6.2 This signal is emitted on navigation together with the call the acceptNavigationRequest(). @@ -1645,6 +1654,17 @@ void QWebEnginePagePrivate::setToolTip(const QString &toolTipText) view->setToolTip(toolTipText); } +/*! + \fn void QWebEnginePage::printRequested() + \since 5.12 + + This signal is emitted when the JavaScript \c{window.print()} method is called or the user pressed the print + button of PDF viewer plugin. + Typically, the signal handler can simply call printToPdf(). + + \sa printToPdf() +*/ + void QWebEnginePagePrivate::printRequested() { Q_Q(QWebEnginePage); -- cgit v1.2.3 From 439e01f7d1b27f9f5615dccb1f9028e4d0ec525b Mon Sep 17 00:00:00 2001 From: Jaishree Vyas Date: Wed, 6 Sep 2023 12:27:21 +0200 Subject: Doc: All overviews list categorization MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The \generate list names are added for each categorized section with some explanation. Here, calling the overviews as explanations-(name of the section). The idea is to give general terms instead of specific phrases like 'core' etc, for better understanding. Task-number: QTBUG-115347 Change-Id: I6348c5c888d34503fe05c3975a129e98c0f04d0a Reviewed-by: Topi Reiniö (cherry picked from commit f256aff7948915009ced414ff03277612acf973d) Reviewed-by: Ivan Solovev --- src/core/doc/src/qtwebengine-deploying.qdoc | 1 + src/core/doc/src/qtwebengine-features.qdoc | 1 + src/core/doc/src/qtwebengine-overview.qdoc | 1 + 3 files changed, 3 insertions(+) (limited to 'src') diff --git a/src/core/doc/src/qtwebengine-deploying.qdoc b/src/core/doc/src/qtwebengine-deploying.qdoc index 7504965e3..625570fee 100644 --- a/src/core/doc/src/qtwebengine-deploying.qdoc +++ b/src/core/doc/src/qtwebengine-deploying.qdoc @@ -4,6 +4,7 @@ /*! \page qtwebengine-deploying.html \title Deploying Qt WebEngine Applications + \ingroup explanations-webtechnologies The way to package and deploy applications varies between operating systems. For Windows and \macos, \l{The Windows Deployment Tool}{windeployqt} and diff --git a/src/core/doc/src/qtwebengine-features.qdoc b/src/core/doc/src/qtwebengine-features.qdoc index 11de95d44..29e7b0f06 100644 --- a/src/core/doc/src/qtwebengine-features.qdoc +++ b/src/core/doc/src/qtwebengine-features.qdoc @@ -4,6 +4,7 @@ /*! \page qtwebengine-features.html \title Qt WebEngine Features + \ingroup explanations-webtechnologies \brief Summarizes \QWE features. diff --git a/src/core/doc/src/qtwebengine-overview.qdoc b/src/core/doc/src/qtwebengine-overview.qdoc index b1e8ee3da..6eccc669e 100644 --- a/src/core/doc/src/qtwebengine-overview.qdoc +++ b/src/core/doc/src/qtwebengine-overview.qdoc @@ -4,6 +4,7 @@ /*! \page qtwebengine-overview.html \title Qt WebEngine Overview + \ingroup explanations-webtechnologies The \QWE module provides a web browser engine that makes it easy to embed content from the World Wide Web into your Qt application on platforms that do not have a native web engine. -- cgit v1.2.3 From 26429d10885e7203545d14878aa8619471b6b6a6 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Wed, 13 Sep 2023 10:54:18 +0200 Subject: Do more WE processing before returning to the Qt event-loop MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix a race-condition in our tests that the change exposed Task-number: QTBUG-116478 Change-Id: Id21c6b0bc9934fdcb69bd85350f5f263a9b96914 Reviewed-by: Michael Brüning --- src/core/api/qwebenginemessagepumpscheduler.cpp | 9 +++++++-- src/core/api/qwebenginemessagepumpscheduler_p.h | 3 ++- src/core/browser_main_parts_qt.cpp | 10 +++++++--- 3 files changed, 16 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/core/api/qwebenginemessagepumpscheduler.cpp b/src/core/api/qwebenginemessagepumpscheduler.cpp index 62244c787..a435e2c0c 100644 --- a/src/core/api/qwebenginemessagepumpscheduler.cpp +++ b/src/core/api/qwebenginemessagepumpscheduler.cpp @@ -11,9 +11,14 @@ QWebEngineMessagePumpScheduler::QWebEngineMessagePumpScheduler(std::function callback); - void scheduleWork(); + void scheduleImmediateWork(); + void scheduleIdleWork(); void scheduleDelayedWork(int delay); protected: diff --git a/src/core/browser_main_parts_qt.cpp b/src/core/browser_main_parts_qt.cpp index e58822c29..93522d239 100644 --- a/src/core/browser_main_parts_qt.cpp +++ b/src/core/browser_main_parts_qt.cpp @@ -50,6 +50,7 @@ #include "web_engine_context.h" #include "web_usb_detector_qt.h" +#include #include #include @@ -120,7 +121,7 @@ public: { // NOTE: This method may called from any thread at any time. ensureDelegate(); - m_scheduler.scheduleWork(); + m_scheduler.scheduleImmediateWork(); } void ScheduleDelayedWork(const Delegate::NextWorkInfo &next_work_info) override @@ -193,13 +194,16 @@ private: { ScopedGLContextChecker glContextChecker; + QDeadlineTimer timer(std::chrono::milliseconds(2)); base::MessagePump::Delegate::NextWorkInfo more_work_info = m_delegate->DoWork(); + while (more_work_info.is_immediate() && !timer.hasExpired()) + more_work_info = m_delegate->DoWork(); if (more_work_info.is_immediate()) - return ScheduleWork(); + return m_scheduler.scheduleImmediateWork(); if (m_delegate->DoIdleWork()) - return ScheduleWork(); + return m_scheduler.scheduleIdleWork(); ScheduleDelayedWork(more_work_info.delayed_run_time); } -- cgit v1.2.3 From 4aaddd7fa20723efe5c9d50c580675a73373b06a Mon Sep 17 00:00:00 2001 From: Martin Negyokru Date: Tue, 26 Sep 2023 14:45:15 +0200 Subject: Handle initial NavigationEntries Chromium introduced the Initial NavigationEntry that meant to represent the initial empty document at FrameTree creation time. It is just a placeholder entry put in the list of NavigationEntries that gets replaced on the next navigation. A side effect of this is that we have an extra entry in the list before we load any page. This change also reverts the history related tests modified by 106 Adaptations that introduced this behavior. Fixes: QTBUG-117489 Change-Id: I2738591b681082792544bd884f8ecec54ce9d72d Reviewed-by: Allan Sandfeld Jensen (cherry picked from commit f19aa5e343db66e5baacacd3c360c4cb00a01c7c) Reviewed-by: Qt Cherry-pick Bot (cherry picked from commit ea1cb36bdad1a26e98f5909b5b13572114c48b52) --- src/core/web_contents_adapter.cpp | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp index 37f3b13ac..62fff5ad5 100644 --- a/src/core/web_contents_adapter.cpp +++ b/src/core/web_contents_adapter.cpp @@ -210,10 +210,28 @@ static std::unique_ptr createBlankWebContents(WebContentsA return webContents; } +static int navigationListSize(content::NavigationController &controller) { + // If we're currently on the initial NavigationEntry, no navigation has + // committed, so the initial NavigationEntry should not be part of the + // "Navigation List", and we should return 0 as the navigation list size. + if (controller.GetLastCommittedEntry()->IsInitialEntry()) + return 0; + return controller.GetEntryCount(); +} + +static int navigationListCurrentIndex(content::NavigationController &controller) { + // If we're currently on the initial NavigationEntry, no navigation has + // committed, so the initial NavigationEntry should not be part of the + // "Navigation List", and we should return -1 as the current index. + if (controller.GetLastCommittedEntry()->IsInitialEntry()) + return -1; + return controller.GetCurrentEntryIndex(); +} + static void serializeNavigationHistory(content::NavigationController &controller, QDataStream &output) { - const int currentIndex = controller.GetCurrentEntryIndex(); - const int count = controller.GetEntryCount(); + const int currentIndex = navigationListCurrentIndex(controller); + const int count = navigationListSize(controller); const int pendingIndex = controller.GetPendingEntryIndex(); output << kHistoryStreamVersion; @@ -909,13 +927,13 @@ void WebContentsAdapter::navigateToOffset(int offset) int WebContentsAdapter::navigationEntryCount() { CHECK_INITIALIZED(0); - return m_webContents->GetController().GetEntryCount(); + return navigationListSize(m_webContents->GetController()); } int WebContentsAdapter::currentNavigationEntryIndex() { CHECK_INITIALIZED(0); - return m_webContents->GetController().GetCurrentEntryIndex(); + return navigationListCurrentIndex(m_webContents->GetController()); } QUrl WebContentsAdapter::getNavigationEntryOriginalUrl(int index) -- cgit v1.2.3 From a9909dc2cd6fa4221afc900ee8e960fda4475790 Mon Sep 17 00:00:00 2001 From: Martin Negyokru Date: Wed, 4 Oct 2023 15:59:50 +0200 Subject: Enable PipewireCapturer feature for webrtc_pipewire configs There is no point in disabling it if we configure for using the feature. This flag was added to chromium to pass the UI review. Task-number: QTBUG-117673 Change-Id: Idafed808ceb0d0dafe0a55cd6e75f2e6fa6c5b85 Reviewed-by: Allan Sandfeld Jensen --- src/core/web_engine_context.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src') diff --git a/src/core/web_engine_context.cpp b/src/core/web_engine_context.cpp index 973da88a7..8a2cb4229 100644 --- a/src/core/web_engine_context.cpp +++ b/src/core/web_engine_context.cpp @@ -720,6 +720,9 @@ WebEngineContext::WebEngineContext() enableFeatures.push_back(features::kNetworkServiceInProcess.name); enableFeatures.push_back(features::kTracingServiceInProcess.name); +#if QT_CONFIG(webengine_webrtc_pipewire) + enableFeatures.push_back(features::kWebRtcPipeWireCapturer.name); +#endif // When enabled, event.movement is calculated in blink instead of in browser. disableFeatures.push_back(features::kConsolidatedMovementXY.name); -- cgit v1.2.3 From e1139a7f7b15298ab203677aebc13234fc811d4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kai=20K=C3=B6hne?= Date: Fri, 29 Sep 2023 09:49:23 +0200 Subject: Highlight also Recipe Browser Task-number: QTBUG-117224 Change-Id: I80eb11577a46b8e26c4705b647eca855b1a4d933 Reviewed-by: Allan Sandfeld Jensen (cherry picked from commit b9f4ee0a1a38eba55613b28e943e9aafdf47179d) Reviewed-by: Qt Cherry-pick Bot (cherry picked from commit 3a44095235830c1ea54cfb4591d30018e964ff4f) --- src/core/doc/qtwebengine.qdocconf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/core/doc/qtwebengine.qdocconf b/src/core/doc/qtwebengine.qdocconf index 5cbe9e500..d322cc285 100644 --- a/src/core/doc/qtwebengine.qdocconf +++ b/src/core/doc/qtwebengine.qdocconf @@ -31,7 +31,8 @@ qhp.QtWebEngine.subprojects.examples.selectors = doc:example qhp.QtWebEngine.subprojects.examples.sortPages = true manifestmeta.highlighted.names += "QtWebEngine/WebEngine Widgets Simple Browser Example" \ - "QtWebEngine/WebEngine Quick Nano Browser" + "QtWebEngine/WebEngine Quick Nano Browser" \ + "QtWebEngine/Recipe Browser" tagfile = ../../../doc/qtwebengine/qtwebengine.tags -- cgit v1.2.3 From 30c141c647806be05e9724d82e101c2a1eb87b28 Mon Sep 17 00:00:00 2001 From: Michal Klocek Date: Wed, 13 Sep 2023 13:54:12 +0200 Subject: Fix corrupted load/fetch state on start up in case of NoCache The NoCache option on profile schedules clearHttpCache task. However, this task will run later and BrowsingDataRemover will break current network context mojo pipes. Network context will be recreated eventually but all the load/request states are gone. Do not delete explicitly cache on NoCache setting, which was undocumented 'feature' anyway. Let the user take care of that. Note doing reset network context on startup is fine as it is not delayed. [ChangeLog][WebEngineCore][WebEngineProfile] Switching profile to NoCache do not longer implicitly removes cache from old data store. Task-number: QTBUG-116478 Change-Id: Ibd108d4ce7392349304df9f606738dc14dba36a0 Reviewed-by: Peter Varga (cherry picked from commit f46e2f2d681f826c75637876e5df786664232ab1) Reviewed-by: Qt Cherry-pick Bot (cherry picked from commit 5c442bb23f5953347e57f4a5e5a2ee9d35aab045) --- src/core/api/qwebengineprofile.cpp | 5 ++++- src/core/profile_adapter.cpp | 2 -- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/core/api/qwebengineprofile.cpp b/src/core/api/qwebengineprofile.cpp index ab873e345..2defebdaf 100644 --- a/src/core/api/qwebengineprofile.cpp +++ b/src/core/api/qwebengineprofile.cpp @@ -495,7 +495,10 @@ QWebEngineProfile::HttpCacheType QWebEngineProfile::httpCacheType() const /*! Sets the HTTP cache type to \a httpCacheType. - \sa httpCacheType(), setCachePath() + \note Setting the \a httpCacheType to NoCache on the profile, which has already some cache + entries does not trigger the removal of those entries. + + \sa httpCacheType(), setCachePath(), clearHttpCache() */ void QWebEngineProfile::setHttpCacheType(QWebEngineProfile::HttpCacheType httpCacheType) { diff --git a/src/core/profile_adapter.cpp b/src/core/profile_adapter.cpp index e9e9aaeda..4ed45c020 100644 --- a/src/core/profile_adapter.cpp +++ b/src/core/profile_adapter.cpp @@ -345,8 +345,6 @@ void ProfileAdapter::setHttpCacheType(ProfileAdapter::HttpCacheType newhttpCache return; if (!m_offTheRecord && !m_profile->m_profileIOData->isClearHttpCacheInProgress()) { m_profile->m_profileIOData->resetNetworkContext(); - if (m_httpCacheType == NoCache) - clearHttpCache(); } } -- cgit v1.2.3 From 35047cd0d5163f94faf63a20b975e6d87ea69beb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Br=C3=BCning?= Date: Wed, 11 Oct 2023 13:03:18 +0200 Subject: Update Chromium Submodule src/3rdparty ef090c47..7a4d8d3c: * [Backport] Add Intel Meteorlake GPU series type * [Backport] Add Intel Raptorlake GPU series type * Fix ffmpeg assembly with newer binutil * [Backport] Security bug 1447972 (2/2) * [Backport] Security bug 1447972 (1/2) * [Backport] Security bug 1479104 * [Backport] Security bug 1480184 * [Backport] CVE-2023-5217: Heap buffer overflow in vp8 encoding in libvpx * [Backport] Make absl::string_view a typedef for std::string_view * [Backport] Replace uses of re2::StringPiece::set(). * [Backport] Set ABSL_OPTION_USE_STD_ANY to 2 * Pass python interpreter path to gn during license check * Fix broken copy of non-BMP characters Fixes: QTBUG-117652 Change-Id: I3aef542eb56b4aa7e051632cbf6aa0d483107475 Reviewed-by: Michal Klocek --- src/3rdparty | 2 +- src/core/web_engine_context.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/3rdparty b/src/3rdparty index ef090c47d..7a4d8d3c0 160000 --- a/src/3rdparty +++ b/src/3rdparty @@ -1 +1 @@ -Subproject commit ef090c47d08c734ae2b3c1db508982aca0f3ee1e +Subproject commit 7a4d8d3c040d4e6cb9ff6ea040eb50722239b31f diff --git a/src/core/web_engine_context.cpp b/src/core/web_engine_context.cpp index 8a2cb4229..26a3ede21 100644 --- a/src/core/web_engine_context.cpp +++ b/src/core/web_engine_context.cpp @@ -974,7 +974,7 @@ const char *qWebEngineChromiumVersion() noexcept const char *qWebEngineChromiumSecurityPatchVersion() noexcept { - return "117.0.5938.63"; // FIXME: Remember to update + return "117.0.5938.149"; // FIXME: Remember to update } QT_END_NAMESPACE -- cgit v1.2.3 From 5e4130fdb46c2faa630be8c2f7a0040f3e579e3c Mon Sep 17 00:00:00 2001 From: Michal Klocek Date: Tue, 31 Oct 2023 09:19:14 +0100 Subject: Add is_msvc parameter support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Branches dev and 6.6 have is_msvc parameter, which came with mingw support in 6a99ecaaa4. Add is_msvc parameter to 6.5 as it is required for 'shorter includes' patch. Task-number: QTBUG-118410 Change-Id: I639a4f8d26f6075b516eabf2293e813841dbad02 Reviewed-by: Michael Brüning --- src/pdf/configure/BUILD.root.gn.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/pdf/configure/BUILD.root.gn.in b/src/pdf/configure/BUILD.root.gn.in index 3918c1e9f..333e541ab 100644 --- a/src/pdf/configure/BUILD.root.gn.in +++ b/src/pdf/configure/BUILD.root.gn.in @@ -59,7 +59,7 @@ static_library("QtPdf") { deps = [ "//third_party/pdfium" ] - if (is_win) { + if (is_msvc) { libs = [ "dloadhelper.lib", "winmm.lib", -- cgit v1.2.3 From ac2c9d445becd6d8b52eb04679a52f137ecc4dc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Br=C3=BCning?= Date: Mon, 30 Oct 2023 13:32:27 +0100 Subject: Update Chromium Submodule src/3rdparty 7a4d8d3c..fdbad563: * [Backport] Security bug 1472365 and 1472366 * [Backport] CVE-2023-5474: Heap buffer overflow in PDF * [Backport] CVE-2023-5475: Inappropriate implementation in DevTools * [Backport] CVE-2023-5484: Inappropriate implementation in Navigation * [Backport] CVE-2023-5487: Inappropriate implementation in Fullscreen * [Backport] Security bug 1472368 * [Backport] Security bug 1486316 * CVE-2023-5218: Use after free in Site Isolation * Add shorter include paths workaround Task-number: QTBUG-118410 Change-Id: I4f277629039af212a81eaf7cbc059105a4da85e8 Reviewed-by: Michal Klocek --- src/3rdparty | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/3rdparty b/src/3rdparty index 7a4d8d3c0..fdbad5633 160000 --- a/src/3rdparty +++ b/src/3rdparty @@ -1 +1 @@ -Subproject commit 7a4d8d3c040d4e6cb9ff6ea040eb50722239b31f +Subproject commit fdbad56331edfa46f841f1f1aa606a98c5fc6e7e -- cgit v1.2.3 From e180153b03a4533018b3357e59a439d74ab03ac4 Mon Sep 17 00:00:00 2001 From: Peter Varga Date: Thu, 21 Sep 2023 15:10:00 +0200 Subject: Fix Qt accessibility cache logging The accessibility cache logging may crash: - when logging an "insert" and the underlying Chromium accessibility objects are not yet created. - when logging a "delete" and the underlying Chromium accessibility objects are already destructed. BrowserAccessibilityManager::GetFromId() is not supposed to return nullptr but it does with the QtWebEngine integration and it happens when we try to access BrowserAccessibility too early or too late. Add check to those BrowserAccessibilityInterface methods which use GetFromId(). These methods are called by the Qt logger on creation and destruction of the BrowserAccessibilityInterface. The logging can be enabled with the following environment variable: QT_LOGGING_RULES="qt.accessibility.cache.debug=true" Change-Id: Ib97f0acb982b72a5602234bd5845749f69689e32 Reviewed-by: Allan Sandfeld Jensen (cherry picked from commit 3533fa83f4f3f3ee32dcd826dd16b625940e088d) Reviewed-by: Qt Cherry-pick Bot (cherry picked from commit a87695c8413890e06ea27abff84b15cd2a994754) --- src/core/browser_accessibility_qt.cpp | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/core/browser_accessibility_qt.cpp b/src/core/browser_accessibility_qt.cpp index 24c006dc5..adb6b873c 100644 --- a/src/core/browser_accessibility_qt.cpp +++ b/src/core/browser_accessibility_qt.cpp @@ -25,6 +25,8 @@ public: BrowserAccessibilityQt(content::BrowserAccessibilityManager *manager, ui::AXNode *node); ~BrowserAccessibilityQt(); + bool isReady() const; + QtWebEngineCore::BrowserAccessibilityInterface *interface = nullptr; }; @@ -144,6 +146,13 @@ BrowserAccessibilityQt::~BrowserAccessibilityQt() interface->destroy(); } +bool BrowserAccessibilityQt::isReady() const +{ + // FIXME: This is just a workaround, remove this when the commented out assert in + // BrowserAccessibilityManager::GetFromID(int32_t id) gets fixed. + return manager()->GetFromID(node()->id()) != nullptr; +} + BrowserAccessibilityInterface::BrowserAccessibilityInterface(BrowserAccessibilityQt *chromiumInterface) : q(chromiumInterface) { @@ -169,6 +178,9 @@ void BrowserAccessibilityInterface::destroy() bool BrowserAccessibilityInterface::isValid() const { + if (!q->isReady()) + return false; + auto managerQt = static_cast(q->manager()); return managerQt && managerQt->isValid(); } @@ -276,6 +288,9 @@ int BrowserAccessibilityInterface::indexOfChild(const QAccessibleInterface *ifac QString BrowserAccessibilityInterface::text(QAccessible::Text t) const { + if (!q->isReady()) + return QString(); + switch (t) { case QAccessible::Name: return toQt(q->GetStringAttribute(ax::mojom::StringAttribute::kName)); @@ -297,7 +312,7 @@ void BrowserAccessibilityInterface::setText(QAccessible::Text t, const QString & QRect BrowserAccessibilityInterface::rect() const { - if (!q->manager()) // needed implicitly by GetScreenBoundsRect() + if (!q->manager() || !q->isReady()) // needed implicitly by GetScreenBoundsRect() return QRect(); gfx::Rect bounds = q->GetUnclippedScreenBoundsRect(); bounds = gfx::ScaleToRoundedRect(bounds, 1.f / q->manager()->device_scale_factor()); // FIXME: check @@ -699,6 +714,11 @@ QAccessible::Role BrowserAccessibilityInterface::role() const QAccessible::State BrowserAccessibilityInterface::state() const { QAccessible::State state = QAccessible::State(); + if (!q->isReady()) { + state.invalid = true; + return state; + } + if (q->HasState(ax::mojom::State::kCollapsed)) state.collapsed = true; if (q->HasState(ax::mojom::State::kDefault)) -- cgit v1.2.3 From aa8cc4d0df7787e6a1777cd5cb1ab512bc1d8b8d Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Tue, 31 Oct 2023 15:08:15 +0100 Subject: Set RendererPreferences::can_accept_load_drops MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The setting is duplicated, and the webpreference version will disappear in the future. Change-Id: I8281d298a95b68bc7f3b421f8388a976da90baab Reviewed-by: Michael Brüning (cherry picked from commit 65d4600a6fb7db435f7fc91a2a54f98238e6e5d3) Reviewed-by: Qt Cherry-pick Bot (cherry picked from commit 6799a384d1f16cfe27382915b9a6573c1bce91a4) --- src/core/web_contents_adapter.cpp | 2 ++ src/core/web_engine_settings.cpp | 5 +++++ 2 files changed, 7 insertions(+) (limited to 'src') diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp index 62fff5ad5..83066e811 100644 --- a/src/core/web_contents_adapter.cpp +++ b/src/core/web_contents_adapter.cpp @@ -553,6 +553,8 @@ void WebContentsAdapter::initializeRenderPrefs() ? blink::kWebRTCIPHandlingDefaultPublicInterfaceOnly : blink::kWebRTCIPHandlingDefault; #endif + rendererPrefs->can_accept_load_drops = m_adapterClient->webEngineSettings()->testAttribute(QWebEngineSettings::NavigateOnDropEnabled); + // Set web-contents font settings to the default font settings as Chromium constantly overrides // the global font defaults with the font settings of the latest web-contents created. static const gfx::FontRenderParams params = gfx::GetFontRenderParams(gfx::FontRenderParamsQuery(), nullptr); diff --git a/src/core/web_engine_settings.cpp b/src/core/web_engine_settings.cpp index 906f9fb72..520bc6499 100644 --- a/src/core/web_engine_settings.cpp +++ b/src/core/web_engine_settings.cpp @@ -441,6 +441,11 @@ bool WebEngineSettings::applySettingsToRendererPreferences(blink::RendererPrefer } } #endif + bool canNavigateOnDrop = testAttribute(QWebEngineSettings::NavigateOnDropEnabled); + if (canNavigateOnDrop != prefs->can_accept_load_drops) { + prefs->can_accept_load_drops = canNavigateOnDrop; + changed = true; + } return changed; } -- cgit v1.2.3 From 0e7ef8f647e80ee0d2e477a0410b3cf0d7708e50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Br=C3=BCning?= Date: Thu, 2 Nov 2023 00:02:02 +0100 Subject: Update Chromium patch level version Change-Id: Iea6afb09f56698ad82ffd4ee327c14f621613a44 Reviewed-by: Michal Klocek --- src/core/web_engine_context.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/core/web_engine_context.cpp b/src/core/web_engine_context.cpp index 26a3ede21..81a22ff6c 100644 --- a/src/core/web_engine_context.cpp +++ b/src/core/web_engine_context.cpp @@ -974,7 +974,7 @@ const char *qWebEngineChromiumVersion() noexcept const char *qWebEngineChromiumSecurityPatchVersion() noexcept { - return "117.0.5938.149"; // FIXME: Remember to update + return "118.0.5993.117"; // FIXME: Remember to update } QT_END_NAMESPACE -- cgit v1.2.3 From f1ee7ca6f839dd2c2a0f95d5299f0cea947847f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Br=C3=BCning?= Date: Thu, 2 Nov 2023 22:26:33 +0100 Subject: Update Chromium Submodule src/3rdparty fdbad563..059e30a8: * [Backport] CVE-2023-45853: Buffer overflow in MiniZip (2/2) * [Backport] CVE-2023-45853: Buffer overflow in MiniZip (1/2) * [Backport] Security bug 1471305 * [Backport] CVE-2023-5482 and CVE-2023-5849 * [Backport] Security bug 1478470 Fixes: QTBUG-118684 Change-Id: I285d764bfa562ca587a23d12486dd4e38942c222 Reviewed-by: Allan Sandfeld Jensen --- src/3rdparty | 2 +- src/core/web_engine_context.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/3rdparty b/src/3rdparty index fdbad5633..059e30a8c 160000 --- a/src/3rdparty +++ b/src/3rdparty @@ -1 +1 @@ -Subproject commit fdbad56331edfa46f841f1f1aa606a98c5fc6e7e +Subproject commit 059e30a8c355bd0dfdf984a85aefdbf7965dadf0 diff --git a/src/core/web_engine_context.cpp b/src/core/web_engine_context.cpp index 81a22ff6c..e2d48f1fd 100644 --- a/src/core/web_engine_context.cpp +++ b/src/core/web_engine_context.cpp @@ -974,7 +974,7 @@ const char *qWebEngineChromiumVersion() noexcept const char *qWebEngineChromiumSecurityPatchVersion() noexcept { - return "118.0.5993.117"; // FIXME: Remember to update + return "119.0.6045.105"; // FIXME: Remember to update } QT_END_NAMESPACE -- cgit v1.2.3 From 81e9907fcb976971003c5de16620d4ba4c556d88 Mon Sep 17 00:00:00 2001 From: Vladimir Belyavsky Date: Sun, 22 Oct 2023 11:07:15 +0300 Subject: Compositor: fix potential nullptr access Check m_binding under the mutex to avoid data race and potentially crash on nullptr access. Fixes: QTBUG-118455 Change-Id: I169c90226616e14461875aae1c72bbba2b36de8c Reviewed-by: Allan Sandfeld Jensen (cherry picked from commit 888f786ff054d2216ddb669992ffe5aeae7f82d4) Reviewed-by: Qt Cherry-pick Bot (cherry picked from commit e6c7af122669d7ea4dc9bb163e200a571a08da7b) --- src/core/compositor/compositor.cpp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/core/compositor/compositor.cpp b/src/core/compositor/compositor.cpp index c147f988b..d576e0923 100644 --- a/src/core/compositor/compositor.cpp +++ b/src/core/compositor/compositor.cpp @@ -94,10 +94,8 @@ void Compositor::Observer::unbind() Compositor::Handle Compositor::Observer::compositor() { - if (!m_binding) - return nullptr; g_bindings.lock(); - if (m_binding->compositor) + if (m_binding && m_binding->compositor) return m_binding->compositor; // delay unlock g_bindings.unlock(); return nullptr; @@ -128,10 +126,8 @@ void Compositor::unbind() Compositor::Handle Compositor::observer() { - if (!m_binding) - return nullptr; g_bindings.lock(); - if (m_binding->observer) + if (m_binding && m_binding->observer) return m_binding->observer; // delay unlock g_bindings.unlock(); return nullptr; -- cgit v1.2.3 From 2459586ff50c5182244029ee661eecb669a6edb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Br=C3=BCning?= Date: Tue, 7 Nov 2023 12:15:08 +0100 Subject: Update Chromium Submodule src/3rdparty 059e30a8..208e83e1: * [Backport] CVE-2023-5996: Use after free in WebAudio * Fixup for [Backport] CVE-2023-5484: Inappropriate implementation in Navigation Fixes: QTBUG-118893 Fixes: QTBUG-118850 Change-Id: I6b62d0f7ba31078ad39e527089a096adf85528b0 Reviewed-by: Michal Klocek --- src/3rdparty | 2 +- src/core/web_engine_context.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/3rdparty b/src/3rdparty index 059e30a8c..208e83e1f 160000 --- a/src/3rdparty +++ b/src/3rdparty @@ -1 +1 @@ -Subproject commit 059e30a8c355bd0dfdf984a85aefdbf7965dadf0 +Subproject commit 208e83e1f53f596946304e072ec028866b1bdc3f diff --git a/src/core/web_engine_context.cpp b/src/core/web_engine_context.cpp index e2d48f1fd..519b5e6e7 100644 --- a/src/core/web_engine_context.cpp +++ b/src/core/web_engine_context.cpp @@ -974,7 +974,7 @@ const char *qWebEngineChromiumVersion() noexcept const char *qWebEngineChromiumSecurityPatchVersion() noexcept { - return "119.0.6045.105"; // FIXME: Remember to update + return "119.0.6045.123"; // FIXME: Remember to update } QT_END_NAMESPACE -- cgit v1.2.3 From 8e54d5db0bafe85801be1a696953f8a3c7f03a19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Br=C3=BCning?= Date: Wed, 29 Nov 2023 12:42:35 +0100 Subject: Update Chromium Submodule src/3rdparty 208e83e1..21bb29b9: * [Backport] CVE-2023-6347: Use after free in Mojo * [Backport] CVE-2023-6345: Integer overflow in Skia (2/2) * [Backport] CVE-2023-6345: Integer overflow in Skia (1/2) * [Backport] CVE-2023-6112: Use after free in Navigation * [Backport] CVE-2023-5997: Use after free in Garbage Collection * Do not remove the extension kiosk delegate from the build Fixes: QTBUG-119554 Change-Id: Ibd61effc54b9de91800f27fa2b63a42a18d3f3e7 Reviewed-by: Michal Klocek --- src/3rdparty | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/3rdparty b/src/3rdparty index 208e83e1f..21bb29b9b 160000 --- a/src/3rdparty +++ b/src/3rdparty @@ -1 +1 @@ -Subproject commit 208e83e1f53f596946304e072ec028866b1bdc3f +Subproject commit 21bb29b9b730cc215ee7dfb3cf343139a9be9522 -- cgit v1.2.3 From 55e9dd67ed2cf2546887c0324dc9911756b86a04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Br=C3=BCning?= Date: Wed, 29 Nov 2023 14:26:40 +0100 Subject: Update Chromium patch level Change-Id: I3cf98d729dc89001d9434e048f7703a572710984 Reviewed-by: Michal Klocek --- src/core/web_engine_context.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/core/web_engine_context.cpp b/src/core/web_engine_context.cpp index 519b5e6e7..70b1a77b0 100644 --- a/src/core/web_engine_context.cpp +++ b/src/core/web_engine_context.cpp @@ -974,7 +974,7 @@ const char *qWebEngineChromiumVersion() noexcept const char *qWebEngineChromiumSecurityPatchVersion() noexcept { - return "119.0.6045.123"; // FIXME: Remember to update + return "119.0.6045.199"; // FIXME: Remember to update } QT_END_NAMESPACE -- cgit v1.2.3