diff options
author | Jüri Valdmann <juri.valdmann@qt.io> | 2017-05-26 16:27:11 +0200 |
---|---|---|
committer | Kai Koehne <kai.koehne@qt.io> | 2017-07-17 06:29:56 +0000 |
commit | 69b7942bff3b2fce06aee5ada793fbe46f82bb8c (patch) | |
tree | 76e12557b57ecf7a863faf82283a43607e68c415 /src/webengine/api/qquickwebengineview.cpp | |
parent | 4fafb2c04b671573bd6aabbf293ced84f14f9745 (diff) |
Cleanup support for desktop capture
- Use feature permissions system instead of hard-coded dialog.
- Add QML test for getUserMedia() and extend existing widgets test.
Task-number: QTBUG-60832
Change-Id: I533bed5021b3b0ee199b8abc6ddbd516cbd14ff6
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src/webengine/api/qquickwebengineview.cpp')
-rw-r--r-- | src/webengine/api/qquickwebengineview.cpp | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp index c5c772411..09f22c280 100644 --- a/src/webengine/api/qquickwebengineview.cpp +++ b/src/webengine/api/qquickwebengineview.cpp @@ -703,8 +703,13 @@ void QQuickWebEngineViewPrivate::runMediaAccessPermissionRequest(const QUrl &sec feature = QQuickWebEngineView::MediaAudioVideoCapture; else if (requestFlags.testFlag(WebContentsAdapterClient::MediaAudioCapture)) feature = QQuickWebEngineView::MediaAudioCapture; - else // WebContentsAdapterClient::MediaVideoCapture + else if (requestFlags.testFlag(WebContentsAdapterClient::MediaVideoCapture)) feature = QQuickWebEngineView::MediaVideoCapture; + else if (requestFlags.testFlag(WebContentsAdapterClient::MediaDesktopAudioCapture) && + requestFlags.testFlag(WebContentsAdapterClient::MediaDesktopVideoCapture)) + feature = QQuickWebEngineView::DesktopAudioVideoCapture; + else // if (requestFlags.testFlag(WebContentsAdapterClient::MediaDesktopVideoCapture)) + feature = QQuickWebEngineView::DesktopVideoCapture; Q_EMIT q->featurePermissionRequested(securityOrigin, feature); } @@ -1431,7 +1436,8 @@ void QQuickWebEngineView::grantFeaturePermission(const QUrl &securityOrigin, QQu { if (!d_ptr->adapter) return; - if (!granted && feature >= MediaAudioCapture && feature <= MediaAudioVideoCapture) { + if (!granted && ((feature >= MediaAudioCapture && feature <= MediaAudioVideoCapture) || + (feature >= DesktopVideoCapture && feature <= DesktopAudioVideoCapture))) { d_ptr->adapter->grantMediaAccessPermission(securityOrigin, WebContentsAdapterClient::MediaNone); return; } @@ -1449,6 +1455,16 @@ void QQuickWebEngineView::grantFeaturePermission(const QUrl &securityOrigin, QQu case Geolocation: d_ptr->adapter->runGeolocationRequestCallback(securityOrigin, granted); break; + case DesktopVideoCapture: + d_ptr->adapter->grantMediaAccessPermission(securityOrigin, WebContentsAdapterClient::MediaDesktopVideoCapture); + break; + case DesktopAudioVideoCapture: + d_ptr->adapter->grantMediaAccessPermission( + securityOrigin, + WebContentsAdapterClient::MediaRequestFlags( + WebContentsAdapterClient::MediaDesktopAudioCapture | + WebContentsAdapterClient::MediaDesktopVideoCapture)); + break; default: Q_UNREACHABLE(); } |