summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-03-26 22:17:18 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-03-31 08:25:54 +0100
commit3394cde4e89463ba49af379b89863c7731c4b4ac (patch)
tree6f287bc24365ce14e44479ce63793a4e0f92a49c
parent4dfe65f6d4d27bde9d4dae51d262493bea70e619 (diff)
parent3ec12c0b43f885f85427743c03fe099ffed56fc0 (diff)
Merge "Merge branch '5.14' into 5.15"v5.15.0-beta3
-rw-r--r--configure.pri2
-rw-r--r--dist/changes-5.14.2107
-rw-r--r--src/core/common/qt_messages.h6
-rw-r--r--src/core/core_module.pro4
-rw-r--r--src/core/render_widget_host_view_qt.cpp18
-rw-r--r--src/webengine/doc/src/qtwebengine-qmlmodule.qdoc4
-rw-r--r--tests/auto/quick/dialogs/BLACKLIST8
-rw-r--r--tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp38
-rw-r--r--tools/scripts/gn_find_mocables.py4
9 files changed, 163 insertions, 28 deletions
diff --git a/configure.pri b/configure.pri
index f89df527..f2c3620d 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 00000000..3cf48a4f
--- /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 b99204b7..43f07c9a 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 4b9268e1..d7e2ab8d 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 26ddc807..c1b1791c 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 44e6c7e2..4fd7e3a3 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 10b7391a..00000000
--- 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 63be1573..4945f6c9 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 d1f68245..4dc2576e 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)