summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2023-12-04 14:59:08 +0100
committerFlorian Bruhin <me@the-compiler.org>2023-12-04 14:59:08 +0100
commit21869d149a361c9fe05dff90593ba18b6e42408a (patch)
tree2865cb70e27edb0c4415bf6e8b145df328cbf09f
parentc1a1a1377591874ade015bc0ed1318e79e465c36 (diff)
downloadqutebrowser-21869d149a361c9fe05dff90593ba18b6e42408a.tar.gz
qutebrowser-21869d149a361c9fe05dff90593ba18b6e42408a.zip
Support QWebEngineSettings.WebAttribute.ReadingFromCanvasEnabled
See #7646
-rw-r--r--doc/changelog.asciidoc2
-rw-r--r--doc/help/settings.asciidoc3
-rw-r--r--qutebrowser/browser/webengine/webenginesettings.py6
-rw-r--r--qutebrowser/config/configdata.yml5
-rw-r--r--qutebrowser/config/qtargs.py1
5 files changed, 15 insertions, 2 deletions
diff --git a/doc/changelog.asciidoc b/doc/changelog.asciidoc
index f18a28814..57570776b 100644
--- a/doc/changelog.asciidoc
+++ b/doc/changelog.asciidoc
@@ -41,6 +41,8 @@ Changed
- The `colors.webpage.darkmode.threshold.text` setting got renamed to
`colors.webpage.darkmode.threshold.foreground`, following a rename in
Chromium.
+- With Qt 6.6, the `content.canvas_reading` setting now works without a restart
+ and supports URL patterns.
Fixed
~~~~~
diff --git a/doc/help/settings.asciidoc b/doc/help/settings.asciidoc
index 95f844b15..b6f61ab03 100644
--- a/doc/help/settings.asciidoc
+++ b/doc/help/settings.asciidoc
@@ -2085,8 +2085,9 @@ Default: empty
=== content.canvas_reading
Allow websites to read canvas elements.
Note this is needed for some websites to work properly.
+On QtWebEngine < 6.6, this setting requires a restart and does not support URL patterns, only the global setting is applied.
-This setting requires a restart.
+This setting supports link:configuring{outfilesuffix}#patterns[URL patterns].
This setting is only available with the QtWebEngine backend.
diff --git a/qutebrowser/browser/webengine/webenginesettings.py b/qutebrowser/browser/webengine/webenginesettings.py
index 1275edf0b..808e75c30 100644
--- a/qutebrowser/browser/webengine/webenginesettings.py
+++ b/qutebrowser/browser/webengine/webenginesettings.py
@@ -148,6 +148,12 @@ class WebEngineSettings(websettings.AbstractSettings):
Attr(QWebEngineSettings.WebAttribute.AutoLoadIconsForPage,
converter=lambda val: val != 'never'),
}
+ try:
+ _ATTRIBUTES['content.canvas_reading'] = Attr(
+ QWebEngineSettings.WebAttribute.ReadingFromCanvasEnabled)
+ except AttributeError:
+ # Added in QtWebEngine 6.6
+ pass
_FONT_SIZES = {
'fonts.web.size.minimum':
diff --git a/qutebrowser/config/configdata.yml b/qutebrowser/config/configdata.yml
index d7871c121..cddac7353 100644
--- a/qutebrowser/config/configdata.yml
+++ b/qutebrowser/config/configdata.yml
@@ -454,12 +454,15 @@ content.canvas_reading:
default: true
type: Bool
backend: QtWebEngine
- restart: true
+ supports_pattern: true
desc: >-
Allow websites to read canvas elements.
Note this is needed for some websites to work properly.
+ On QtWebEngine < 6.6, this setting requires a restart and does not support
+ URL patterns, only the global setting is applied.
+
# Defaults from QWebSettings::QWebSettings() in
# qtwebkit/Source/WebKit/qt/Api/qwebsettings.cpp
diff --git a/qutebrowser/config/qtargs.py b/qutebrowser/config/qtargs.py
index 85f066ccb..4358a0ece 100644
--- a/qutebrowser/config/qtargs.py
+++ b/qutebrowser/config/qtargs.py
@@ -294,6 +294,7 @@ _WEBENGINE_SETTINGS: Dict[str, Dict[Any, Optional[_SettingValueType]]] = {
},
'content.canvas_reading': {
True: None,
+ # might be overridden in webenginesettings.py
False: '--disable-reading-from-canvas',
},
'content.webrtc_ip_handling_policy': {