diff options
author | Anu Aliyas <anu.aliyas@qt.io> | 2023-04-06 15:34:42 +0200 |
---|---|---|
committer | Anu Aliyas <anu.aliyas@qt.io> | 2023-04-24 10:11:42 +0200 |
commit | 3eeab7c53488142704e3a5b5a74ae50cc2a93f90 (patch) | |
tree | b53753f2915c76107706bb5205847f37053581e9 /src | |
parent | 54ea7b5a2a1364b8fcdef859229ca58afe8d87ad (diff) | |
download | qtwebengine-3eeab7c53488142704e3a5b5a74ae50cc2a93f90.tar.gz |
Add QWebEngineSettings::DisableReadingFromCanvas
- disables reading from canvas.
Fixes: QTBUG-84486
Change-Id: I3e181bfa6e351dea8dfa61f8010bafb94ea8a77d
Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/core/api/qwebenginesettings.h | 1 | ||||
-rw-r--r-- | src/core/doc/src/qwebenginesettings_lgpl.qdoc | 3 | ||||
-rw-r--r-- | src/core/web_engine_settings.cpp | 4 | ||||
-rw-r--r-- | src/webenginequick/api/qquickwebenginesettings.cpp | 22 | ||||
-rw-r--r-- | src/webenginequick/api/qquickwebenginesettings_p.h | 4 |
5 files changed, 34 insertions, 0 deletions
diff --git a/src/core/api/qwebenginesettings.h b/src/core/api/qwebenginesettings.h index 09656f670..8cb10f6a7 100644 --- a/src/core/api/qwebenginesettings.h +++ b/src/core/api/qwebenginesettings.h @@ -60,6 +60,7 @@ public: DnsPrefetchEnabled, PdfViewerEnabled, NavigateOnDropEnabled, + DisableReadingFromCanvas, }; enum FontSize { diff --git a/src/core/doc/src/qwebenginesettings_lgpl.qdoc b/src/core/doc/src/qwebenginesettings_lgpl.qdoc index 5cd1e5419..3fdce3ea9 100644 --- a/src/core/doc/src/qwebenginesettings_lgpl.qdoc +++ b/src/core/doc/src/qwebenginesettings_lgpl.qdoc @@ -168,6 +168,9 @@ \value NavigateOnDropEnabled Specifies that navigations can be triggered by dropping URLs on the view. Enabled by default. (Added in Qt 6.4) + \value DisableReadingFromCanvas Specifies that reading from all canvas elements will be disabled. + This setting will have impact on all HTML5 canvas elements irrespective of origin. + Disabled by default. (Added in Qt 6.6) */ /*! diff --git a/src/core/web_engine_settings.cpp b/src/core/web_engine_settings.cpp index 906f9fb72..11adc8d19 100644 --- a/src/core/web_engine_settings.cpp +++ b/src/core/web_engine_settings.cpp @@ -262,6 +262,9 @@ void WebEngineSettings::initDefaults() s_defaultAttributes.insert(QWebEngineSettings::PdfViewerEnabled, false); #endif s_defaultAttributes.insert(QWebEngineSettings::NavigateOnDropEnabled, true); + bool readingFromCanvas = + commandLine->HasSwitch(switches::kDisableReadingFromCanvas); + s_defaultAttributes.insert(QWebEngineSettings::DisableReadingFromCanvas, readingFromCanvas); } if (s_defaultFontFamilies.isEmpty()) { @@ -370,6 +373,7 @@ void WebEngineSettings::applySettingsToWebPreferences(blink::web_pref::WebPrefer prefs->dom_paste_enabled = testAttribute(QWebEngineSettings::JavascriptCanPaste); prefs->dns_prefetching_enabled = testAttribute(QWebEngineSettings::DnsPrefetchEnabled); prefs->navigate_on_drag_drop = testAttribute(QWebEngineSettings::NavigateOnDropEnabled); + prefs->disable_reading_from_canvas = testAttribute(QWebEngineSettings::DisableReadingFromCanvas); // Fonts settings. prefs->standard_font_family_map[blink::web_pref::kCommonScript] = diff --git a/src/webenginequick/api/qquickwebenginesettings.cpp b/src/webenginequick/api/qquickwebenginesettings.cpp index 6d64c1d3b..54407cc2f 100644 --- a/src/webenginequick/api/qquickwebenginesettings.cpp +++ b/src/webenginequick/api/qquickwebenginesettings.cpp @@ -433,6 +433,20 @@ bool QQuickWebEngineSettings::navigateOnDropEnabled() const } /*! + \qmlproperty bool WebEngineSettings::disableReadingFromCanvas + \since QtWebEngine 6.6 + + Disables JavaScript reading from canvas elements. + This setting will have impact on all HTML5 canvas elements irrespective of origin. + + Disabled by default. + */ +bool QQuickWebEngineSettings::disableReadingFromCanvas() const +{ + return d_ptr->testAttribute(QWebEngineSettings::DisableReadingFromCanvas); +} + +/*! \qmlproperty string WebEngineSettings::defaultTextEncoding \since QtWebEngine 1.2 @@ -715,6 +729,14 @@ void QQuickWebEngineSettings::setNavigateOnDropEnabled(bool on) Q_EMIT navigateOnDropEnabledChanged(); } +void QQuickWebEngineSettings::setDisableReadingFromCanvas(bool on) +{ + bool wasOn = d_ptr->testAttribute(QWebEngineSettings::DisableReadingFromCanvas); + d_ptr->setAttribute(QWebEngineSettings::DisableReadingFromCanvas, on); + if (wasOn != on) + Q_EMIT disableReadingFromCanvasChanged(); +} + void QQuickWebEngineSettings::setUnknownUrlSchemePolicy(QQuickWebEngineSettings::UnknownUrlSchemePolicy policy) { QWebEngineSettings::UnknownUrlSchemePolicy oldPolicy = d_ptr->unknownUrlSchemePolicy(); diff --git a/src/webenginequick/api/qquickwebenginesettings_p.h b/src/webenginequick/api/qquickwebenginesettings_p.h index 71081c232..2fed034c1 100644 --- a/src/webenginequick/api/qquickwebenginesettings_p.h +++ b/src/webenginequick/api/qquickwebenginesettings_p.h @@ -57,6 +57,7 @@ class Q_WEBENGINEQUICK_PRIVATE_EXPORT QQuickWebEngineSettings : public QObject { Q_PROPERTY(bool dnsPrefetchEnabled READ dnsPrefetchEnabled WRITE setDnsPrefetchEnabled NOTIFY dnsPrefetchEnabledChanged REVISION(1,7) FINAL) Q_PROPERTY(bool pdfViewerEnabled READ pdfViewerEnabled WRITE setPdfViewerEnabled NOTIFY pdfViewerEnabledChanged REVISION(1,8) FINAL) Q_PROPERTY(bool navigateOnDropEnabled READ navigateOnDropEnabled WRITE setNavigateOnDropEnabled NOTIFY navigateOnDropEnabledChanged REVISION(6,4) FINAL) + Q_PROPERTY(bool disableReadingFromCanvas READ disableReadingFromCanvas WRITE setDisableReadingFromCanvas NOTIFY disableReadingFromCanvasChanged REVISION(6,6) FINAL) QML_NAMED_ELEMENT(WebEngineSettings) QML_ADDED_IN_VERSION(1, 1) QML_EXTRA_VERSION(2, 0) @@ -104,6 +105,7 @@ public: bool dnsPrefetchEnabled() const; bool pdfViewerEnabled() const; bool navigateOnDropEnabled() const; + bool disableReadingFromCanvas() const; void setAutoLoadImages(bool on); void setJavascriptEnabled(bool on); @@ -137,6 +139,7 @@ public: void setDnsPrefetchEnabled(bool on); void setPdfViewerEnabled(bool on); void setNavigateOnDropEnabled(bool on); + void setDisableReadingFromCanvas(bool on); signals: void autoLoadImagesChanged(); @@ -171,6 +174,7 @@ signals: Q_REVISION(1,7) void dnsPrefetchEnabledChanged(); Q_REVISION(1,8) void pdfViewerEnabledChanged(); Q_REVISION(6,4) void navigateOnDropEnabledChanged(); + Q_REVISION(6,6) void disableReadingFromCanvasChanged(); private: explicit QQuickWebEngineSettings(QQuickWebEngineSettings *parentSettings = nullptr); |