diff options
Diffstat (limited to 'examples/webenginewidgets/simplebrowser/webpage.py')
-rw-r--r-- | examples/webenginewidgets/simplebrowser/webpage.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/examples/webenginewidgets/simplebrowser/webpage.py b/examples/webenginewidgets/simplebrowser/webpage.py new file mode 100644 index 000000000..2f2800a17 --- /dev/null +++ b/examples/webenginewidgets/simplebrowser/webpage.py @@ -0,0 +1,29 @@ +# Copyright (C) 2023 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +from functools import partial + +from PySide6.QtWebEngineCore import QWebEnginePage, QWebEngineCertificateError +from PySide6.QtCore import QTimer, Signal + + +class WebPage(QWebEnginePage): + + create_certificate_error_dialog = Signal(QWebEngineCertificateError) + + def __init__(self, profile, parent): + super().__init__(profile, parent) + + self.selectClientCertificate.connect(self.handle_select_client_certificate) + self.certificateError.connect(self.handle_certificate_error) + + def _emit_create_certificate_error_dialog(self, error): + self.create_certificate_error_dialog.emit(error) + + def handle_certificate_error(self, error): + error.defer() + QTimer.singleShot(0, partial(self._emit_create_certificate_error_dialog, error)) + + def handle_select_client_certificate(self, selection): + # Just select one. + selection.select(selection.certificates()[0]) |