diff options
author | Florian Bruhin <me@the-compiler.org> | 2022-05-31 13:33:26 +0200 |
---|---|---|
committer | Florian Bruhin <me@the-compiler.org> | 2022-06-22 17:41:12 +0200 |
commit | c0b35a706ac348b1c43708db7fb669bf04c4041a (patch) | |
tree | 37d2e6fe2458b67a14bf4f5d1915708771717742 | |
parent | afa843a7b40470076e6bde82caf117171f1ccb2c (diff) | |
download | qutebrowser-c0b35a706ac348b1c43708db7fb669bf04c4041a.tar.gz qutebrowser-c0b35a706ac348b1c43708db7fb669bf04c4041a.zip |
Allow remote content access from userscript html files
Fixes #7206
-rw-r--r-- | qutebrowser/browser/webengine/webenginesettings.py | 23 |
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(): |