diff options
author | Jüri Valdmann <juri.valdmann@qt.io> | 2020-04-28 14:45:18 +0200 |
---|---|---|
committer | Michal Klocek <michal.klocek@qt.io> | 2020-08-14 16:34:37 +0200 |
commit | a2a9ea11f95b4a5347f599d8a28151166ad00a71 (patch) | |
tree | 609329b16e7e3febfe600f10c4ec776aa05e9eb2 /src/webenginewidgets/api/qwebenginecertificateerror.cpp | |
parent | 4c78cf32fc302a29a61d2fb50551333b5f79051c (diff) | |
download | qtwebengine-a2a9ea11f95b4a5347f599d8a28151166ad00a71.tar.gz |
Move QWebEngineCertificateError to core and use it in QML
Update qml certificate error test.
Task-number: QTBUG-74585
Change-Id: I9383052bd1e37160d03e3d66e8f2e4a749023736
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src/webenginewidgets/api/qwebenginecertificateerror.cpp')
-rw-r--r-- | src/webenginewidgets/api/qwebenginecertificateerror.cpp | 266 |
1 files changed, 0 insertions, 266 deletions
diff --git a/src/webenginewidgets/api/qwebenginecertificateerror.cpp b/src/webenginewidgets/api/qwebenginecertificateerror.cpp deleted file mode 100644 index d86019af8..000000000 --- a/src/webenginewidgets/api/qwebenginecertificateerror.cpp +++ /dev/null @@ -1,266 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtWebEngine module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qwebenginecertificateerror.h" - -#include "certificate_error_controller.h" - -QT_BEGIN_NAMESPACE - -/*! - \class QWebEngineCertificateError - \brief The QWebEngineCertificateError class provides information about a certificate error. - \since 5.4 - \inmodule QtWebEngineWidgets - - Provides information about a certificate error. This class is used as a parameter of - QWebEnginePage::certificateError(). -*/ - -class QWebEngineCertificateErrorPrivate : public QSharedData { -public: - QWebEngineCertificateErrorPrivate(int error, QUrl url, bool overridable, QString errorDescription); - - ~QWebEngineCertificateErrorPrivate() { - if (deferred && !answered) - rejectCertificate(); - } - - void resolveError(bool accept) { - if (answered) - return; - answered = true; - if (overridable) { - if (auto ctl = controller.lock()) - ctl->accept(accept); - } - } - - void ignoreCertificateError() { resolveError(true); } - void rejectCertificate() { resolveError(false); } - - QWebEngineCertificateError::Error error; - QUrl url; - bool overridable; - QString errorDescription; - QList<QSslCertificate> certificateChain; - - bool answered = false, deferred = false; - QWeakPointer<CertificateErrorController> controller; - - Q_DISABLE_COPY(QWebEngineCertificateErrorPrivate) -}; - -QWebEngineCertificateErrorPrivate::QWebEngineCertificateErrorPrivate(int error, QUrl url, bool overridable, QString errorDescription) - : error(QWebEngineCertificateError::Error(error)) - , url(url) - , overridable(overridable) - , errorDescription(errorDescription) -{ } - -/*! \internal -*/ -QWebEngineCertificateError::QWebEngineCertificateError(int error, QUrl url, bool overridable, QString errorDescription) - : d(new QWebEngineCertificateErrorPrivate(error, url, overridable, errorDescription)) -{ } - -/*! \internal -*/ -QWebEngineCertificateError::QWebEngineCertificateError(const QSharedPointer<CertificateErrorController> &controller) - : d(new QWebEngineCertificateErrorPrivate(controller->error(), controller->url(), - controller->overridable(), controller->errorString())) -{ - d->controller = controller; - d->certificateChain = controller->certificateChain(); -} - -QWebEngineCertificateError::QWebEngineCertificateError(const QWebEngineCertificateError &) = default; - -QWebEngineCertificateError& QWebEngineCertificateError::operator=(const QWebEngineCertificateError &) = default; - -/*! \internal -*/ -QWebEngineCertificateError::~QWebEngineCertificateError() -{ - -} - -/*! - \enum QWebEngineCertificateError::Error - - This enum describes the type of certificate error encountered. - - The values of this enum type match the SSL errors Chromium provides. - QSslError::SslError values are not used directly, because the Qt error - categories cannot be mapped to the Chromium error categories. - - \value SslPinnedKeyNotInCertificateChain The certificate did not match the built-in public keys - pinned for the host name. - \value CertificateCommonNameInvalid The certificate's common name did not match the host name. - \value CertificateDateInvalid The certificate is not valid at the current date and time. - \value CertificateAuthorityInvalid The certificate is not signed by a trusted authority. - \value CertificateContainsErrors The certificate contains errors. - \value CertificateNoRevocationMechanism The certificate has no mechanism for determining if it has been revoked. - \value CertificateUnableToCheckRevocation Revocation information for the certificate is not available. - \value CertificateRevoked The certificate has been revoked. - \value CertificateInvalid The certificate is invalid. - \value CertificateWeakSignatureAlgorithm The certificate is signed using a weak signature algorithm. - \value CertificateNonUniqueName The host name specified in the certificate is not unique. - \value CertificateWeakKey The certificate contains a weak key. - \value CertificateNameConstraintViolation The certificate claimed DNS names that are in violation of name constraints. - \value CertificateValidityTooLong The certificate has a validity period that is too long. (Added in Qt 5.7) - \value CertificateTransparencyRequired Certificate Transparency was required for this connection, but the server - did not provide CT information that complied with the policy. (Added in Qt 5.8) - \value CertificateKnownInterceptionBlocked The certificate is known to be - used for interception by an entity other the device owner. (Added in - 5.15) -*/ - -/*! - Returns whether this error can be overridden and accepted. - - \sa error(), errorDescription() -*/ -bool QWebEngineCertificateError::isOverridable() const -{ - return d->overridable; -} - -/*! - Returns the URL that triggered the error. - - \sa error(), errorDescription() -*/ -QUrl QWebEngineCertificateError::url() const -{ - return d->url; -} - -/*! - Returns the type of the error. - - \sa errorDescription(), isOverridable() -*/ -QWebEngineCertificateError::Error QWebEngineCertificateError::error() const -{ - return d->error; -} - -/*! - Returns a short localized human-readable description of the error. - - \sa error(), url(), isOverridable() -*/ -QString QWebEngineCertificateError::errorDescription() const -{ - return d->errorDescription; -} - -/*! - \since 5.14 - - 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. - - \note It is only possible to defer overridable certificate errors. - - \sa isOverridable(), deferred() -*/ -void QWebEngineCertificateError::defer() -{ - if (isOverridable()) - d->deferred = true; -} - -/*! - \since 5.14 - - Returns whether the decision for error handling was delayed and the URL load was halted. -*/ -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() -{ - d->ignoreCertificateError(); -} - -/*! - \since 5.14 - - Rejects the certificate and aborts the loading of the requested URL. -*/ -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 - - Returns the peer's chain of digital certificates. - - Chain starts with the peer's immediate certificate and ending with the CA's certificate. -*/ -QList<QSslCertificate> QWebEngineCertificateError::certificateChain() const -{ - return d->certificateChain; -} - -QT_END_NAMESPACE |