summaryrefslogtreecommitdiffstats
path: root/src/core
diff options
context:
space:
mode:
authorPaulo Pinheiro <paulovap.os@gmail.com>2014-10-10 12:18:05 -0300
committerMichael BrĂ¼ning <michael.bruning@theqtcompany.com>2015-02-02 11:00:23 +0000
commit6d896290a020babe5fbaf6c444485df8b1d5d353 (patch)
tree87aa1de0b21668446f762bd83897b71f2e902cbd /src/core
parentfcc9a1d4283079cfa4f36c48b832461d59e8a627 (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/core')
-rw-r--r--src/core/certificate_error_controller.h7
-rw-r--r--src/core/certificate_error_controller_p.h6
-rw-r--r--src/core/content_browser_client_qt.cpp2
-rw-r--r--src/core/web_contents_adapter_client.h4
-rw-r--r--src/core/web_contents_delegate_qt.cpp2
-rw-r--r--src/core/web_contents_delegate_qt.h5
6 files changed, 17 insertions, 9 deletions
diff --git a/src/core/certificate_error_controller.h b/src/core/certificate_error_controller.h
index f1e7c5bd8..6d364fc9f 100644
--- a/src/core/certificate_error_controller.h
+++ b/src/core/certificate_error_controller.h
@@ -40,12 +40,13 @@
#include "qtwebenginecoreglobal.h"
#include <QtCore/QDateTime>
-#include <QtCore/QSharedData>
#include <QtCore/QUrl>
+QT_BEGIN_NAMESPACE
+
class CertificateErrorControllerPrivate;
-class QWEBENGINE_EXPORT CertificateErrorController : public QSharedData {
+class QWEBENGINE_EXPORT CertificateErrorController {
public:
CertificateErrorController(CertificateErrorControllerPrivate *p);
~CertificateErrorController();
@@ -107,4 +108,6 @@ private:
CertificateErrorControllerPrivate* d;
};
+QT_END_NAMESPACE
+
#endif // CERTIFICATE_ERROR_CONTROLLER_H
diff --git a/src/core/certificate_error_controller_p.h b/src/core/certificate_error_controller_p.h
index b5a8bd2ef..308131eb5 100644
--- a/src/core/certificate_error_controller_p.h
+++ b/src/core/certificate_error_controller_p.h
@@ -41,6 +41,8 @@
#include "certificate_error_controller.h"
+QT_BEGIN_NAMESPACE
+
class CertificateErrorControllerPrivate {
public:
CertificateErrorControllerPrivate(int cert_error, const net::SSLInfo& ssl_info, const GURL& request_url, content::ResourceType resource_type, bool overridable, bool strict_enforcement, const base::Callback<void(bool)>& callback);
@@ -54,7 +56,9 @@ public:
CertificateErrorController::ResourceType resourceType;
bool overridable;
bool strictEnforcement;
- const base::Callback<void(bool)>& callback;
+ const base::Callback<void(bool)> callback;
};
+QT_END_NAMESPACE
+
#endif // CERTIFICATE_ERROR_CONTROLLER_P_H
diff --git a/src/core/content_browser_client_qt.cpp b/src/core/content_browser_client_qt.cpp
index 6ebaadd87..c83b28c1a 100644
--- a/src/core/content_browser_client_qt.cpp
+++ b/src/core/content_browser_client_qt.cpp
@@ -387,7 +387,7 @@ void ContentBrowserClientQt::AllowCertificateError(int render_process_id, int re
if (content::WebContents *webContents = frameHost->GetRenderViewHost()->GetDelegate()->GetAsWebContents())
contentsDelegate = static_cast<WebContentsDelegateQt*>(webContents->GetDelegate());
- QExplicitlySharedDataPointer<CertificateErrorController> errorController(new CertificateErrorController(new CertificateErrorControllerPrivate(cert_error, ssl_info, request_url, resource_type, overridable, strict_enforcement, callback)));
+ QSharedPointer<CertificateErrorController> errorController(new CertificateErrorController(new CertificateErrorControllerPrivate(cert_error, ssl_info, request_url, resource_type, overridable, strict_enforcement, callback)));
contentsDelegate->allowCertificateError(errorController);
}
diff --git a/src/core/web_contents_adapter_client.h b/src/core/web_contents_adapter_client.h
index 8252a73ca..b6d1ef5bb 100644
--- a/src/core/web_contents_adapter_client.h
+++ b/src/core/web_contents_adapter_client.h
@@ -47,9 +47,9 @@
#include <QUrl>
QT_FORWARD_DECLARE_CLASS(QVariant)
+QT_FORWARD_DECLARE_CLASS(CertificateErrorController)
class BrowserContextAdapter;
-class CertificateErrorController;
class JavaScriptDialogController;
class RenderWidgetHostViewQt;
class RenderWidgetHostViewQtDelegate;
@@ -179,7 +179,7 @@ public:
virtual void runMouseLockPermissionRequest(const QUrl &securityOrigin) = 0;
virtual WebEngineSettings *webEngineSettings() const = 0;
- virtual void allowCertificateError(const QExplicitlySharedDataPointer<CertificateErrorController> &errorController) = 0;
+ virtual void allowCertificateError(const QSharedPointer<CertificateErrorController> &errorController) = 0;
virtual BrowserContextAdapter* browserContextAdapter() = 0;
diff --git a/src/core/web_contents_delegate_qt.cpp b/src/core/web_contents_delegate_qt.cpp
index 94c6a9a15..41bcfe609 100644
--- a/src/core/web_contents_delegate_qt.cpp
+++ b/src/core/web_contents_delegate_qt.cpp
@@ -307,7 +307,7 @@ WebContentsAdapter *WebContentsDelegateQt::createWindow(content::WebContents *ne
return newAdapter;
}
-void WebContentsDelegateQt::allowCertificateError(const QExplicitlySharedDataPointer<CertificateErrorController> &errorController)
+void WebContentsDelegateQt::allowCertificateError(const QSharedPointer<CertificateErrorController> &errorController)
{
m_viewClient->allowCertificateError(errorController);
}
diff --git a/src/core/web_contents_delegate_qt.h b/src/core/web_contents_delegate_qt.h
index c57a2fc67..324a191fb 100644
--- a/src/core/web_contents_delegate_qt.h
+++ b/src/core/web_contents_delegate_qt.h
@@ -45,6 +45,8 @@
#include "javascript_dialog_manager_qt.h"
#include <QtCore/qcompilerdetection.h>
+QT_FORWARD_DECLARE_CLASS(CertificateErrorController)
+
namespace content {
class BrowserContext;
class SiteInstance;
@@ -55,7 +57,6 @@ namespace content {
}
class WebContentsAdapterClient;
-class CertificateErrorController;
class WebContentsDelegateQt : public content::WebContentsDelegate
, public content::WebContentsObserver
@@ -90,7 +91,7 @@ public:
virtual void RequestToLockMouse(content::WebContents *web_contents, bool user_gesture, bool last_unlocked_by_target) Q_DECL_OVERRIDE;
void overrideWebPreferences(content::WebContents *, content::WebPreferences*);
- void allowCertificateError(const QExplicitlySharedDataPointer<CertificateErrorController> &) ;
+ void allowCertificateError(const QSharedPointer<CertificateErrorController> &) ;
void requestGeolocationPermission(const GURL &requestingFrameOrigin, base::Callback<void (bool)> resultCallback);
void geolocationPermissionReply(const QUrl&, bool permission);