From c0b35a706ac348b1c43708db7fb669bf04c4041a Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Tue, 31 May 2022 13:33:26 +0200 Subject: Allow remote content access from userscript html files Fixes #7206 --- qutebrowser/browser/webengine/webenginesettings.py | 23 +++++++++++++++++----- 1 file 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(): -- cgit v1.2.3-54-g00ecf