Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9)

Unified Diff: content/renderer/media/media_stream_impl.h

Issue 287383002: Implement getMediaDevices. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Code review fix, a minor test refactoring. And rebase, sorry. Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/renderer/media/media_stream_impl.h
diff --git a/content/renderer/media/media_stream_impl.h b/content/renderer/media/media_stream_impl.h
index 76ae25a96721f84bb6467f8e67c50ea325fc08a6..ad960201f361df85e1c55c96ba6b3241288ae89e 100644
--- a/content/renderer/media/media_stream_impl.h
+++ b/content/renderer/media/media_stream_impl.h
@@ -22,6 +22,7 @@
#include "third_party/WebKit/public/platform/WebMediaStream.h"
#include "third_party/WebKit/public/platform/WebMediaStreamSource.h"
#include "third_party/WebKit/public/platform/WebVector.h"
+#include "third_party/WebKit/public/web/WebMediaDevicesRequest.h"
#include "third_party/WebKit/public/web/WebUserMediaClient.h"
#include "third_party/WebKit/public/web/WebUserMediaRequest.h"
#include "third_party/libjingle/source/talk/app/webrtc/mediastreaminterface.h"
@@ -56,6 +57,10 @@ class CONTENT_EXPORT MediaStreamImpl
const blink::WebUserMediaRequest& user_media_request);
virtual void cancelUserMediaRequest(
const blink::WebUserMediaRequest& user_media_request);
+ virtual void requestMediaDevices(
+ const blink::WebMediaDevicesRequest& media_devices_request) OVERRIDE;
+ virtual void cancelMediaDevicesRequest(
+ const blink::WebMediaDevicesRequest& media_devices_request) OVERRIDE;
// MediaStreamDispatcherEventHandler implementation.
virtual void OnStreamGenerated(
@@ -94,7 +99,9 @@ class CONTENT_EXPORT MediaStreamImpl
virtual void GetUserMediaRequestFailed(
blink::WebUserMediaRequest* request_info,
content::MediaStreamRequestResult result);
-
+ virtual void EnumerateDevicesSucceded(
+ blink::WebMediaDevicesRequest* request,
+ blink::WebVector<blink::WebMediaDeviceInfo>& devices);
// Creates a MediaStreamVideoSource object.
// This is virtual for test purposes.
virtual MediaStreamVideoSource* CreateVideoSource(
@@ -165,6 +172,9 @@ class CONTENT_EXPORT MediaStreamImpl
};
typedef std::vector<LocalStreamSource> LocalStreamSources;
+ struct MediaDevicesRequestInfo;
+ typedef ScopedVector<MediaDevicesRequestInfo> MediaDevicesRequests;
+
// Creates a WebKit representation of stream sources based on
// |devices| from the MediaStreamDispatcher.
void InitializeSourceObject(
@@ -197,6 +207,11 @@ class CONTENT_EXPORT MediaStreamImpl
const blink::WebUserMediaRequest& request);
void DeleteUserMediaRequestInfo(UserMediaRequestInfo* request);
+ MediaDevicesRequestInfo* FindMediaDevicesRequestInfo(int request_id);
+ MediaDevicesRequestInfo* FindMediaDevicesRequestInfo(
+ const blink::WebMediaDevicesRequest& request);
+ void DeleteMediaDevicesRequestInfo(MediaDevicesRequestInfo* request);
+
// Returns the source that use a device with |device.session_id|
// and |device.device.id|. NULL if such source doesn't exist.
const blink::WebMediaStreamSource* FindLocalSource(
@@ -219,6 +234,9 @@ class CONTENT_EXPORT MediaStreamImpl
UserMediaRequests user_media_requests_;
+ // Requests to enumerate media devices.
+ MediaDevicesRequests media_devices_requests_;
+
DISALLOW_COPY_AND_ASSIGN(MediaStreamImpl);
};

Powered by Google App Engine
This is Rietveld 408576698