summaryrefslogtreecommitdiff
path: root/qutebrowser/browser/webengine/certificateerror.py
diff options
context:
space:
mode:
Diffstat (limited to 'qutebrowser/browser/webengine/certificateerror.py')
-rw-r--r--qutebrowser/browser/webengine/certificateerror.py77
1 files changed, 21 insertions, 56 deletions
diff --git a/qutebrowser/browser/webengine/certificateerror.py b/qutebrowser/browser/webengine/certificateerror.py
index 7ee69640f..5484d921d 100644
--- a/qutebrowser/browser/webengine/certificateerror.py
+++ b/qutebrowser/browser/webengine/certificateerror.py
@@ -32,23 +32,36 @@ class CertificateErrorWrapper(usertypes.AbstractCertificateErrorWrapper):
"""A wrapper over a QWebEngineCertificateError.
- Base code shared between Qt 5 and 6 implementations.
+ Support both Qt 5 and 6.
"""
def __init__(self, error: QWebEngineCertificateError) -> None:
super().__init__()
self._error = error
self.ignore = False
- self._validate()
-
- def _validate(self) -> None:
- raise NotImplementedError
def __str__(self) -> str:
- raise NotImplementedError
+ if machinery.IS_QT5:
+ return self._error.errorDescription()
+ else:
+ return self._error.description()
def _type(self) -> Any: # QWebEngineCertificateError.Type or .Error
- raise NotImplementedError
+ if machinery.IS_QT5:
+ return self._error.error()
+ else:
+ return self._error.type()
+
+ def reject_certificate(self) -> None:
+ super().reject_certificate()
+ self._error.rejectCertificate()
+
+ def accept_certificate(self) -> None:
+ super().accept_certificate()
+ if machinery.IS_QT5:
+ self._error.ignoreCertificateError()
+ else:
+ self._error.acceptCertificate()
def __repr__(self) -> str:
return utils.get_repr(
@@ -68,54 +81,6 @@ class CertificateErrorWrapper(usertypes.AbstractCertificateErrorWrapper):
raise usertypes.UndeferrableError("PyQt bug")
-class CertificateErrorWrapperQt5(CertificateErrorWrapper):
-
- """QWebEngineCertificateError handling for Qt 5 API."""
-
- def _validate(self) -> None:
- assert machinery.IS_QT5
-
- def __str__(self) -> str:
- return self._error.errorDescription()
-
- def _type(self) -> Any:
- return self._error.error()
-
- def reject_certificate(self) -> None:
- super().reject_certificate()
- self._error.rejectCertificate()
-
- def accept_certificate(self) -> None:
- super().accept_certificate()
- self._error.ignoreCertificateError()
-
-
-class CertificateErrorWrapperQt6(CertificateErrorWrapper):
-
- """QWebEngineCertificateError handling for Qt 6 API."""
-
- def _validate(self) -> None:
- assert machinery.IS_QT6
-
- def __str__(self) -> str:
- return self._error.description()
-
- def _type(self) -> Any:
- return self._error.type()
-
- def reject_certificate(self) -> None:
- super().reject_certificate()
- self._error.rejectCertificate()
-
- def accept_certificate(self) -> None:
- super().accept_certificate()
- self._error.acceptCertificate()
-
-
def create(error: QWebEngineCertificateError) -> CertificateErrorWrapper:
"""Factory function picking the right class based on Qt version."""
- if machinery.IS_QT5:
- return CertificateErrorWrapperQt5(error)
- elif machinery.IS_QT6:
- return CertificateErrorWrapperQt6(error)
- raise utils.Unreachable
+ return CertificateErrorWrapper(error)