diff options
Diffstat (limited to 'src/webenginequick/api/qquickwebenginesettings.cpp')
-rw-r--r-- | src/webenginequick/api/qquickwebenginesettings.cpp | 176 |
1 files changed, 138 insertions, 38 deletions
diff --git a/src/webenginequick/api/qquickwebenginesettings.cpp b/src/webenginequick/api/qquickwebenginesettings.cpp index f453fc746..31ed7a661 100644 --- a/src/webenginequick/api/qquickwebenginesettings.cpp +++ b/src/webenginequick/api/qquickwebenginesettings.cpp @@ -1,41 +1,5 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtWebEngine module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ +// Copyright (C) 2022 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only #include "qquickwebengineprofile.h" #include "qquickwebenginesettings_p.h" @@ -113,6 +77,10 @@ bool QQuickWebEngineSettings::javascriptCanOpenWindows() const To enable also the pasting of clipboard content from JavaScript, use javascriptCanPaste. + Since unrestricted clipboard access is a potential security concern, it is + recommended that applications leave this disabled and instead respond to + \l{WebEngineView::ClipboardReadWrite}{ClipboardReadWrite} feature permission requests. + Disabled by default. */ bool QQuickWebEngineSettings::javascriptCanAccessClipboard() const @@ -419,6 +387,10 @@ bool QQuickWebEngineSettings::webRTCPublicInterfacesOnly() const Enables JavaScript \c{execCommand("paste")}. This also requires enabling javascriptCanAccessClipboard. + Since unrestricted clipboard access is a potential security concern, it is + recommended that applications leave this disabled and instead respond to + \l{WebEngineView::ClipboardReadWrite}{ClipboardReadWrite} feature permission requests. + Disabled by default. */ bool QQuickWebEngineSettings::javascriptCanPaste() const @@ -455,6 +427,62 @@ bool QQuickWebEngineSettings::pdfViewerEnabled() const } /*! + \qmlproperty bool WebEngineSettings::navigateOnDropEnabled + \since QtWebEngine 6.4 + + Specifies that navigations can be triggered by dropping URLs on + the view. + + Enabled by default. +*/ +bool QQuickWebEngineSettings::navigateOnDropEnabled() const +{ + return d_ptr->testAttribute(QWebEngineSettings::NavigateOnDropEnabled); +} + +/*! + \qmlproperty bool WebEngineSettings::readingFromCanvasEnabled + \since QtWebEngine 6.6 + + Specifies that reading from all canvas elements is enabled. + + This setting will have impact on all HTML5 canvas elements irrespective of origin, and can be disabled + to prevent canvas fingerprinting. + + Enabled by default. + */ +bool QQuickWebEngineSettings::readingFromCanvasEnabled() const +{ + return d_ptr->testAttribute(QWebEngineSettings::ReadingFromCanvasEnabled); +} + +/*! + \qmlproperty bool WebEngineSettings::forceDarkMode + \since QtWebEngine 6.7 + + Automatically render all web contents using a dark theme. + + Disabled by default. + */ +bool QQuickWebEngineSettings::forceDarkMode() const +{ + return d_ptr->testAttribute(QWebEngineSettings::ForceDarkMode); +} + +/*! + \qmlproperty bool WebEngineSettings::scrollAnimatorEnabled + \since QtWebEngine 6.8 + + Enables animated scrolling. + + Disabled by default. + */ +bool QQuickWebEngineSettings::scrollAnimatorEnabled() const +{ + return d_ptr->testAttribute(QWebEngineSettings::ScrollAnimatorEnabled); +} + +/*! \qmlproperty string WebEngineSettings::defaultTextEncoding \since QtWebEngine 1.2 @@ -468,6 +496,33 @@ QString QQuickWebEngineSettings::defaultTextEncoding() const return d_ptr->defaultTextEncoding(); } +ASSERT_ENUMS_MATCH(QQuickWebEngineSettings::AllowImageAnimation, + QWebEngineSettings::AllowImageAnimation) +ASSERT_ENUMS_MATCH(QQuickWebEngineSettings::AnimateImageOnce, QWebEngineSettings::AnimateImageOnce) +ASSERT_ENUMS_MATCH(QQuickWebEngineSettings::DisallowImageAnimation, + QWebEngineSettings::DisallowImageAnimation) +/*! + \qmlproperty enumeration WebEngineSettings::imageAnimationPolicy + \since QtWebEngine 6.8 + + Specifies how an image animation should be handled when the image frames + are rendered for animation. + + \value WebEngineSettings.AllowImageAnimation + Allows all image animations when the image frames are rendered. + \value WebEngineSettings.AnimateImageOnce + Animate the image once when the image frames are rendered. + \value WebEngineSettings.DisallowImageAnimation + Disallows all image animations when the image frames are rendered. + + Default value is \c {WebEngineSettings.AllowImageAnimation}. +*/ +QQuickWebEngineSettings::ImageAnimationPolicy QQuickWebEngineSettings::imageAnimationPolicy() const +{ + return static_cast<QQuickWebEngineSettings::ImageAnimationPolicy>( + d_ptr->imageAnimationPolicy()); +} + ASSERT_ENUMS_MATCH(QQuickWebEngineSettings::DisallowUnknownUrlSchemes, QWebEngineSettings::DisallowUnknownUrlSchemes) ASSERT_ENUMS_MATCH(QQuickWebEngineSettings::AllowUnknownUrlSchemesFromUserInteraction, QWebEngineSettings::AllowUnknownUrlSchemesFromUserInteraction) ASSERT_ENUMS_MATCH(QQuickWebEngineSettings::AllowAllUnknownUrlSchemes, QWebEngineSettings::AllowAllUnknownUrlSchemes) @@ -729,6 +784,38 @@ void QQuickWebEngineSettings::setPdfViewerEnabled(bool on) Q_EMIT pdfViewerEnabledChanged(); } +void QQuickWebEngineSettings::setNavigateOnDropEnabled(bool on) +{ + bool wasOn = d_ptr->testAttribute(QWebEngineSettings::NavigateOnDropEnabled); + d_ptr->setAttribute(QWebEngineSettings::NavigateOnDropEnabled, on); + if (wasOn != on) + Q_EMIT navigateOnDropEnabledChanged(); +} + +void QQuickWebEngineSettings::setReadingFromCanvasEnabled(bool on) +{ + bool wasOn = d_ptr->testAttribute(QWebEngineSettings::ReadingFromCanvasEnabled); + d_ptr->setAttribute(QWebEngineSettings::ReadingFromCanvasEnabled, on); + if (wasOn != on) + Q_EMIT readingFromCanvasEnabledChanged(); +} + +void QQuickWebEngineSettings::setForceDarkMode(bool on) +{ + bool wasOn = d_ptr->testAttribute(QWebEngineSettings::ForceDarkMode); + d_ptr->setAttribute(QWebEngineSettings::ForceDarkMode, on); + if (wasOn != on) + Q_EMIT forceDarkModeChanged(); +} + +void QQuickWebEngineSettings::setScrollAnimatorEnabled(bool on) +{ + bool wasOn = d_ptr->testAttribute(QWebEngineSettings::ScrollAnimatorEnabled); + d_ptr->setAttribute(QWebEngineSettings::ScrollAnimatorEnabled, on); + if (wasOn != on) + Q_EMIT scrollAnimatorEnabledChanged(); +} + void QQuickWebEngineSettings::setUnknownUrlSchemePolicy(QQuickWebEngineSettings::UnknownUrlSchemePolicy policy) { QWebEngineSettings::UnknownUrlSchemePolicy oldPolicy = d_ptr->unknownUrlSchemePolicy(); @@ -751,4 +838,17 @@ void QQuickWebEngineSettings::setParentSettings(QQuickWebEngineSettings *parentS d_ptr->setParentSettings(parentSettings->d_ptr.data()); } +void QQuickWebEngineSettings::setImageAnimationPolicy( + QQuickWebEngineSettings::ImageAnimationPolicy policy) +{ + QWebEngineSettings::ImageAnimationPolicy oldPolicy = d_ptr->imageAnimationPolicy(); + QWebEngineSettings::ImageAnimationPolicy newPolicy = + static_cast<QWebEngineSettings::ImageAnimationPolicy>(policy); + d_ptr->setImageAnimationPolicy(newPolicy); + if (oldPolicy != newPolicy) + Q_EMIT imageAnimationPolicyChanged(); +} + QT_END_NAMESPACE + +#include "moc_qquickwebenginesettings_p.cpp" |