aboutsummaryrefslogtreecommitdiffstats
path: root/examples/webenginewidgets/simplebrowser/webpage.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/webenginewidgets/simplebrowser/webpage.py')
-rw-r--r--examples/webenginewidgets/simplebrowser/webpage.py29
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])