summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--coin/qt-installer-package-config.json2
-rw-r--r--dist/changes-5.12.1086
-rw-r--r--dist/changes-5.15.282
-rw-r--r--examples/examples.pro2
-rw-r--r--examples/pdf/multipage/main.cpp4
-rw-r--r--examples/pdf/multipage/multipage.pro2
-rw-r--r--examples/pdf/pdf.pro2
-rw-r--r--examples/pdf/pdfviewer/main.cpp4
-rw-r--r--examples/pdf/pdfviewer/pdfviewer.pro2
-rw-r--r--src/core/content_main_delegate_qt.cpp3
-rw-r--r--src/core/web_engine_context.cpp2
-rw-r--r--src/core/web_engine_library_info.cpp32
-rw-r--r--src/core/web_engine_library_info.h6
-rw-r--r--src/core/web_engine_settings.cpp19
-rw-r--r--src/webengine/doc/src/qtwebengine-platform-notes.qdoc3
-rw-r--r--tests/auto/quick/dialogs/testhandler.cpp2
-rw-r--r--tests/auto/quick/dialogs/tst_dialogs.cpp79
17 files changed, 272 insertions, 60 deletions
diff --git a/coin/qt-installer-package-config.json b/coin/qt-installer-package-config.json
index 8507c9ec9..0ba69adac 100644
--- a/coin/qt-installer-package-config.json
+++ b/coin/qt-installer-package-config.json
@@ -9,7 +9,9 @@
"**/lib/pkgconfig/Qt5Pdf*",
"**/lib/libQt5Pdf*",
"**/lib/static_chrome/*",
+ "**/lib/QtPdf.framework/*",
"**/mkspecs/modules/qt_lib_pdf*",
+ "**/mkspecs/modules/qt_plugin_qpdf.pri",
"**/plugins/imageformats/*",
"**/qml/QtQuick/**/*"
]
diff --git a/dist/changes-5.12.10 b/dist/changes-5.12.10
new file mode 100644
index 000000000..12e0c46d8
--- /dev/null
+++ b/dist/changes-5.12.10
@@ -0,0 +1,86 @@
+Qt 5.12.10 is a bug-fix release. It maintains both forward and backward
+compatibility (source and binary) with Qt 5.12.9.
+
+For more details, refer to the online documentation included in this
+distribution. The documentation is also available online:
+
+ https://doc.qt.io/qt-5.12/index.html
+
+The Qt version 5.12 series is binary compatible with the 5.11.x series.
+Applications compiled for 5.11 will continue to run with 5.12.
+
+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.
+
+****************************************************************************
+* Library *
+****************************************************************************
+
+General
+-------
+
+ - [QTBUG-75391] Fix pasting Unicode characters copied from WebEngine on macOS
+ - [QTBUG-83710] Fix input of keys requiring AltGr on Windows
+ - [QTBUG-84337] Fixed GPU switching with CoreProfile on macOS (for e.g. AirPlay)
+ - Fixed build with the linux-clang 10 spec
+
+Chromium
+--------
+
+ - Security fixes from Chromium up to version 86.0.4240.75, including:
+
+ - CVE-2020-6459
+ - CVE-2020-6462: Use after free in task scheduling
+ - CVE-2020-6470
+ - CVE-2020-6474
+ - CVE-2020-6481
+ - CVE-2020-6489
+ - CVE-2020-6490
+ - CVE-2020-6511: Side-channel information leakage in CSP
+ - CVE-2020-6512: Type Confusion in V8
+ - CVE-2020-6513: Heap buffer overflow in PDFium
+ - CVE-2020-6514: Inappropriate implementation in WebRTC
+ - CVE-2020-6518: Use after free in developer tools
+ - CVE-2020-6523: Out of bounds write in Skia
+ - CVE-2020-6524: Heap buffer overflow in WebAudio
+ - CVE-2020-6529: Inappropriate implementation in WebRTC
+ - CVE-2020-6532: Use after free in SCTP
+ - CVE-2020-6535: Insufficient data validation in WebUI
+ - CVE-2020-6534: Heap buffer overflow in WebRTC
+ - CVE-2020-6540: Heap buffer overflow in Skia
+ - CVE-2020-6541: Use after free in WebUSB
+ - CVE-2020-6542: Use after free in ANGLE
+ - CVE-2020-6543: Use after free in task scheduling
+ - CVE-2020-6544: Use after free in media
+ - CVE-2020-6545: Use after free in audio
+ - CVE-2020-6548: Heap buffer overflow in Skia
+ - CVE-2020-6549: Use after free in media
+ - CVE-2020-6559: Use after free in presentation API
+ - CVE-2020-6561: Inappropriate implementation in Content Security Policy
+ - CVE-2020-6562: Insufficient policy enforcement in Blink
+ - CVE-2020-6569: Integer overflow in WebUSB
+ - CVE-2020-6571: Incorrect security UI in Omnibox
+ - CVE-2020-6573: Use after free in video
+ - CVE-2020-15962: Insufficient policy enforcement in serial
+ - CVE-2020-15964: Insufficient data validation in media
+ - CVE-2020-15965: Out of bounds write in V8
+ - CVE-2020-15968: Use after free in Blink
+ - CVE-2020-15969: Use after free in WebRTC.
+ - Security Bug 1051439
+ - Security bug 1052492
+ - Security bug 1054229
+ - Security Bug 1057369
+ - Security Bug 1058515
+ - Security bug 1065122
+ - Security bug 1065731
+ - Security bugs 1087629 and 1029569
+ - Security issue 1098860
+ - Security issue 1102137
+ - Security bug 1102408
+ - Security bug 1111149
+
diff --git a/dist/changes-5.15.2 b/dist/changes-5.15.2
new file mode 100644
index 000000000..de6ffc584
--- /dev/null
+++ b/dist/changes-5.15.2
@@ -0,0 +1,82 @@
+Qt 5.15.2 is a bug-fix release. It maintains both forward and backward
+compatibility (source and binary) with Qt 5.15.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.15/index.html
+
+The Qt version 5.15 series is binary compatible with the 5.14.x series.
+Applications compiled for 5.14 will continue to run with 5.15.
+
+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.
+
+****************************************************************************
+* Library *
+****************************************************************************
+
+General
+-------
+ - [QTBUG-84632] Warn about QtWebengineProcess launching from network share
+ on Windows.
+ - [QTBUG-85363] Handle non-ASCII names for PulseAudio
+ - [QTBUG-85494] Fix regression crash when not handling QQuickWebEngineNewViewRequest
+ - [QTBUG-85817] Fix crashes on resize
+ - [QTBUG-86672] Fix remapped menu key being mapped back to menu key
+ - [QTBUG-86945] Fix crash when opening a PDF in debug build on windows.
+ - [QTBUG-87129] Mention node.js build-time dependency
+ - The QtWebEngineProcess now has a version number
+ - The old compositor has been removed and can no longer be restored using
+ command line argument.
+
+Chromium
+--------
+
+ - The Chromium version has been updated to 83.0.4103.122
+ - Security fixes from Chromium up to version 86.0.4240.111, including:
+ - CVE-2020-6540: Heap buffer overflow in Skia
+ - CVE-2020-6557: Inappropriate implementation in networking
+ - CVE-2020-6561: Inappropriate implementation in Content Security Policy
+ - CVE-2020-6562: Insufficient policy enforcement in Blink
+ - CVE-2020-6569: Integer overflow in WebUSB
+ - CVE-2020-6570: Side-channel information leakage in WebRTC
+ - CVE-2020-6573: Use after free in video
+ - CVE-2020-6571: Incorrect security UI in Omnibox
+ - CVE-2020-6575: Race in Mojo
+ - CVE-2020-6576: Use after free in offscreen canvas
+ - CVE-2020-15959: Insufficient policy enforcement in networking
+ - CVE-2020-15960: Out of bounds read in storage
+ - CVE-2020-15961: Insufficient policy enforcement in extensions
+ - CVE-2020-15962: Insufficient policy enforcement in serial
+ - CVE-2020-15963
+ - CVE-2020-15964: Insufficient data validation in media
+ - CVE-2020-15965: Out of bounds write in V8
+ - CVE-2020-15966
+ - CVE-2020-15968: Use after free in Blink
+ - CVE-2020-15969: Use after free in WebRTC.
+ - CVE-2020-15972: Use after free in audio.
+ - CVE-2020—15973: Insufficient policy enforcement in extensions
+ - CVE-2020-15974: Integer overflow in Blink
+ - CVE-2020-15976: Use after free in WebXR
+ - CVE-2020-15977: Insufficient data validation in dialogs.
+ - CVE-2020-15978: Insufficient data validation in navigation
+ - CVE-2020-15979: Inappropriate implementation in V8.
+ - CVE-2020-15985: Inappropriate implementation in Blink.
+ - CVE-2020-15987: Use after free in WebRTC
+ - CVE-2020-15989: Uninitialized Use in PDFium
+ - CVE-2020-15992: Insufficient policy enforcement in networking
+ - CVE-2020-15999: Heap buffer overflow in freetype
+ - CVE-2020-16001: Use after free in media.
+ - CVE-2020-16002: Use after free in PDFium
+ - CVE-2020-16003: Use after free in printing
+ - Security bug 1106091
+ - Security bug 1107824
+ - Security bug 1111149
+ - Security bug 1125199
+
diff --git a/examples/examples.pro b/examples/examples.pro
index c62d7c04d..a0245a869 100644
--- a/examples/examples.pro
+++ b/examples/examples.pro
@@ -20,6 +20,6 @@ qtConfig(build-qtwebengine-core):qtConfig(webengine-core-support) {
}
qtConfig(build-qtpdf):qtConfig(webengine-qtpdf-support) {
- SUDIRS += pdf
+ SUBDIRS += pdf
qtConfig(pdf-widgets): SUBDIRS += pdfwidgets
}
diff --git a/examples/pdf/multipage/main.cpp b/examples/pdf/multipage/main.cpp
index 35aaa8c64..446b2999b 100644
--- a/examples/pdf/multipage/main.cpp
+++ b/examples/pdf/multipage/main.cpp
@@ -48,7 +48,7 @@
**
****************************************************************************/
-#include <QApplication>
+#include <QGuiApplication>
#include <QQmlApplicationEngine>
int main(int argc, char* argv[])
@@ -57,7 +57,7 @@ int main(int argc, char* argv[])
QCoreApplication::setOrganizationName("QtProject");
QCoreApplication::setApplicationVersion(QT_VERSION_STR);
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
- QApplication app(argc, argv);
+ QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:///pdfviewer/viewer.qml")));
diff --git a/examples/pdf/multipage/multipage.pro b/examples/pdf/multipage/multipage.pro
index 5df9e653d..bd08ba0de 100644
--- a/examples/pdf/multipage/multipage.pro
+++ b/examples/pdf/multipage/multipage.pro
@@ -1,6 +1,6 @@
TEMPLATE = app
-QT += qml quick pdf widgets svg
+QT += qml quick pdf svg
SOURCES += main.cpp
diff --git a/examples/pdf/pdf.pro b/examples/pdf/pdf.pro
index 7130f3560..0ae198ee7 100644
--- a/examples/pdf/pdf.pro
+++ b/examples/pdf/pdf.pro
@@ -1,3 +1,3 @@
TEMPLATE=subdirs
-SUBDIRS += pdfviewer multipage
+qtHaveModule(svg): SUBDIRS += pdfviewer multipage
diff --git a/examples/pdf/pdfviewer/main.cpp b/examples/pdf/pdfviewer/main.cpp
index 5f65e3061..13db2b88a 100644
--- a/examples/pdf/pdfviewer/main.cpp
+++ b/examples/pdf/pdfviewer/main.cpp
@@ -48,7 +48,7 @@
**
****************************************************************************/
-#include <QApplication>
+#include <QGuiApplication>
#include <QQmlApplicationEngine>
int main(int argc, char* argv[])
@@ -57,7 +57,7 @@ int main(int argc, char* argv[])
QCoreApplication::setOrganizationName("QtProject");
QCoreApplication::setApplicationVersion(QT_VERSION_STR);
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
- QApplication app(argc, argv);
+ QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:///pdfviewer/viewer.qml")));
diff --git a/examples/pdf/pdfviewer/pdfviewer.pro b/examples/pdf/pdfviewer/pdfviewer.pro
index b8817c9be..a1c578efc 100644
--- a/examples/pdf/pdfviewer/pdfviewer.pro
+++ b/examples/pdf/pdfviewer/pdfviewer.pro
@@ -1,6 +1,6 @@
TEMPLATE = app
-QT += qml quick pdf widgets svg
+QT += qml quick pdf svg
SOURCES += main.cpp
diff --git a/src/core/content_main_delegate_qt.cpp b/src/core/content_main_delegate_qt.cpp
index 2d7d1eb57..cf8582ef2 100644
--- a/src/core/content_main_delegate_qt.cpp
+++ b/src/core/content_main_delegate_qt.cpp
@@ -224,7 +224,8 @@ void ContentMainDelegateQt::PreSandboxStartup()
#endif
if (parsedCommandLine->HasSwitch(service_manager::switches::kApplicationName)) {
- const std::string appName = parsedCommandLine->GetSwitchValueASCII(service_manager::switches::kApplicationName);
+ std::string appName = parsedCommandLine->GetSwitchValueASCII(service_manager::switches::kApplicationName);
+ appName = QByteArray::fromPercentEncoding(QByteArray::fromStdString(appName)).toStdString();
QCoreApplication::setApplicationName(QString::fromStdString(appName));
#if defined(OS_LINUX)
media::AudioManager::SetGlobalAppName(appName);
diff --git a/src/core/web_engine_context.cpp b/src/core/web_engine_context.cpp
index a49d8103c..32701f230 100644
--- a/src/core/web_engine_context.cpp
+++ b/src/core/web_engine_context.cpp
@@ -648,7 +648,7 @@ WebEngineContext::WebEngineContext()
setupProxyPac(parsedCommandLine);
parsedCommandLine->AppendSwitchPath(switches::kBrowserSubprocessPath, WebEngineLibraryInfo::getPath(content::CHILD_PROCESS_EXE));
- parsedCommandLine->AppendSwitchASCII(service_manager::switches::kApplicationName, QCoreApplication::applicationName().toStdString());
+ parsedCommandLine->AppendSwitchASCII(service_manager::switches::kApplicationName, QCoreApplication::applicationName().toUtf8().toPercentEncoding().toStdString());
// Enable sandboxing on OS X and Linux (Desktop / Embedded) by default.
bool disable_sandbox = qEnvironmentVariableIsSet(kDisableSandboxEnv);
diff --git a/src/core/web_engine_library_info.cpp b/src/core/web_engine_library_info.cpp
index 9c99e7e22..fa9e34268 100644
--- a/src/core/web_engine_library_info.cpp
+++ b/src/core/web_engine_library_info.cpp
@@ -47,6 +47,7 @@
#include "content/public/common/content_paths.h"
#include "ui/base/ui_base_paths.h"
#include "ui/base/ui_base_switches.h"
+#include "services/service_manager/sandbox/switches.h"
#include "type_conversion.h"
#include <QByteArray>
@@ -56,7 +57,10 @@
#include <QLibraryInfo>
#include <QLocale>
#include <QStandardPaths>
-#include <QString>
+
+#if defined(OS_WIN)
+#include <windows.h>
+#endif // OS_WIN
#ifndef QTWEBENGINEPROCESS_NAME
#error "No name defined for QtWebEngine's process"
@@ -178,6 +182,14 @@ QString subProcessPath()
if (processPath.isEmpty())
qFatal("Could not find %s", processBinary.toUtf8().constData());
+#if defined(OS_WIN)
+ base::CommandLine *parsedCommandLine = base::CommandLine::ForCurrentProcess();
+ if (!parsedCommandLine->HasSwitch(service_manager::switches::kNoSandbox)) {
+ if (WebEngineLibraryInfo::isUNCPath(processPath) || WebEngineLibraryInfo::isRemoteDrivePath(processPath))
+ qCritical("Can not launch QtWebEngineProcess from network path if sandbox is enabled: %s.", processPath.toUtf8().constData());
+ }
+#endif
+
}
@@ -351,3 +363,21 @@ std::string WebEngineLibraryInfo::getApplicationLocale()
return parsedCommandLine->GetSwitchValueASCII(switches::kLang);
}
+
+#if defined(OS_WIN)
+bool WebEngineLibraryInfo::isRemoteDrivePath(const QString &path)
+{
+ WCHAR wDriveLetter[3];
+ swprintf(wDriveLetter, L"%S", path.mid(0, 3).toStdString().c_str());
+ return GetDriveType(wDriveLetter) == DRIVE_REMOTE;
+}
+
+bool WebEngineLibraryInfo::isUNCPath(const QString &path)
+{
+ return (base::FilePath::IsSeparator(path.at(0).toLatin1())
+ && base::FilePath::IsSeparator(path.at(1).toLatin1())
+ && path.at(2) != "." && path.at(2) != "?"
+ && path.at(2).isLetter() && path.at(3) != ":");
+}
+
+#endif
diff --git a/src/core/web_engine_library_info.h b/src/core/web_engine_library_info.h
index a5cd914d3..4d23d8921 100644
--- a/src/core/web_engine_library_info.h
+++ b/src/core/web_engine_library_info.h
@@ -43,6 +43,8 @@
#include "base/files/file_path.h"
#include "base/strings/string16.h"
+#include <QString>
+
enum {
QT_RESOURCES_PAK = 5000,
QT_RESOURCES_100P_PAK = 5001,
@@ -56,6 +58,10 @@ public:
// Called by localized_error in our custom chrome layer
static base::string16 getApplicationName();
static std::string getApplicationLocale();
+#if defined(OS_WIN)
+ static bool isRemoteDrivePath(const QString &path);
+ static bool isUNCPath(const QString &path);
+#endif
};
diff --git a/src/core/web_engine_settings.cpp b/src/core/web_engine_settings.cpp
index 93c822f2f..693c6f6fb 100644
--- a/src/core/web_engine_settings.cpp
+++ b/src/core/web_engine_settings.cpp
@@ -112,9 +112,8 @@ WebEngineSettings::~WebEngineSettings()
if (parentSettings)
parentSettings->childSettings.remove(this);
// In QML the profile and its settings may be garbage collected before the page and its settings.
- for (WebEngineSettings *settings : qAsConst(childSettings)) {
- settings->parentSettings = 0;
- }
+ for (WebEngineSettings *settings : qAsConst(childSettings))
+ settings->parentSettings = nullptr;
}
void WebEngineSettings::overrideWebPreferences(content::WebContents *webContents, content::WebPreferences *prefs)
@@ -141,11 +140,15 @@ void WebEngineSettings::setAttribute(QWebEngineSettings::WebAttribute attr, bool
bool WebEngineSettings::testAttribute(QWebEngineSettings::WebAttribute attr) const
{
- if (!parentSettings) {
- Q_ASSERT(s_defaultAttributes.contains(attr));
- return m_attributes.value(attr, s_defaultAttributes.value(attr));
- }
- return m_attributes.value(attr, parentSettings->testAttribute(attr));
+ auto it = m_attributes.constFind(attr);
+ if (it != m_attributes.constEnd())
+ return *it;
+
+ if (parentSettings)
+ return parentSettings->testAttribute(attr);
+
+ Q_ASSERT(s_defaultAttributes.contains(attr));
+ return s_defaultAttributes.value(attr);
}
bool WebEngineSettings::isAttributeExplicitlySet(QWebEngineSettings::WebAttribute attr) const
diff --git a/src/webengine/doc/src/qtwebengine-platform-notes.qdoc b/src/webengine/doc/src/qtwebengine-platform-notes.qdoc
index cbb12a0bd..dac010058 100644
--- a/src/webengine/doc/src/qtwebengine-platform-notes.qdoc
+++ b/src/webengine/doc/src/qtwebengine-platform-notes.qdoc
@@ -59,12 +59,13 @@
\section2 All Platforms
- On all platforms, the following tools are required:
+ On all platforms, the following tools are required at build time:
\list
\li \l Python 2.7.5 or later. Python 3 is not supported.
\li Bison, Flex
\li GPerf
+ \li Node.js for a full featured Dev Tools.
\endlist
\section2 Windows
diff --git a/tests/auto/quick/dialogs/testhandler.cpp b/tests/auto/quick/dialogs/testhandler.cpp
index bdd63a547..78a944cc6 100644
--- a/tests/auto/quick/dialogs/testhandler.cpp
+++ b/tests/auto/quick/dialogs/testhandler.cpp
@@ -30,7 +30,7 @@
TestHandler::TestHandler(QObject *parent) : QObject(parent)
{
- setObjectName(QStringLiteral("TestListner"));
+ setObjectName(QStringLiteral("TestListener"));
}
QObject* TestHandler::request() const
diff --git a/tests/auto/quick/dialogs/tst_dialogs.cpp b/tests/auto/quick/dialogs/tst_dialogs.cpp
index dca872aad..8f2e79d3b 100644
--- a/tests/auto/quick/dialogs/tst_dialogs.cpp
+++ b/tests/auto/quick/dialogs/tst_dialogs.cpp
@@ -29,22 +29,23 @@
#include "testhandler.h"
#include "server.h"
#include "util.h"
+
#include <QtWebEngine/private/qquickwebenginedialogrequests_p.h>
#include <QtWebEngineCore/qwebenginecontextmenurequest.h>
#include <QQuickWebEngineProfile>
+
+#include <QNetworkProxy>
#include <QQmlApplicationEngine>
#include <QQuickWindow>
-#include <QTest>
#include <QSignalSpy>
-#include <QNetworkProxy>
-
+#include <QTest>
-class tst_Dialogs : public QObject {
+class tst_Dialogs : public QObject
+{
Q_OBJECT
public:
tst_Dialogs(){}
-
private slots:
void initTestCase();
void init();
@@ -57,11 +58,11 @@ private slots:
void authenticationDialogRequested();
private:
- void createDialog(const QLatin1String& dialog, bool &ok);
+ void createDialog(const QLatin1String &dialog, bool &ok);
private:
QScopedPointer<QQmlApplicationEngine> m_engine;
- QQuickWindow *m_widnow;
- TestHandler *m_listner;
+ QQuickWindow *m_window;
+ TestHandler *m_listener;
};
void tst_Dialogs::initTestCase()
@@ -70,10 +71,10 @@ void tst_Dialogs::initTestCase()
qmlRegisterType<TestHandler>("io.qt.tester", 1, 0, "TestHandler");
m_engine.reset(new QQmlApplicationEngine());
m_engine->load(QUrl(QStringLiteral("qrc:/WebView.qml")));
- m_widnow = qobject_cast<QQuickWindow*>(m_engine->rootObjects().first());
- Q_ASSERT(m_widnow);
- m_listner = m_widnow->findChild<TestHandler*>(QStringLiteral("TestListner"));
- Q_ASSERT(m_listner);
+ m_window = qobject_cast<QQuickWindow*>(m_engine->rootObjects().first());
+ Q_ASSERT(m_window);
+ m_listener = m_window->findChild<TestHandler*>(QStringLiteral("TestListener"));
+ Q_ASSERT(m_listener);
QNetworkProxy proxy;
proxy.setType(QNetworkProxy::HttpProxy);
@@ -84,29 +85,29 @@ void tst_Dialogs::initTestCase()
void tst_Dialogs::init()
{
- m_listner->setRequest(nullptr);
- m_listner->setReady(false);
+ m_listener->setRequest(nullptr);
+ m_listener->setReady(false);
}
-void tst_Dialogs::createDialog(const QLatin1String& dialog, bool &ok)
+void tst_Dialogs::createDialog(const QLatin1String &dialog, bool &ok)
{
QString trigger = QStringLiteral("document.getElementById('buttonOne').onclick = function() {document.getElementById('%1').click()}");
- QSignalSpy dialogSpy(m_listner, &TestHandler::requestChanged);
- m_listner->runJavaScript(trigger.arg(dialog));
- QTRY_VERIFY(m_listner->ready());
- QTest::mouseClick(m_widnow, Qt::LeftButton);
+ QSignalSpy dialogSpy(m_listener, &TestHandler::requestChanged);
+ m_listener->runJavaScript(trigger.arg(dialog));
+ QTRY_VERIFY(m_listener->ready());
+ QTest::mouseClick(m_window, Qt::LeftButton);
QTRY_COMPARE(dialogSpy.count(), 1);
ok = true;
}
void tst_Dialogs::colorDialogRequested()
{
- m_listner->load(QUrl("qrc:/index.html"));
- QTRY_VERIFY(m_listner->ready());
+ m_listener->load(QUrl("qrc:/index.html"));
+ QTRY_VERIFY(m_listener->ready());
bool ok = false;
createDialog(QLatin1String("colorpicker"), ok);
if (ok) {
- auto dialog = qobject_cast<QQuickWebEngineColorDialogRequest*>(m_listner->request());
+ auto *dialog = qobject_cast<QQuickWebEngineColorDialogRequest*>(m_listener->request());
QVERIFY2(dialog, "Incorrect dialog requested");
dialog->dialogReject();
QVERIFY2(dialog->isAccepted(), "Dialog is not accepted");
@@ -116,23 +117,23 @@ void tst_Dialogs::colorDialogRequested()
void tst_Dialogs::contextMenuRequested()
{
- m_listner->load(QUrl("qrc:/index.html"));
- QTRY_COMPARE_WITH_TIMEOUT(m_listner->ready(), true, 20000);
- QSignalSpy dialogSpy(m_listner, &TestHandler::requestChanged);
- QTest::mouseClick(m_widnow, Qt::RightButton);
+ m_listener->load(QUrl("qrc:/index.html"));
+ QTRY_COMPARE_WITH_TIMEOUT(m_listener->ready(), true, 20000);
+ QSignalSpy dialogSpy(m_listener, &TestHandler::requestChanged);
+ QTest::mouseClick(m_window, Qt::RightButton);
QTRY_COMPARE(dialogSpy.count(), 1);
- auto dialog = qobject_cast<QWebEngineContextMenuRequest *>(m_listner->request());
+ auto dialog = qobject_cast<QWebEngineContextMenuRequest *>(m_listener->request());
QVERIFY2(dialog, "Incorrect dialog requested");
}
void tst_Dialogs::fileDialogRequested()
{
- m_listner->load(QUrl("qrc:/index.html"));
- QTRY_VERIFY(m_listner->ready());
+ m_listener->load(QUrl("qrc:/index.html"));
+ QTRY_VERIFY(m_listener->ready());
bool ok = false;
createDialog(QLatin1String("filepicker"), ok);
if (ok) {
- auto dialog = qobject_cast<QQuickWebEngineFileDialogRequest*>(m_listner->request());
+ auto dialog = qobject_cast<QQuickWebEngineFileDialogRequest*>(m_listener->request());
QVERIFY2(dialog, "Incorrect dialog requested");
dialog->dialogReject();
QVERIFY2(dialog->isAccepted(), "Dialog is not accepted");
@@ -173,11 +174,11 @@ void tst_Dialogs::authenticationDialogRequested()
server.run();
QTRY_VERIFY2(server.isListening(), "Could not setup authentication server");
- QSignalSpy dialogSpy(m_listner, &TestHandler::requestChanged);
- m_listner->load(url);
+ QSignalSpy dialogSpy(m_listener, &TestHandler::requestChanged);
+ m_listener->load(url);
QTRY_COMPARE(dialogSpy.count(), 1);
- auto dialog = qobject_cast<QQuickWebEngineAuthenticationDialogRequest*>(m_listner->request());
+ auto *dialog = qobject_cast<QQuickWebEngineAuthenticationDialogRequest*>(m_listener->request());
QVERIFY2(dialog, "Incorrect dialog requested");
dialog->dialogReject();
QVERIFY2(dialog->isAccepted(), "Dialog is not accepted");
@@ -214,20 +215,20 @@ void tst_Dialogs::javaScriptDialogRequested()
QFETCH(QString, message);
QFETCH(QString, defaultText);
- m_listner->load(QUrl("qrc:/index.html"));
- QTRY_VERIFY(m_listner->ready());
+ m_listener->load(QUrl("qrc:/index.html"));
+ QTRY_VERIFY(m_listener->ready());
- QSignalSpy dialogSpy(m_listner, &TestHandler::requestChanged);
- m_listner->runJavaScript(script);
+ QSignalSpy dialogSpy(m_listener, &TestHandler::requestChanged);
+ m_listener->runJavaScript(script);
QTRY_COMPARE(dialogSpy.count(), 1);
- auto dialog = qobject_cast<QQuickWebEngineJavaScriptDialogRequest*>(m_listner->request());
+ auto *dialog = qobject_cast<QQuickWebEngineJavaScriptDialogRequest*>(m_listener->request());
QVERIFY2(dialog, "Incorrect dialog requested");
dialog->dialogReject();
QVERIFY2(dialog->isAccepted(), "Dialog is not accepted");
QCOMPARE(dialog->type(), type);
QCOMPARE(dialog->message(), message);
QCOMPARE(dialog->defaultText(), defaultText);
- QTRY_VERIFY(m_listner->ready()); // make sure javascript executes no longer
+ QTRY_VERIFY(m_listener->ready()); // make sure javascript executes no longer
}
static QByteArrayList params;