summaryrefslogtreecommitdiff
path: root/qutebrowser/browser/webengine/interceptor.py
diff options
context:
space:
mode:
Diffstat (limited to 'qutebrowser/browser/webengine/interceptor.py')
-rw-r--r--qutebrowser/browser/webengine/interceptor.py24
1 files changed, 11 insertions, 13 deletions
diff --git a/qutebrowser/browser/webengine/interceptor.py b/qutebrowser/browser/webengine/interceptor.py
index 652e4b8ef..436e2f7fe 100644
--- a/qutebrowser/browser/webengine/interceptor.py
+++ b/qutebrowser/browser/webengine/interceptor.py
@@ -33,32 +33,30 @@ from qutebrowser.extensions import interceptors
from qutebrowser.misc import objects
-_WHITELISTED_REQUEST_METHODS: Set[QByteArray] = {
- QByteArray(b'GET'),
- QByteArray(b'HEAD'),
-}
-
-
-@dataclasses.dataclass
class WebEngineRequest(interceptors.Request):
"""QtWebEngine-specific request interceptor functionality."""
- webengine_info: Optional[QWebEngineUrlRequestInfo] = None # FIXME private
- #: If this request has been redirected already
- _redirected: bool = dataclasses.field(init=False, default=False)
+ _WHITELISTED_REQUEST_METHODS = {QByteArray(b'GET'), QByteArray(b'HEAD')}
+
+ def __init__(self, *args, webengine_info, **kwargs):
+ super().__init__(*args, **kwargs)
+ self._webengine_info = webengine_info
+ self._redirected = False
def redirect(self, url: QUrl) -> None:
if self._redirected:
raise interceptors.RedirectException("Request already redirected.")
- if self.webengine_info is None:
+ if self._webengine_info is None:
raise interceptors.RedirectException("Request improperly initialized.")
+
# Redirecting a request that contains payload data is not allowed.
# To be safe, abort on any request not in a whitelist.
- if self.webengine_info.requestMethod() not in _WHITELISTED_REQUEST_METHODS:
+ verb = self._webengine_info.requestMethod()
+ if verb not in self._WHITELISTED_REQUEST_METHODS:
raise interceptors.RedirectException(
"Request method does not support redirection.")
- self.webengine_info.redirect(url)
+ self._webengine_info.redirect(url)
self._redirected = True