summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@digia.com>2014-08-25 15:37:49 +0200
committerAllan Sandfeld Jensen <allan.jensen@digia.com>2014-08-29 14:47:12 +0200
commit66def056d0f0fc8794f622fcfd61f974fce2a3b1 (patch)
tree2f5276dc594e1e737fe4b6245ab96307439c04b3 /examples
parent530ab16146b18457d0b3395ea64a6de756a4d22d (diff)
Add Qt WebEngine Widgets 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. Similar API for QtWebEngine QML should be added in a later patch. Change-Id: I144147b86d9b592e3f87346a1e48890acee0c670 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Diffstat (limited to 'examples')
-rw-r--r--examples/webenginewidgets/browser/webview.cpp15
-rw-r--r--examples/webenginewidgets/browser/webview.h1
2 files changed, 16 insertions, 0 deletions
diff --git a/examples/webenginewidgets/browser/webview.cpp b/examples/webenginewidgets/browser/webview.cpp
index e32ab71d6..ce0f7c418 100644
--- a/examples/webenginewidgets/browser/webview.cpp
+++ b/examples/webenginewidgets/browser/webview.cpp
@@ -129,6 +129,21 @@ bool WebPage::acceptNavigationRequest(QWebEngineFrame *frame, const QNetworkRequ
}
#endif
+bool WebPage::certificateError(const QWebEngineCertificateError &error)
+{
+ if (error.isOverridable()) {
+ QMessageBox msgBox;
+ msgBox.setIcon(QMessageBox::Warning);
+ msgBox.setText(error.errorDescription());
+ msgBox.setInformativeText(tr("If you wish so, you may continue with an unverified certicate. Accepting an unverified certicate means you may not be connected with the host you tried to connect to.\nDo you wish to override the security check and continue?"));
+ msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No);
+ msgBox.setDefaultButton(QMessageBox::No);
+ return msgBox.exec() == QMessageBox::Yes;
+ }
+ QMessageBox::critical(view(), tr("Certificate Error"), error.errorDescription(), QMessageBox::Ok, QMessageBox::NoButton);
+ return false;
+}
+
class PopupWindow : public QWidget {
Q_OBJECT
public:
diff --git a/examples/webenginewidgets/browser/webview.h b/examples/webenginewidgets/browser/webview.h
index 352954c8d..2238abbd5 100644
--- a/examples/webenginewidgets/browser/webview.h
+++ b/examples/webenginewidgets/browser/webview.h
@@ -72,6 +72,7 @@ protected:
#if !defined(QT_NO_UITOOLS)
QObject *createPlugin(const QString &classId, const QUrl &url, const QStringList &paramNames, const QStringList &paramValues);
#endif
+ virtual bool certificateError(const QWebEngineCertificateError &error) Q_DECL_OVERRIDE;
private slots:
#if defined(QWEBENGINEPAGE_UNSUPPORTEDCONTENT)