From de57e1b0b00be63e0647d864ff48b9c75742423d Mon Sep 17 00:00:00 2001 From: Martin Negyokru Date: Fri, 4 Nov 2022 10:55:58 +0100 Subject: Add new API for screen capturing [ChangeLog][WebEngineCore] Add QWebEnginePage::desktopMediaRequested() signal [ChangeLog][WebEngineQuick] Add QQuickWebEngineView::desktopMediaRequested() signal Pick-to: 6.7 Fixes: QTBUG-112142 Task-number: QTBUG-70077 Change-Id: I4bfad88732b45fb68b77f7617440bcb50b248a11 Reviewed-by: Qt CI Bot Reviewed-by: Allan Sandfeld Jensen --- src/core/media_capture_devices_dispatcher.h | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src/core/media_capture_devices_dispatcher.h') diff --git a/src/core/media_capture_devices_dispatcher.h b/src/core/media_capture_devices_dispatcher.h index 37f41901b..2b6bb98d8 100644 --- a/src/core/media_capture_devices_dispatcher.h +++ b/src/core/media_capture_devices_dispatcher.h @@ -24,7 +24,8 @@ class MediaCaptureDevicesDispatcher : public content::MediaObserver, public: static MediaCaptureDevicesDispatcher *GetInstance(); - void processMediaAccessRequest(content::WebContents *, const content::MediaStreamRequest &, content::MediaResponseCallback); + void processMediaAccessRequest(content::WebContents *, const content::MediaStreamRequest &, + content::MediaResponseCallback, content::DesktopMediaID); // Called back from our WebContentsAdapter to grant the requested permission. void handleMediaAccessPermissionResponse(content::WebContents *, const QUrl &securityOrigin, WebContentsAdapterClient::MediaRequestFlags); @@ -52,11 +53,13 @@ private: friend struct base::DefaultSingletonTraits; struct PendingAccessRequest { - PendingAccessRequest(const content::MediaStreamRequest &request, content::MediaResponseCallback callback); + PendingAccessRequest(const content::MediaStreamRequest &request, + content::MediaResponseCallback callback, content::DesktopMediaID id); ~PendingAccessRequest(); content::MediaStreamRequest request; content::MediaResponseCallback callback; + content::DesktopMediaID mediaId; }; typedef base::circular_deque> RequestsQueue; typedef base::flat_map RequestsQueues; @@ -68,8 +71,10 @@ private: void WebContentsDestroyed(content::WebContents *webContents) override; // Helpers for ProcessMediaAccessRequest(). + void handleRequest(content::WebContents *, const content::MediaStreamRequest &, content::MediaResponseCallback); void processDesktopCaptureAccessRequest(content::WebContents *, const content::MediaStreamRequest &, content::MediaResponseCallback); - void enqueueMediaAccessRequest(content::WebContents *, const content::MediaStreamRequest &, content::MediaResponseCallback); + void enqueueMediaAccessRequest(content::WebContents *, const content::MediaStreamRequest &, + content::MediaResponseCallback, content::DesktopMediaID); void ProcessQueuedAccessRequest(content::WebContents *); // Called by the MediaObserver() functions, executed on UI thread. -- cgit v1.2.3