Add more type annotations for _WebEngineWebAuth

This commit is contained in:
Florian Bruhin 2025-08-14 12:21:46 +02:00 committed by Olli
parent fae2db9147
commit dd377a79bb
2 changed files with 18 additions and 11 deletions

View File

@ -120,6 +120,8 @@ disallow_untyped_defs = False
[mypy-qutebrowser.browser.webengine.webenginetab] [mypy-qutebrowser.browser.webengine.webenginetab]
disallow_untyped_defs = False disallow_untyped_defs = False
# for QWebEngineWebAuthUxRequest on Qt 5
disallow_any_unimported = False
[mypy-qutebrowser.browser.webengine.webview] [mypy-qutebrowser.browser.webengine.webview]
disallow_untyped_defs = False disallow_untyped_defs = False

View File

@ -14,6 +14,7 @@ from typing import cast, Union, Optional, Any
from qutebrowser.qt.core import (pyqtSignal, pyqtSlot, Qt, QPoint, QPointF, QUrl, from qutebrowser.qt.core import (pyqtSignal, pyqtSlot, Qt, QPoint, QPointF, QUrl,
QObject, QByteArray, QTimer) QObject, QByteArray, QTimer)
from qutebrowser.qt.widgets import QWidget
from qutebrowser.qt.network import QAuthenticator from qutebrowser.qt.network import QAuthenticator
from qutebrowser.qt.webenginecore import QWebEnginePage, QWebEngineScript, QWebEngineHistory from qutebrowser.qt.webenginecore import QWebEnginePage, QWebEngineScript, QWebEngineHistory
@ -1260,12 +1261,12 @@ class _WebEngineWebAuth(QObject):
request_cancelled = pyqtSignal() request_cancelled = pyqtSignal()
def __init__(self, tab, parent=None): def __init__(self, tab: "WebEngineTab", parent: Optional[QWidget] = None) -> None:
super().__init__(parent) super().__init__(parent)
self._tab = tab self._tab = tab
self._request = None self._request: Optional[QWebEngineWebAuthUxRequest] = None
def on_ux_requested(self, request): def on_ux_requested(self, request: QWebEngineWebAuthUxRequest) -> None:
"""Handle a Webauth UX request.""" """Handle a Webauth UX request."""
log.webview.debug("Asking for Webauth user verification for " log.webview.debug("Asking for Webauth user verification for "
f"{request.relyingPartyId()}") f"{request.relyingPartyId()}")
@ -1273,7 +1274,9 @@ class _WebEngineWebAuth(QObject):
request.stateChanged.connect(self._on_ux_state_changed) request.stateChanged.connect(self._on_ux_state_changed)
self._on_ux_state_changed(request.state()) self._on_ux_state_changed(request.state())
def _on_ux_state_changed(self, state): def _on_ux_state_changed(
self, state: "QWebEngineWebAuthUxRequest.WebAuthUxState"
) -> None:
log.webview.debug(f"Webauth UX state: {state}") log.webview.debug(f"Webauth UX state: {state}")
if state == QWebEngineWebAuthUxRequest.WebAuthUxState.CollectPin: if state == QWebEngineWebAuthUxRequest.WebAuthUxState.CollectPin:
self._ux_pin_request() self._ux_pin_request()
@ -1290,7 +1293,7 @@ class _WebEngineWebAuth(QObject):
else: else:
raise utils.Unreachable(state) raise utils.Unreachable(state)
def _ux_pin_request(self): def _ux_pin_request(self) -> None:
assert self._request is not None assert self._request is not None
log.webview.debug("Collect Webauth pin for " log.webview.debug("Collect Webauth pin for "
f"{self._request.relyingPartyId()}") f"{self._request.relyingPartyId()}")
@ -1302,11 +1305,11 @@ class _WebEngineWebAuth(QObject):
log.webview.debug("User verification aborted by user") log.webview.debug("User verification aborted by user")
self._request.cancel() self._request.cancel()
def _ux_finish_token_collection(self): def _ux_finish_token_collection(self) -> None:
log.webview.debug("Finish Webauth token collection") log.webview.debug("Finish Webauth token collection")
message.info("Please touch your device now.") message.info("Please touch your device now.")
def _ux_account_selection(self): def _ux_account_selection(self) -> None:
assert self._request is not None assert self._request is not None
log.webview.debug("Select Webauth account for " log.webview.debug("Select Webauth account for "
f"{self._request.relyingPartyId()}") f"{self._request.relyingPartyId()}")
@ -1319,17 +1322,17 @@ class _WebEngineWebAuth(QObject):
log.webview.debug("Username selection aborted by user") log.webview.debug("Username selection aborted by user")
self._request.cancel() self._request.cancel()
def _ux_request_completed(self): def _ux_request_completed(self) -> None:
log.webview.debug("Webauth request completed") log.webview.debug("Webauth request completed")
message.info("User verification completed.") message.info("User verification completed.")
self._request = None self._request = None
def _ux_request_cancelled(self): def _ux_request_cancelled(self) -> None:
log.webview.debug("Webauth verification cancelled") log.webview.debug("Webauth verification cancelled")
message.info("User verification cancelled.") message.info("User verification cancelled.")
self.request_cancelled.emit() self.request_cancelled.emit()
def _ux_request_failed(self): def _ux_request_failed(self) -> None:
assert self._request is not None assert self._request is not None
log.webview.debug("Webauth request failed for " log.webview.debug("Webauth request failed for "
f"{self._request.relyingPartyId()}: " f"{self._request.relyingPartyId()}: "
@ -1340,7 +1343,9 @@ class _WebEngineWebAuth(QObject):
) )
message.info(f"User verification failed: {reason_text}") message.info(f"User verification failed: {reason_text}")
def _get_failure_reason_text(self, reason): def _get_failure_reason_text(
self, reason: "QWebEngineWebAuthUxRequest.RequestFailureReason"
) -> str:
texts = { texts = {
QWebEngineWebAuthUxRequest.RequestFailureReason.Timeout: QWebEngineWebAuthUxRequest.RequestFailureReason.Timeout:
"The request timed out.", "The request timed out.",