diff options
author | Paulo Pinheiro <paulovap.os@gmail.com> | 2014-10-10 12:18:05 -0300 |
---|---|---|
committer | Michael BrĂ¼ning <michael.bruning@theqtcompany.com> | 2015-02-02 11:00:23 +0000 |
commit | 6d896290a020babe5fbaf6c444485df8b1d5d353 (patch) | |
tree | 87aa1de0b21668446f762bd83897b71f2e902cbd /src/webengine/api/qquickwebengineview.cpp | |
parent | fcc9a1d4283079cfa4f36c48b832461d59e8a627 (diff) |
Add Qt WebEngine Quick API for allowing certificate errors
This adds API for overriding some certificate errors. Once overridden
any identical error for the same hostname and certificate will use
the same override.
Change-Id: Idf9e968edca18751cbdab744880480750d0c1bd4
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
Diffstat (limited to 'src/webengine/api/qquickwebengineview.cpp')
-rw-r--r-- | src/webengine/api/qquickwebengineview.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp index dbafd9655..460caa4d7 100644 --- a/src/webengine/api/qquickwebengineview.cpp +++ b/src/webengine/api/qquickwebengineview.cpp @@ -41,6 +41,7 @@ #include "certificate_error_controller.h" #include "javascript_dialog_controller.h" #include "qquickwebenginehistory_p.h" +#include "qquickwebenginecertificateerror_p.h" #include "qquickwebengineloadrequest_p.h" #include "qquickwebenginenavigationrequest_p.h" #include "qquickwebenginenewviewrequest_p.h" @@ -220,10 +221,16 @@ void QQuickWebEngineViewPrivate::javascriptDialog(QSharedPointer<JavaScriptDialo ui()->showDialog(dialog); } -void QQuickWebEngineViewPrivate::allowCertificateError(const QExplicitlySharedDataPointer<CertificateErrorController> &errorController) +void QQuickWebEngineViewPrivate::allowCertificateError(const QSharedPointer<CertificateErrorController> &errorController) { - // ### Implement a way to export this to QML - Q_UNUSED(errorController); + Q_Q(QQuickWebEngineView); + + m_certificateErrorController = errorController; + QQuickWebEngineCertificateError *quickController = new QQuickWebEngineCertificateError(errorController); + QQmlEngine::setObjectOwnership(quickController, QQmlEngine::JavaScriptOwnership); + Q_EMIT q->certificateError(quickController); + if (!quickController->deferred()) + quickController->rejectCertificate(); } void QQuickWebEngineViewPrivate::runGeolocationPermissionRequest(const QUrl &url) |