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.py15
1 files changed, 8 insertions, 7 deletions
diff --git a/qutebrowser/browser/webengine/interceptor.py b/qutebrowser/browser/webengine/interceptor.py
index 8804bea6e..98798983b 100644
--- a/qutebrowser/browser/webengine/interceptor.py
+++ b/qutebrowser/browser/webengine/interceptor.py
@@ -19,7 +19,8 @@
"""A request interceptor taking care of adblocking and custom headers."""
-import attr
+import dataclasses
+from typing import Optional
from PyQt5.QtCore import QUrl, QByteArray
from PyQt5.QtWebEngineCore import (QWebEngineUrlRequestInterceptor,
@@ -32,29 +33,29 @@ from qutebrowser.extensions import interceptors
from qutebrowser.misc import objects
-@attr.s
+@dataclasses.dataclass
class WebEngineRequest(interceptors.Request):
"""QtWebEngine-specific request interceptor functionality."""
_WHITELISTED_REQUEST_METHODS = {QByteArray(b'GET'), QByteArray(b'HEAD')}
- _webengine_info: QWebEngineUrlRequestInfo = attr.ib(default=None)
+ webengine_info: Optional[QWebEngineUrlRequestInfo] = None # FIXME private
#: If this request has been redirected already
- _redirected: bool = attr.ib(init=False, default=False)
+ _redirected: bool = dataclasses.field(init=False, default=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()
+ if (self.webengine_info.requestMethod()
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