summaryrefslogtreecommitdiff
path: root/qutebrowser/extensions
diff options
context:
space:
mode:
authorJay Kamat <jaygkamat@gmail.com>2019-01-13 10:55:19 -0800
committerJay Kamat <jaygkamat@gmail.com>2019-01-13 10:55:19 -0800
commit45ae627aab51ee8b2378210edfe61c6bd9c87464 (patch)
tree61043cb46dc05521ac8f978dcd007523449911d9 /qutebrowser/extensions
parent18f0034f3cb78d901475d71e46a8f5e4d8efd76a (diff)
downloadqutebrowser-45ae627aab51ee8b2378210edfe61c6bd9c87464.tar.gz
qutebrowser-45ae627aab51ee8b2378210edfe61c6bd9c87464.zip
Add resourceType to interceptor api
Closes https://github.com/qutebrowser/qutebrowser-extensions/issues/15
Diffstat (limited to 'qutebrowser/extensions')
-rw-r--r--qutebrowser/extensions/interceptors.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/qutebrowser/extensions/interceptors.py b/qutebrowser/extensions/interceptors.py
index 7defcf213..beb820cb6 100644
--- a/qutebrowser/extensions/interceptors.py
+++ b/qutebrowser/extensions/interceptors.py
@@ -20,6 +20,7 @@
"""Infrastructure for intercepting requests."""
import typing
+import enum
import attr
@@ -29,6 +30,17 @@ if MYPY:
from PyQt5.QtCore import QUrl
+# Possible request types that can be received. Currently correspond to the
+# QWebEngineUrlRequestInfo Enum:
+# https://doc.qt.io/qt-5/qwebengineurlrequestinfo.html#ResourceType-enum
+ResourceType = enum.Enum('ResourceType',
+ ['main_frame', 'sub_frame', 'stylesheet', 'script',
+ 'image', 'font_resource', 'sub_resource', 'object',
+ 'media', 'worker', 'shared_worker', 'prefetch',
+ 'favicon', 'xhr', 'ping', 'service_worker',
+ 'csp_report', 'plugin_resource', 'unknown'])
+
+
@attr.s
class Request:
@@ -42,6 +54,10 @@ class Request:
is_blocked = attr.ib(False) # type: bool
+ #: The resource type of the request. None if not supported on this backend,
+ # or if there was an error finding the resource type.
+ resource_type = attr.ib(None) # type: typing.Optional[ResourceType]
+
def block(self) -> None:
"""Block this request."""
self.is_blocked = True