diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-03-26 22:17:18 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-03-26 22:17:18 +0100 |
commit | 3ec12c0b43f885f85427743c03fe099ffed56fc0 (patch) | |
tree | 0cb3f75b99836b479d99a8ccc8fd8dcc369b8dea | |
parent | 1d5c00fde1d2263dd74f2bdc8590783057ec853e (diff) | |
parent | 8947dc6902bfd2a8acd31b8c894407bf6a12695b (diff) |
Merge branch '5.14' into 5.15
Conflicts:
src/3rdparty
tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
Change-Id: Idbc9d3b06c0052a721c974fbcbfa3164faaead14
-rw-r--r-- | configure.pri | 2 | ||||
-rw-r--r-- | dist/changes-5.14.2 | 107 | ||||
-rw-r--r-- | src/core/common/qt_messages.h | 6 | ||||
-rw-r--r-- | src/core/core_module.pro | 4 | ||||
-rw-r--r-- | src/core/render_widget_host_view_qt.cpp | 18 | ||||
-rw-r--r-- | src/webengine/doc/src/qtwebengine-qmlmodule.qdoc | 4 | ||||
-rw-r--r-- | tests/auto/quick/dialogs/BLACKLIST | 8 | ||||
-rw-r--r-- | tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp | 38 | ||||
-rw-r--r-- | tools/scripts/gn_find_mocables.py | 4 |
9 files changed, 163 insertions, 28 deletions
diff --git a/configure.pri b/configure.pri index f89df5273..f2c3620de 100644 --- a/configure.pri +++ b/configure.pri @@ -166,7 +166,7 @@ defineTest(qtConfTest_detectNinja) { !isEmpty(ninja) { qtLog("Found ninja from path: $$ninja") qtRunLoggedCommand("$$ninja --version", version)|return(false) - contains(version, "1.[7-9].*"): return(true) + contains(version, "1\.([7-9]|1[0-9])\..*"): return(true) qtLog("Ninja version too old") } qtLog("Building own ninja") diff --git a/dist/changes-5.14.2 b/dist/changes-5.14.2 new file mode 100644 index 000000000..3cf48a4f4 --- /dev/null +++ b/dist/changes-5.14.2 @@ -0,0 +1,107 @@ +Qt 5.14.2 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.14.0 through 5.14.1. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + +https://doc.qt.io/qt-5/index.html + +The Qt version 5.14 series is binary compatible with the 5.13.x series. +Applications compiled for 5.13 will continue to run with 5.14. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* Qt 5.14.2 Changes * +**************************************************************************** + +General +------- + + - [QTBUG-78284] Fixed conversion of tabpanel aria role + - [QTBUG-81206] Fixed overriding shortcuts in password input fields on Windows + - [QTBUG-80234] Fixed media playback issue on custom urls by supporting + HTTP ranges headers + - [QTBUG-81521] Update navigation actions when load finishes in a subframe + - [QTBUG-82109] Fixed name filters of GTK file picker + - [QTBUG-78284] Fixed widget accessibility on macOS + - [QTBUG-78284] Fixed quick accessibility on macOS + - [QTBUG-81783] Fixed event.key for Ctrl key combinations on Windows + - [QTBUG-81574] Clear previous page text selection on new navigation unconditionally + - [QTBUG-78284] Fixed VoiceOver navigation on web pages on macOS + - [QTBUG-81539] Update accessibility focus on FocusIn events for Quick + - [QTBUG-82715] Support build with system ninja >= 1.10.0 + - Fixed deadlocks on WebEngineContext destruction + - Suppress error message on ACCESSIBILITY_EVENTS permission type + - Example 'quicknanobrowser' improvements + +Chromium +-------- + + - Fixed build with gcc 5 + - Fixed -no-webengine-spellchecker build + + - Security fixes from Chromium up to version 80.0.3987.132, including: + + * CVE-2019-19880 + * CVE-2019-19923 - Out of bounds memory access in SQLite + * CVE-2019-19925 - Multiple vulnerabilities in SQLite + * CVE-2019-19926 - Inappropriate implementation in SQLite + * CVE-2019-18197 - Multiple vulnerabilities in XML + * CVE-2019-20503 - Out of bounds read in usersctplib + * CVE-2020-6381 - Integer overflow in Javascript + * CVE-2020-6383 - Type confusion in V8 + * CVE-2020-6384 - Use after free in WebAudio + * CVE-2020-6385 - Insufficient policy enforcement in storage + * CVE-2020-6387 - Out of bounds write in WebRTC + * CVE-2020-6388 - Out of bounds memory access in WebAudio + * CVE-2020-6389 - Out of bounds write in WebRTC + * CVE-2020-6390 - Out of bounds memory access in streams + * CVE-2020-6391 - Insufficient validation of untrusted input in Blink + * CVE-2020-6392 - Insufficient policy enforcement in extensions + * CVE-2020-6393 - Insufficient policy enforcement in Blink + * CVE-2020-6394 - Insufficient policy enforcement in Blink + * CVE-2020-6395 - Out of bounds read in JavaScript + * CVE-2020-6396 - Inappropriate implementation in Skia + * CVE-2020-6398 - Uninitialized use in PDFium + * CVE-2020-6399 - Insufficient policy enforcement in AppCache + * CVE-2020-6400 - Inappropriate implementation in CORS + * CVE-2020-6401 + * CVE-2020-6404 - Inappropriate implementation in Blink + * CVE-2020-6405 - Out of bounds read in SQLite + * CVE-2020-6406 - Use after free in audio + * CVE-2020-6407 - Out of bounds memory access in streams + * CVE-2020-6410 - Insufficient policy enforcement in navigation + * CVE-2020-6411 + * CVE-2020-6412 - Insufficient validation of untrusted input in Omnibox + * CVE-2020-6413 - Inappropriate implementation in Blink + * CVE-2020-6415 + * CVE-2020-6418 - Type confusion in V8 + * CVE-2020-6420 - Insufficient policy enforcement in media + * CVE-2020-6422 - Use after free in WebGL. + * CVE-2020-6426 - Inappropriate implementation in V8. + * CVE-2020-6427 - Use after free in audio. + * CVE-2020-6428 - Use after free in audio. + * CVE-2020-6429 - Use after free in audio. + * CVE-2020-6449 - Use after free in audio. + * Security bug 925035 + * Security bug 1016038 + * Security bug 1016506 + * Security bug 1018629 + * Security bug 1020031 + * Security bug 1025442 + * Security bug 1026293 + * Security bug 1029865 + * Security bug 1031909 + * Security bug 1033461 + * Security bug 1035723 + * Security bug 1040700 + * Security bug 1044570 + * Security bug 1047097 + diff --git a/src/core/common/qt_messages.h b/src/core/common/qt_messages.h index b99204b74..43f07c9a6 100644 --- a/src/core/common/qt_messages.h +++ b/src/core/common/qt_messages.h @@ -36,6 +36,9 @@ IPC_MESSAGE_ROUTED1(RenderViewObserverQt_FetchDocumentMarkup, IPC_MESSAGE_ROUTED1(RenderViewObserverQt_FetchDocumentInnerText, uint64_t /* requestId */) +IPC_MESSAGE_ROUTED1(RenderViewObserverQt_SetBackgroundColor, + uint32_t /* color */) + // User scripts messages IPC_MESSAGE_ROUTED1(RenderFrameObserverHelper_AddScript, UserScriptData /* script */) @@ -65,9 +68,6 @@ IPC_MESSAGE_ROUTED2(RenderViewObserverHostQt_DidFetchDocumentInnerText, uint64_t /* requestId */, base::string16 /* innerText */) -IPC_MESSAGE_ROUTED1(RenderViewObserverQt_SetBackgroundColor, - uint32_t /* color */) - IPC_MESSAGE_ROUTED0(RenderViewObserverHostQt_DidFirstVisuallyNonEmptyLayout) //----------------------------------------------------------------------------- diff --git a/src/core/core_module.pro b/src/core/core_module.pro index 4b9268e1a..d7e2ab8da 100644 --- a/src/core/core_module.pro +++ b/src/core/core_module.pro @@ -107,7 +107,7 @@ resources.files = $$REPACK_DIR/qtwebengine_resources.pak \ icu.files = $$OUT_PWD/$$getConfigDir()/icudtl.dat -!debug_and_release|!build_all|CONFIG(release, debug|release) { +!qtConfig(debug_and_release)|!qtConfig(build_all)|CONFIG(release, debug|release) { qtConfig(framework) { locales.version = Versions locales.path = Resources/qtwebengine_locales @@ -146,7 +146,7 @@ icu.files = $$OUT_PWD/$$getConfigDir()/icudtl.dat } } -!build_pass:debug_and_release { +!build_pass:qtConfig(debug_and_release) { # Special GNU make target that ensures linking isn't done for both debug and release builds # at the same time. notParallel.target = .NOTPARALLEL diff --git a/src/core/render_widget_host_view_qt.cpp b/src/core/render_widget_host_view_qt.cpp index 26ddc807f..c1b1791cf 100644 --- a/src/core/render_widget_host_view_qt.cpp +++ b/src/core/render_widget_host_view_qt.cpp @@ -48,6 +48,7 @@ #include "touch_selection_controller_client_qt.h" #include "touch_selection_menu_controller.h" #include "type_conversion.h" +#include "web_contents_adapter.h" #include "web_contents_adapter_client.h" #include "web_event_factory.h" @@ -497,23 +498,20 @@ gfx::Rect RenderWidgetHostViewQt::GetViewBounds() void RenderWidgetHostViewQt::UpdateBackgroundColor() { + DCHECK(GetBackgroundColor()); + SkColor color = *GetBackgroundColor(); + + m_delegate->setClearColor(toQt(color)); + if (m_enableViz) { - DCHECK(GetBackgroundColor()); - SkColor color = *GetBackgroundColor(); bool opaque = SkColorGetA(color) == SK_AlphaOPAQUE; m_rootLayer->SetFillsBoundsOpaquely(opaque); m_rootLayer->SetColor(color); m_uiCompositor->SetBackgroundColor(color); - m_delegate->setClearColor(toQt(color)); - host()->Send(new RenderViewObserverQt_SetBackgroundColor(host()->GetRoutingID(), color)); - return; } - auto color = GetBackgroundColor(); - if (color) { - m_delegate->setClearColor(toQt(*color)); - host()->Send(new RenderViewObserverQt_SetBackgroundColor(host()->GetRoutingID(), *color)); - } + content::RenderViewHost *rvh = content::RenderViewHost::From(host()); + host()->Send(new RenderViewObserverQt_SetBackgroundColor(rvh->GetRoutingID(), color)); } // Return value indicates whether the mouse is locked successfully or not. diff --git a/src/webengine/doc/src/qtwebengine-qmlmodule.qdoc b/src/webengine/doc/src/qtwebengine-qmlmodule.qdoc index 44e6c7e27..4fd7e3a3b 100644 --- a/src/webengine/doc/src/qtwebengine-qmlmodule.qdoc +++ b/src/webengine/doc/src/qtwebengine-qmlmodule.qdoc @@ -35,9 +35,9 @@ The QML types can be imported into your application using the following import statements in your .qml file: - \badcode + \qml import QtWebEngine 1.10 - \endcode + \endqml To link against the module, add the following QT variable to your qmake .pro file: diff --git a/tests/auto/quick/dialogs/BLACKLIST b/tests/auto/quick/dialogs/BLACKLIST deleted file mode 100644 index 10b7391a0..000000000 --- a/tests/auto/quick/dialogs/BLACKLIST +++ /dev/null @@ -1,8 +0,0 @@ -[contextMenuRequested] -osx-10.13 -[javaScriptDialogRequested] -osx-10.13 -[colorDialogRequested] -osx-10.13 -[fileDialogRequested] -osx-10.13 diff --git a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp index 63be1573b..4945f6c91 100644 --- a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp +++ b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp @@ -227,6 +227,7 @@ private Q_SLOTS: void customUserAgentInNewTab(); void renderProcessCrashed(); void renderProcessPid(); + void backgroundColor(); private: static QPoint elementCenter(QWebEnginePage *page, const QString &id); @@ -4388,6 +4389,43 @@ void tst_QWebEnginePage::renderProcessPid() QCOMPARE(m_page->renderProcessPid(), 0); } +void tst_QWebEnginePage::backgroundColor() +{ + QWebEngineProfile profile; + QWebEngineView view; + QWebEnginePage *page = new QWebEnginePage(&profile, &view); + + view.resize(640, 480); + view.show(); + QPoint center(view.size().width() / 2, view.size().height() / 2); + + QCOMPARE(page->backgroundColor(), Qt::white); + QTRY_COMPARE(view.grab().toImage().pixelColor(center), Qt::white); + + page->setBackgroundColor(Qt::red); + view.setPage(page); + + QCOMPARE(page->backgroundColor(), Qt::red); + QTRY_COMPARE(view.grab().toImage().pixelColor(center), Qt::red); + + page->setHtml(QString("<html>" + "<head><style>html, body { margin:0; padding:0; }</style></head>" + "<body><div style=\"width:100%; height:10px; background-color:black\"/></body>" + "</html>")); + QSignalSpy spyFinished(page, &QWebEnginePage::loadFinished); + QVERIFY(spyFinished.wait()); + // Make sure the page is rendered and the test is not grabbing the color of the RenderWidgetHostViewQtDelegateWidget. + QTRY_COMPARE(view.grab().toImage().pixelColor(QPoint(5, 5)), Qt::black); + + QCOMPARE(page->backgroundColor(), Qt::red); + QCOMPARE(view.grab().toImage().pixelColor(center), Qt::red); + + page->setBackgroundColor(Qt::green); + + QCOMPARE(page->backgroundColor(), Qt::green); + QTRY_COMPARE(view.grab().toImage().pixelColor(center), Qt::green); +} + static QByteArrayList params = {QByteArrayLiteral("--use-fake-device-for-media-stream")}; W_QTEST_MAIN(tst_QWebEnginePage, params) diff --git a/tools/scripts/gn_find_mocables.py b/tools/scripts/gn_find_mocables.py index d1f682456..4dc2576e3 100644 --- a/tools/scripts/gn_find_mocables.py +++ b/tools/scripts/gn_find_mocables.py @@ -58,10 +58,10 @@ for f in filter(os.path.isfile, files): includedMocs.add(im.group(1)) for mocable in includedMocs: - print "Found included moc: " + mocable + print("Found included moc: " + mocable) assert len(includedMocs) == 0 , "Included mocs are not supported !" for mocable in mocables: - print mocable + print(mocable) sys.exit(0) |