From 1978e726a909ac945c32429e216c49ecad3ecb3a Mon Sep 17 00:00:00 2001 From: Michal Klocek Date: Tue, 11 Aug 2020 14:46:42 +0200 Subject: Improve QWebEngineCertificateError api MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * remove const ref from QWebEngineCertificateError Q_GADGET is a value type, QWebEngineCertificateError is pass as const reference from api. This is not so useful since, in qml this will be anyway copied and for c++ this is not useful since reject, ignore, defer methods are all const. Therefore simply pass it by value. * make consistent naming defer(), acceptCertificate(), rejectCertificate() * remove properties 'differed', 'answered' which are use internally, user knows if he calls functions. * error.errorDescription -> error.description() * error.error() -> error.type() [ChangeLog] In QWebEngineCertificateError use acceptCertificate() instead of ignoreCertificiateError() Change-Id: I9ffa500a0a455d98445b066252dd283872740731 Reviewed-by: Michael BrĂ¼ning --- src/core/api/qwebenginecertificateerror.cpp | 44 ++++++++--------------------- src/core/api/qwebenginecertificateerror.h | 19 +++++-------- src/core/web_contents_delegate_qt.cpp | 2 +- src/webengine/api/qquickwebengineview_p.h | 2 +- src/webenginewidgets/api/qwebenginepage.cpp | 2 +- src/webenginewidgets/api/qwebenginepage.h | 2 +- 6 files changed, 23 insertions(+), 48 deletions(-) (limited to 'src') diff --git a/src/core/api/qwebenginecertificateerror.cpp b/src/core/api/qwebenginecertificateerror.cpp index cf8a20d53..098986132 100644 --- a/src/core/api/qwebenginecertificateerror.cpp +++ b/src/core/api/qwebenginecertificateerror.cpp @@ -103,7 +103,7 @@ QWebEngineCertificateError& QWebEngineCertificateError::operator=(const QWebEngi QWebEngineCertificateError::~QWebEngineCertificateError() = default; /*! - \enum QWebEngineCertificateError::Error + \enum QWebEngineCertificateError::Type This enum describes the type of certificate error encountered. @@ -136,7 +136,7 @@ QWebEngineCertificateError::~QWebEngineCertificateError() = default; /*! Returns whether this error can be overridden and accepted. - \sa error(), errorDescription() + \sa error(), description() */ bool QWebEngineCertificateError::isOverridable() const { @@ -146,7 +146,7 @@ bool QWebEngineCertificateError::isOverridable() const /*! Returns the URL that triggered the error. - \sa error(), errorDescription() + \sa error(), description() */ QUrl QWebEngineCertificateError::url() const { @@ -156,11 +156,11 @@ QUrl QWebEngineCertificateError::url() const /*! Returns the type of the error. - \sa errorDescription(), isOverridable() + \sa description(), isOverridable() */ -QWebEngineCertificateError::Error QWebEngineCertificateError::error() const +QWebEngineCertificateError::Type QWebEngineCertificateError::type() const { - return Error(d->error()); + return Type(d->error()); } /*! @@ -168,7 +168,7 @@ QWebEngineCertificateError::Error QWebEngineCertificateError::error() const \sa error(), url(), isOverridable() */ -QString QWebEngineCertificateError::errorDescription() const +QString QWebEngineCertificateError::description() const { return d->errorString(); } @@ -178,9 +178,9 @@ QString QWebEngineCertificateError::errorDescription() const Marks the certificate error for delayed handling. - This function should be called when there is a need to postpone the decision whether to ignore a - certificate error, for example, while waiting for user input. When called, the function pauses the - URL request until ignoreCertificateError() or rejectCertificate() is called. + This function should be called when there is a need to postpone the decision whether to accept a + certificate, for example, while waiting for user input. When called, the function pauses the + URL request until acceptCertificate() or rejectCertificate() is called. \note It is only possible to defer overridable certificate errors. @@ -194,19 +194,9 @@ void QWebEngineCertificateError::defer() /*! \since 5.14 - Returns whether the decision for error handling was delayed and the URL load was halted. + Accepts the certificate and continues the loading of the requested URL. */ -bool QWebEngineCertificateError::deferred() const -{ - return d->deferred(); -} - -/*! - \since 5.14 - - Ignores the certificate error and continues the loading of the requested URL. -*/ -void QWebEngineCertificateError::ignoreCertificateError() +void QWebEngineCertificateError::acceptCertificate() { d->ignoreCertificateError(); } @@ -221,16 +211,6 @@ void QWebEngineCertificateError::rejectCertificate() d->rejectCertificate(); } -/*! - \since 5.14 - - Returns \c true if the error was explicitly rejected or ignored. -*/ -bool QWebEngineCertificateError::answered() const -{ - return d->answered(); -} - /*! \since 5.14 diff --git a/src/core/api/qwebenginecertificateerror.h b/src/core/api/qwebenginecertificateerror.h index 029c2a512..1fdea42be 100644 --- a/src/core/api/qwebenginecertificateerror.h +++ b/src/core/api/qwebenginecertificateerror.h @@ -56,11 +56,9 @@ QT_BEGIN_NAMESPACE class Q_WEBENGINECORE_EXPORT QWebEngineCertificateError { Q_GADGET Q_PROPERTY(QUrl url READ url CONSTANT FINAL) - Q_PROPERTY(Error error READ error CONSTANT FINAL) - Q_PROPERTY(QString description READ errorDescription CONSTANT FINAL) + Q_PROPERTY(Type type READ type CONSTANT FINAL) + Q_PROPERTY(QString description READ description CONSTANT FINAL) Q_PROPERTY(bool overridable READ isOverridable CONSTANT FINAL) - Q_PROPERTY(bool deferred READ deferred CONSTANT FINAL) - Q_PROPERTY(bool answered READ answered CONSTANT FINAL) public: QWebEngineCertificateError(const QWebEngineCertificateError &other); @@ -68,7 +66,7 @@ public: ~QWebEngineCertificateError(); // Keep this identical to CertificateErrorController::CertificateError, or add mapping layer. - enum Error { + enum Type { SslPinnedKeyNotInCertificateChain = -150, CertificateCommonNameInvalid = -200, CertificateDateInvalid = -201, @@ -86,19 +84,16 @@ public: CertificateTransparencyRequired = -214, CertificateKnownInterceptionBlocked = -217, }; - Q_ENUM(Error) + Q_ENUM(Type) - Error error() const; + Type type() const; QUrl url() const; bool isOverridable() const; - QString errorDescription() const; + QString description() const; Q_INVOKABLE void defer(); - bool deferred() const; - Q_INVOKABLE void rejectCertificate(); - Q_INVOKABLE void ignoreCertificateError(); - bool answered() const; + Q_INVOKABLE void acceptCertificate(); QList certificateChain() const; diff --git a/src/core/web_contents_delegate_qt.cpp b/src/core/web_contents_delegate_qt.cpp index ceee1d282..5318cdf1b 100644 --- a/src/core/web_contents_delegate_qt.cpp +++ b/src/core/web_contents_delegate_qt.cpp @@ -683,7 +683,7 @@ void WebContentsDelegateQt::allowCertificateError( { QWebEngineCertificateError error(controller); m_viewClient->allowCertificateError(error); - if (!error.isOverridable() || (!error.deferred() && !error.answered())) + if (!error.isOverridable() || (!controller->deferred() && !controller->answered())) error.rejectCertificate(); else m_certificateErrorControllers.append(controller); diff --git a/src/webengine/api/qquickwebengineview_p.h b/src/webengine/api/qquickwebengineview_p.h index e169d0490..800c1c491 100644 --- a/src/webengine/api/qquickwebengineview_p.h +++ b/src/webengine/api/qquickwebengineview_p.h @@ -552,7 +552,7 @@ Q_SIGNALS: void linkHovered(const QUrl &hoveredUrl); void navigationRequested(QQuickWebEngineNavigationRequest *request); void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString &message, int lineNumber, const QString &sourceID); - Q_REVISION(1) void certificateError(const QWebEngineCertificateError &error); + Q_REVISION(1) void certificateError(QWebEngineCertificateError error); Q_REVISION(1) void fullScreenRequested(const QQuickWebEngineFullScreenRequest &request); Q_REVISION(1) void isFullScreenChanged(); Q_REVISION(1) void featurePermissionRequested(const QUrl &securityOrigin, Feature feature); diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp index 1e4ade4ac..f211347f1 100644 --- a/src/webenginewidgets/api/qwebenginepage.cpp +++ b/src/webenginewidgets/api/qwebenginepage.cpp @@ -2382,7 +2382,7 @@ void QWebEnginePage::javaScriptConsoleMessage(JavaScriptConsoleMessageLevel leve } } -void QWebEnginePage::certificateError(const QWebEngineCertificateError &) { } +void QWebEnginePage::certificateError(QWebEngineCertificateError) { } bool QWebEnginePage::acceptNavigationRequest(const QUrl &url, NavigationType type, bool isMainFrame) { diff --git a/src/webenginewidgets/api/qwebenginepage.h b/src/webenginewidgets/api/qwebenginepage.h index 199ba9e2e..102f36a30 100644 --- a/src/webenginewidgets/api/qwebenginepage.h +++ b/src/webenginewidgets/api/qwebenginepage.h @@ -375,7 +375,7 @@ protected: virtual bool javaScriptConfirm(const QUrl &securityOrigin, const QString& msg); virtual bool javaScriptPrompt(const QUrl &securityOrigin, const QString& msg, const QString& defaultValue, QString* result); virtual void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID); - virtual void certificateError(const QWebEngineCertificateError &certificateError); + virtual void certificateError(QWebEngineCertificateError certificateError); virtual bool acceptNavigationRequest(const QUrl &url, NavigationType type, bool isMainFrame); private: -- cgit v1.2.3