summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2022-05-31 13:33:26 +0200
committerFlorian Bruhin <me@the-compiler.org>2022-06-22 17:41:12 +0200
commitc0b35a706ac348b1c43708db7fb669bf04c4041a (patch)
tree37d2e6fe2458b67a14bf4f5d1915708771717742
parentafa843a7b40470076e6bde82caf117171f1ccb2c (diff)
downloadqutebrowser-c0b35a706ac348b1c43708db7fb669bf04c4041a.tar.gz
qutebrowser-c0b35a706ac348b1c43708db7fb669bf04c4041a.zip
Allow remote content access from userscript html files
Fixes #7206
-rw-r--r--qutebrowser/browser/webengine/webenginesettings.py23
1 files changed, 18 insertions, 5 deletions
diff --git a/qutebrowser/browser/webengine/webenginesettings.py b/qutebrowser/browser/webengine/webenginesettings.py
index 3297d2c39..5e8260eb7 100644
--- a/qutebrowser/browser/webengine/webenginesettings.py
+++ b/qutebrowser/browser/webengine/webenginesettings.py
@@ -26,6 +26,7 @@ Module attributes:
import os
import operator
+import pathlib
from typing import cast, Any, List, Optional, Tuple, Union, TYPE_CHECKING
from qutebrowser.qt import machinery
@@ -485,20 +486,32 @@ def _init_site_specific_quirks():
)
-def _init_devtools_settings():
- """Make sure the devtools always get images/JS permissions."""
- settings: List[Tuple[str, Any]] = [
+def _init_default_settings():
+ """Set permissions required for internal functionality.
+
+ - Make sure the devtools always get images/JS permissions.
+ - On Qt 6, make sure files in the data path can load external resources.
+ """
+ devtools_settings: List[Tuple[str, Any]] = [
('content.javascript.enabled', True),
('content.images', True),
('content.cookies.accept', 'all'),
]
- for setting, value in settings:
+ for setting, value in devtools_settings:
for pattern in ['chrome-devtools://*', 'devtools://*']:
config.instance.set_obj(setting, value,
pattern=urlmatch.UrlPattern(pattern),
hide_userconfig=True)
+ if machinery.IS_QT6:
+ # https://codereview.qt-project.org/c/qt/qtwebengine/+/375672
+ url = pathlib.Path(standarddir.data(), "userscripts").as_uri()
+ config.instance.set_obj("content.local_content_can_access_remote_urls",
+ True,
+ pattern=urlmatch.UrlPattern(f"{url}/*"),
+ hide_userconfig=True)
+
def init():
"""Initialize the global QWebSettings."""
@@ -539,7 +552,7 @@ def init():
log.init.debug("Misc initialization...")
_init_site_specific_quirks()
- _init_devtools_settings()
+ _init_default_settings()
def shutdown():