From 378fbbcbc9c65d1462ea6994f1f680412531a043 Mon Sep 17 00:00:00 2001 From: Paulo Pinheiro Date: Wed, 25 Feb 2015 22:00:57 -0300 Subject: Quick: Fix handling of multiple certificate errors per request This patch enables Quick API to handle multiple certificate errors per requests and update the example projects. Chromium 40 branch raise an certificate error for every resource loaded in a request (.js, .css, .html) instead of only one (previous behavior), so requests with more than one certificate error were automatically rejected. Change-Id: Ibaa3027cd6e7f22b5dc51dcd52f76ccf5ea162d3 Reviewed-by: Pierre Rossi --- src/webengine/api/qquickwebenginecertificateerror.cpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'src/webengine/api/qquickwebenginecertificateerror.cpp') diff --git a/src/webengine/api/qquickwebenginecertificateerror.cpp b/src/webengine/api/qquickwebenginecertificateerror.cpp index ba22bf1f0..a39bbfb84 100644 --- a/src/webengine/api/qquickwebenginecertificateerror.cpp +++ b/src/webengine/api/qquickwebenginecertificateerror.cpp @@ -45,7 +45,8 @@ public: error(static_cast(static_cast(controller->error()))), description(controller->errorString()), overridable(controller->overridable()), - async(false) + async(false), + answered(false) { } @@ -54,6 +55,7 @@ public: QString description; bool overridable; bool async; + bool answered; }; @@ -102,7 +104,9 @@ void QQuickWebEngineCertificateError::defer() */ void QQuickWebEngineCertificateError::ignoreCertificateError() { - Q_D(const QQuickWebEngineCertificateError); + Q_D(QQuickWebEngineCertificateError); + + d->answered = true; QSharedPointer strongRefCert = d->weakRefCertErrorController.toStrongRef(); if (strongRefCert) @@ -116,7 +120,9 @@ void QQuickWebEngineCertificateError::ignoreCertificateError() */ void QQuickWebEngineCertificateError::rejectCertificate() { - Q_D(const QQuickWebEngineCertificateError); + Q_D(QQuickWebEngineCertificateError); + + d->answered = true; QSharedPointer strongRefCert = d->weakRefCertErrorController.toStrongRef(); if (strongRefCert) @@ -169,5 +175,11 @@ bool QQuickWebEngineCertificateError::deferred() const return d->async; } +bool QQuickWebEngineCertificateError::answered() const +{ + Q_D(const QQuickWebEngineCertificateError); + return d->answered; +} + QT_END_NAMESPACE -- cgit v1.2.3