From 05574185dab53476294cf62f2067a4147aa0b6eb Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Thu, 31 Aug 2017 17:12:37 +0200 Subject: Expose an option to hide internal IP addresses from WebRTC Task-number: QTBUG-57505 Change-Id: I8d8f906311ce94b2d9df67cb4479b70c8961c3a6 Reviewed-by: Viktor Engelmann --- src/webengine/api/qquickwebenginesettings.cpp | 22 ++++++++++++++++++++++ src/webengine/api/qquickwebenginesettings_p.h | 4 ++++ 2 files changed, 26 insertions(+) (limited to 'src/webengine') diff --git a/src/webengine/api/qquickwebenginesettings.cpp b/src/webengine/api/qquickwebenginesettings.cpp index b238833ad..71b0deeca 100644 --- a/src/webengine/api/qquickwebenginesettings.cpp +++ b/src/webengine/api/qquickwebenginesettings.cpp @@ -411,6 +411,20 @@ bool QQuickWebEngineSettings::playbackRequiresUserGesture() const return d_ptr->testAttribute(WebEngineSettings::PlaybackRequiresUserGesture); } +/*! + \qmlproperty bool WebEngineSettings::webRTCPublicInterfacesOnly + \since QtWebEngine 1.7 + Limits WebRTC to public IP addresses only. When disabled WebRTC may also use + local network IP addresses, but remote hosts can also see your local network + IP address. + + Disabled by default. +*/ +bool QQuickWebEngineSettings::webRTCPublicInterfacesOnly() const +{ + return d_ptr->testAttribute(WebEngineSettings::WebRTCPublicInterfacesOnly); +} + /*! \qmlproperty string WebEngineSettings::defaultTextEncoding \since QtWebEngine 1.2 @@ -662,6 +676,14 @@ void QQuickWebEngineSettings::setUnknownUrlSchemePolicy(QQuickWebEngineSettings: Q_EMIT unknownUrlSchemePolicyChanged(); } +void QQuickWebEngineSettings::setWebRTCPublicInterfacesOnly(bool on) +{ + bool wasOn = d_ptr->testAttribute(WebEngineSettings::WebRTCPublicInterfacesOnly); + d_ptr->setAttribute(WebEngineSettings::WebRTCPublicInterfacesOnly, on); + if (wasOn != on) + Q_EMIT webRTCPublicInterfacesOnlyChanged(); +} + void QQuickWebEngineSettings::setParentSettings(QQuickWebEngineSettings *parentSettings) { d_ptr->setParentSettings(parentSettings->d_ptr.data()); diff --git a/src/webengine/api/qquickwebenginesettings_p.h b/src/webengine/api/qquickwebenginesettings_p.h index 63c397d21..60baa7323 100644 --- a/src/webengine/api/qquickwebenginesettings_p.h +++ b/src/webengine/api/qquickwebenginesettings_p.h @@ -90,6 +90,7 @@ class Q_WEBENGINE_PRIVATE_EXPORT QQuickWebEngineSettings : public QObject { Q_PROPERTY(bool showScrollBars READ showScrollBars WRITE setShowScrollBars NOTIFY showScrollBarsChanged REVISION 5 FINAL) Q_PROPERTY(UnknownUrlSchemePolicy unknownUrlSchemePolicy READ unknownUrlSchemePolicy WRITE setUnknownUrlSchemePolicy NOTIFY unknownUrlSchemePolicyChanged REVISION 6 FINAL) Q_PROPERTY(bool playbackRequiresUserGesture READ playbackRequiresUserGesture WRITE setPlaybackRequiresUserGesture NOTIFY playbackRequiresUserGestureChanged REVISION 6 FINAL) + Q_PROPERTY(bool webRTCPublicInterfacesOnly READ webRTCPublicInterfacesOnly WRITE setWebRTCPublicInterfacesOnly NOTIFY webRTCPublicInterfacesOnlyChanged REVISION 6 FINAL) public: enum UnknownUrlSchemePolicy { @@ -129,6 +130,7 @@ public: bool showScrollBars() const; UnknownUrlSchemePolicy unknownUrlSchemePolicy() const; bool playbackRequiresUserGesture() const; + bool webRTCPublicInterfacesOnly() const; void setAutoLoadImages(bool on); void setJavascriptEnabled(bool on); @@ -157,6 +159,7 @@ public: void setShowScrollBars(bool on); void setUnknownUrlSchemePolicy(UnknownUrlSchemePolicy policy); void setPlaybackRequiresUserGesture(bool on); + void setWebRTCPublicInterfacesOnly(bool on); signals: void autoLoadImagesChanged(); @@ -186,6 +189,7 @@ signals: Q_REVISION(5) void showScrollBarsChanged(); Q_REVISION(6) void unknownUrlSchemePolicyChanged(); Q_REVISION(6) void playbackRequiresUserGestureChanged(); + Q_REVISION(6) void webRTCPublicInterfacesOnlyChanged(); private: explicit QQuickWebEngineSettings(QQuickWebEngineSettings *parentSettings = 0); -- cgit v1.2.3