diff --git a/src/lib/tools/html5permissions/html5permissionsdialog.cpp b/src/lib/tools/html5permissions/html5permissionsdialog.cpp
index 5464d4797..f5b414357 100644
--- a/src/lib/tools/html5permissions/html5permissionsdialog.cpp
+++ b/src/lib/tools/html5permissions/html5permissionsdialog.cpp
@@ -21,6 +21,9 @@
#include "mainapplication.h"
#include "html5permissionsmanager.h"
+#include
+
+
HTML5PermissionsDialog::HTML5PermissionsDialog(QWidget* parent)
: QDialog(parent)
, ui(new Ui::HTML5PermissionsDialog)
@@ -37,6 +40,12 @@ HTML5PermissionsDialog::HTML5PermissionsDialog(QWidget* parent)
connect(ui->feature, SIGNAL(currentIndexChanged(int)), this, SLOT(featureIndexChanged()));
connect(ui->buttonBox, &QDialogButtonBox::accepted, this, &HTML5PermissionsDialog::saveSettings);
+/* Hide unsupported HTML5 permissions */
+#if QTWEBENGINEWIDGETS_VERSION < QT_VERSION_CHECK(5, 10, 0)
+ ui->feature->removeItem(7);
+ ui->feature->removeItem(6);
+#endif
+
showFeaturePermissions(currentFeature());
}
@@ -110,6 +119,12 @@ QWebEnginePage::Feature HTML5PermissionsDialog::currentFeature() const
return QWebEnginePage::MediaAudioVideoCapture;
case 5:
return QWebEnginePage::MouseLock;
+#if QTWEBENGINEWIDGETS_VERSION >= QT_VERSION_CHECK(5, 10, 0)
+ case 6:
+ return QWebEnginePage::DesktopVideoCapture;
+ case 7:
+ return QWebEnginePage::DesktopAudioVideoCapture;
+#endif
default:
Q_UNREACHABLE();
return QWebEnginePage::Notifications;
@@ -139,6 +154,14 @@ void HTML5PermissionsDialog::loadSettings()
m_granted[QWebEnginePage::MouseLock] = settings.value("MouseLockGranted", QStringList()).toStringList();
m_denied[QWebEnginePage::MouseLock] = settings.value("MouseLockDenied", QStringList()).toStringList();
+#if QTWEBENGINEWIDGETS_VERSION >= QT_VERSION_CHECK(5, 10, 0)
+ m_granted[QWebEnginePage::DesktopVideoCapture] = settings.value("DesktopVideoCaptureGranted", QStringList()).toStringList();
+ m_denied[QWebEnginePage::DesktopVideoCapture] = settings.value("DesktopVideoCaptureDenied", QStringList()).toStringList();
+
+ m_granted[QWebEnginePage::DesktopAudioVideoCapture] = settings.value("DesktopAudioVideoCaptureGranted", QStringList()).toStringList();
+ m_denied[QWebEnginePage::DesktopAudioVideoCapture] = settings.value("DesktopAudioVideoCaptureDenied", QStringList()).toStringList();
+#endif
+
settings.endGroup();
}
@@ -165,6 +188,14 @@ void HTML5PermissionsDialog::saveSettings()
settings.setValue("MouseLockGranted", m_granted[QWebEnginePage::MouseLock]);
settings.setValue("MouseLockDenied", m_denied[QWebEnginePage::MouseLock]);
+#if QTWEBENGINEWIDGETS_VERSION >= QT_VERSION_CHECK(5, 10, 0)
+ settings.setValue("DesktopVideoCaptureGranted", m_granted[QWebEnginePage::DesktopVideoCapture]);
+ settings.setValue("DesktopVideoCaptureDenied", m_denied[QWebEnginePage::DesktopVideoCapture]);
+
+ settings.setValue("DesktopAudioVideoCaptureGranted", m_granted[QWebEnginePage::DesktopAudioVideoCapture]);
+ settings.setValue("DesktopAudioVideoCaptureDenied", m_denied[QWebEnginePage::DesktopAudioVideoCapture]);
+#endif
+
settings.endGroup();
mApp->html5PermissionsManager()->loadSettings();
diff --git a/src/lib/tools/html5permissions/html5permissionsdialog.ui b/src/lib/tools/html5permissions/html5permissionsdialog.ui
index 46d5e07d6..bd0b0d785 100644
--- a/src/lib/tools/html5permissions/html5permissionsdialog.ui
+++ b/src/lib/tools/html5permissions/html5permissionsdialog.ui
@@ -112,6 +112,16 @@
Hide Pointer
+ -
+
+ Display Capture
+
+
+ -
+
+ Display and Audio Capture
+
+
-
diff --git a/src/lib/tools/html5permissions/html5permissionsmanager.cpp b/src/lib/tools/html5permissions/html5permissionsmanager.cpp
index fc3bec16f..21563dd01 100644
--- a/src/lib/tools/html5permissions/html5permissionsmanager.cpp
+++ b/src/lib/tools/html5permissions/html5permissionsmanager.cpp
@@ -20,6 +20,8 @@
#include "settings.h"
#include "webview.h"
+#include
+
HTML5PermissionsManager::HTML5PermissionsManager(QObject* parent)
: QObject(parent)
@@ -95,6 +97,14 @@ void HTML5PermissionsManager::loadSettings()
m_granted[QWebEnginePage::MouseLock] = settings.value("MouseLockGranted", QStringList()).toStringList();
m_denied[QWebEnginePage::MouseLock] = settings.value("MouseLockDenied", QStringList()).toStringList();
+#if QTWEBENGINEWIDGETS_VERSION >= QT_VERSION_CHECK(5, 10, 0)
+ m_granted[QWebEnginePage::DesktopVideoCapture] = settings.value("DesktopVideoCaptureGranted", QStringList()).toStringList();
+ m_denied[QWebEnginePage::DesktopVideoCapture] = settings.value("DesktopVideoCaptureDenied", QStringList()).toStringList();
+
+ m_granted[QWebEnginePage::DesktopAudioVideoCapture] = settings.value("DesktopAudioVideoCaptureGranted", QStringList()).toStringList();
+ m_denied[QWebEnginePage::DesktopAudioVideoCapture] = settings.value("DesktopAudioVideoCaptureDenied", QStringList()).toStringList();
+#endif
+
settings.endGroup();
}
@@ -121,5 +131,13 @@ void HTML5PermissionsManager::saveSettings()
settings.setValue("MouseLockGranted", m_granted[QWebEnginePage::MouseLock]);
settings.setValue("MouseLockDenied", m_denied[QWebEnginePage::MouseLock]);
+#if QTWEBENGINEWIDGETS_VERSION >= QT_VERSION_CHECK(5, 10, 0)
+ settings.setValue("DesktopVideoCaptureGranted", m_granted[QWebEnginePage::DesktopVideoCapture]);
+ settings.setValue("DesktopVideoCaptureDenied", m_denied[QWebEnginePage::DesktopVideoCapture]);
+
+ settings.setValue("DesktopAudioVideoCaptureGranted", m_granted[QWebEnginePage::DesktopAudioVideoCapture]);
+ settings.setValue("DesktopAudioVideoCaptureDenied", m_denied[QWebEnginePage::DesktopAudioVideoCapture]);
+#endif
+
settings.endGroup();
}
diff --git a/src/lib/tools/html5permissions/html5permissionsnotification.cpp b/src/lib/tools/html5permissions/html5permissionsnotification.cpp
index 7ada0bd9f..d7433634d 100644
--- a/src/lib/tools/html5permissions/html5permissionsnotification.cpp
+++ b/src/lib/tools/html5permissions/html5permissionsnotification.cpp
@@ -23,6 +23,8 @@
#include
#include
+#include
+
HTML5PermissionsNotification::HTML5PermissionsNotification(const QUrl &origin, QWebEnginePage* page, const QWebEnginePage::Feature &feature)
: AnimatedWidget(AnimatedWidget::Down, 300, 0)
@@ -63,6 +65,15 @@ HTML5PermissionsNotification::HTML5PermissionsNotification(const QUrl &origin, Q
ui->textLabel->setText(tr("Allow %1 to hide your pointer?").arg(site));
break;
+#if QTWEBENGINEWIDGETS_VERSION >= QT_VERSION_CHECK(5, 10, 0)
+ case QWebEnginePage::DesktopVideoCapture:
+ ui->textLabel->setText(tr("Allow %1 to capture your screen?").arg(site));
+ break;
+
+ case QWebEnginePage::DesktopAudioVideoCapture:
+ ui->textLabel->setText(tr("Allow %1 to capture your screen and audio?").arg(site));
+ break;
+#endif
default:
qWarning() << "Unknown feature" << feature;
break;