diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/core/media_capture_devices_dispatcher.cpp | 5 | ||||
-rw-r--r-- | src/core/web_engine_settings.cpp | 1 | ||||
-rw-r--r-- | src/core/web_engine_settings.h | 1 | ||||
-rw-r--r-- | src/webengine/api/qquickwebenginesettings.cpp | 21 | ||||
-rw-r--r-- | src/webengine/api/qquickwebenginesettings_p.h | 6 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebenginesettings.cpp | 2 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebenginesettings.h | 3 | ||||
-rw-r--r-- | src/webenginewidgets/doc/src/qwebenginesettings_lgpl.qdoc | 2 |
8 files changed, 38 insertions, 3 deletions
diff --git a/src/core/media_capture_devices_dispatcher.cpp b/src/core/media_capture_devices_dispatcher.cpp index e18f92b37..f347e17c0 100644 --- a/src/core/media_capture_devices_dispatcher.cpp +++ b/src/core/media_capture_devices_dispatcher.cpp @@ -44,6 +44,7 @@ #include "javascript_dialog_manager_qt.h" #include "type_conversion.h" #include "web_contents_view_qt.h" +#include "web_engine_settings.h" #include "base/strings/utf_string_conversions.h" #include "chrome/browser/media/desktop_streams_registry.h" @@ -293,8 +294,8 @@ void MediaCaptureDevicesDispatcher::processScreenCaptureAccessRequest(content::W { DCHECK_EQ(request.video_type, content::MEDIA_DESKTOP_VIDEO_CAPTURE); - // FIXME: expose through the settings once we have them - const bool screenCaptureEnabled = !qgetenv("QT_WEBENGINE_USE_EXPERIMENTAL_SCREEN_CAPTURE").isNull(); + WebContentsAdapterClient *adapterClient = WebContentsViewQt::from(static_cast<content::WebContentsImpl*>(webContents)->GetView())->client(); + const bool screenCaptureEnabled = adapterClient->webEngineSettings()->testAttribute(WebEngineSettings::ScreenCaptureEnabled); const bool originIsSecure = content::IsOriginSecure(request.security_origin); diff --git a/src/core/web_engine_settings.cpp b/src/core/web_engine_settings.cpp index 155a34d74..c8d1cc27f 100644 --- a/src/core/web_engine_settings.cpp +++ b/src/core/web_engine_settings.cpp @@ -215,6 +215,7 @@ void WebEngineSettings::initDefaults(bool offTheRecord) m_attributes.insert(ErrorPageEnabled, true); m_attributes.insert(PluginsEnabled, false); m_attributes.insert(FullScreenSupportEnabled, false); + m_attributes.insert(ScreenCaptureEnabled, false); // Default fonts QFont defaultFont; diff --git a/src/core/web_engine_settings.h b/src/core/web_engine_settings.h index 29ef079b7..d850bd1ef 100644 --- a/src/core/web_engine_settings.h +++ b/src/core/web_engine_settings.h @@ -73,6 +73,7 @@ public: ErrorPageEnabled, PluginsEnabled, FullScreenSupportEnabled, + ScreenCaptureEnabled }; // Must match the values from the public API in qwebenginesettings.h. diff --git a/src/webengine/api/qquickwebenginesettings.cpp b/src/webengine/api/qquickwebenginesettings.cpp index 8f2e1bcf2..327c9e745 100644 --- a/src/webengine/api/qquickwebenginesettings.cpp +++ b/src/webengine/api/qquickwebenginesettings.cpp @@ -233,6 +233,19 @@ bool QQuickWebEngineSettings::fullScreenSupportEnabled() const } /*! + \qmlproperty bool WebEngineSettings::screenCaptureEnabled + \since QtWebEngine 1.3 + + Tells the web engine whether screen capture is supported in this application or not. + + Disabled by default. +*/ +bool QQuickWebEngineSettings::screenCaptureEnabled() const +{ + return d_ptr->testAttribute(WebEngineSettings::ScreenCaptureEnabled); +} + +/*! \qmlproperty QString WebEngineSettings::defaultTextEncoding Sets the default encoding. The value must be a string describing an encoding such as "utf-8" or @@ -352,6 +365,14 @@ void QQuickWebEngineSettings::setFullScreenSupportEnabled(bool on) Q_EMIT fullScreenSupportEnabledChanged(); } +void QQuickWebEngineSettings::setScreenCaptureEnabled(bool on) +{ + bool wasOn = d_ptr->testAttribute(WebEngineSettings::ScreenCaptureEnabled); + d_ptr->setAttribute(WebEngineSettings::ScreenCaptureEnabled, on); + if (wasOn != on) + Q_EMIT screenCaptureEnabledChanged(); +} + void QQuickWebEngineSettings::setDefaultTextEncoding(QString encoding) { const QString oldDefaultTextEncoding = d_ptr->defaultTextEncoding(); diff --git a/src/webengine/api/qquickwebenginesettings_p.h b/src/webengine/api/qquickwebenginesettings_p.h index 604e5693d..e82ec6d48 100644 --- a/src/webengine/api/qquickwebenginesettings_p.h +++ b/src/webengine/api/qquickwebenginesettings_p.h @@ -73,6 +73,8 @@ class Q_WEBENGINE_PRIVATE_EXPORT QQuickWebEngineSettings : public QObject { Q_PROPERTY(bool errorPageEnabled READ errorPageEnabled WRITE setErrorPageEnabled NOTIFY errorPageEnabledChanged) Q_PROPERTY(bool pluginsEnabled READ pluginsEnabled WRITE setPluginsEnabled NOTIFY pluginsEnabledChanged) Q_PROPERTY(bool fullScreenSupportEnabled READ fullScreenSupportEnabled WRITE setFullScreenSupportEnabled NOTIFY fullScreenSupportEnabledChanged REVISION 1) + // FIXME: add back REVISION when QTBUG-40043 has been fixed. + Q_PROPERTY(bool screenCaptureEnabled READ screenCaptureEnabled WRITE setScreenCaptureEnabled NOTIFY screenCaptureEnabledChanged /* REVISION 2 */) Q_PROPERTY(QString defaultTextEncoding READ defaultTextEncoding WRITE setDefaultTextEncoding NOTIFY defaultTextEncodingChanged) public: @@ -91,6 +93,7 @@ public: bool errorPageEnabled() const; bool pluginsEnabled() const; bool fullScreenSupportEnabled() const; + bool screenCaptureEnabled() const; QString defaultTextEncoding() const; void setAutoLoadImages(bool on); @@ -106,6 +109,7 @@ public: void setErrorPageEnabled(bool on); void setPluginsEnabled(bool on); void setFullScreenSupportEnabled(bool on); + void setScreenCaptureEnabled(bool on); void setDefaultTextEncoding(QString encoding); signals: @@ -122,6 +126,8 @@ signals: void errorPageEnabledChanged(); void pluginsEnabledChanged(); Q_REVISION(1) void fullScreenSupportEnabledChanged(); + // FIXME: add back Q_REVISION when QTBUG-40043 has been fixed. + void screenCaptureEnabledChanged(); void defaultTextEncodingChanged(); private: diff --git a/src/webenginewidgets/api/qwebenginesettings.cpp b/src/webenginewidgets/api/qwebenginesettings.cpp index 430d64185..290f46b18 100644 --- a/src/webenginewidgets/api/qwebenginesettings.cpp +++ b/src/webenginewidgets/api/qwebenginesettings.cpp @@ -76,6 +76,8 @@ static WebEngineSettings::Attribute toWebEngineAttribute(QWebEngineSettings::Web return WebEngineSettings::PluginsEnabled; case QWebEngineSettings::FullScreenSupportEnabled: return WebEngineSettings::FullScreenSupportEnabled; + case QWebEngineSettings::ScreenCaptureEnabled: + return WebEngineSettings::ScreenCaptureEnabled; default: return WebEngineSettings::UnsupportedInCoreSettings; } diff --git a/src/webenginewidgets/api/qwebenginesettings.h b/src/webenginewidgets/api/qwebenginesettings.h index 327fd447b..1c5d526d9 100644 --- a/src/webenginewidgets/api/qwebenginesettings.h +++ b/src/webenginewidgets/api/qwebenginesettings.h @@ -60,7 +60,8 @@ public: ScrollAnimatorEnabled, ErrorPageEnabled, PluginsEnabled, - FullScreenSupportEnabled + FullScreenSupportEnabled, + ScreenCaptureEnabled }; enum FontSize { diff --git a/src/webenginewidgets/doc/src/qwebenginesettings_lgpl.qdoc b/src/webenginewidgets/doc/src/qwebenginesettings_lgpl.qdoc index 3dc23e037..d4f9e498d 100644 --- a/src/webenginewidgets/doc/src/qwebenginesettings_lgpl.qdoc +++ b/src/webenginewidgets/doc/src/qwebenginesettings_lgpl.qdoc @@ -123,6 +123,8 @@ Enables support for Pepper plugins, such as the Flash player. Disabled by default. \value FullScreenSupportEnabled Enables fullscreen support in an application. Disabled by default. + \value ScreenCaptureEnabled + Enables screen capture in an application. Disabled by default. */ /*! |