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

Side by Side Diff: content/renderer/media/media_stream_impl.h

Issue 391703002: Implement ConstraintNotSatisfiedError for getusermedia (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add bug id and reviewer Created 6 years, 5 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CONTENT_RENDERER_MEDIA_MEDIA_STREAM_IMPL_H_ 5 #ifndef CONTENT_RENDERER_MEDIA_MEDIA_STREAM_IMPL_H_
6 #define CONTENT_RENDERER_MEDIA_MEDIA_STREAM_IMPL_H_ 6 #define CONTENT_RENDERER_MEDIA_MEDIA_STREAM_IMPL_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 void OnLocalSourceStopped(const blink::WebMediaStreamSource& source); 91 void OnLocalSourceStopped(const blink::WebMediaStreamSource& source);
92 92
93 // These methods are virtual for test purposes. A test can override them to 93 // These methods are virtual for test purposes. A test can override them to
94 // test requesting local media streams. The function notifies WebKit that the 94 // test requesting local media streams. The function notifies WebKit that the
95 // |request| have completed. 95 // |request| have completed.
96 virtual void GetUserMediaRequestSucceeded( 96 virtual void GetUserMediaRequestSucceeded(
97 const blink::WebMediaStream& stream, 97 const blink::WebMediaStream& stream,
98 blink::WebUserMediaRequest* request_info); 98 blink::WebUserMediaRequest* request_info);
99 virtual void GetUserMediaRequestFailed( 99 virtual void GetUserMediaRequestFailed(
100 blink::WebUserMediaRequest* request_info, 100 blink::WebUserMediaRequest* request_info,
101 content::MediaStreamRequestResult result); 101 content::MediaStreamRequestResult result,
102 const blink::WebString& result_name = blink::WebString());
no longer working on chromium 2014/07/25 19:27:35 I don't understand why you need a result_name stri
jiajia.qin 2014/07/28 04:46:52 The spec says if it is a constraint failure. Let e
102 virtual void EnumerateDevicesSucceded( 103 virtual void EnumerateDevicesSucceded(
103 blink::WebMediaDevicesRequest* request, 104 blink::WebMediaDevicesRequest* request,
104 blink::WebVector<blink::WebMediaDeviceInfo>& devices); 105 blink::WebVector<blink::WebMediaDeviceInfo>& devices);
105 // Creates a MediaStreamVideoSource object. 106 // Creates a MediaStreamVideoSource object.
106 // This is virtual for test purposes. 107 // This is virtual for test purposes.
107 virtual MediaStreamVideoSource* CreateVideoSource( 108 virtual MediaStreamVideoSource* CreateVideoSource(
108 const StreamDeviceInfo& device, 109 const StreamDeviceInfo& device,
109 const MediaStreamSource::SourceStoppedCallback& stop_callback); 110 const MediaStreamSource::SourceStoppedCallback& stop_callback);
110 111
111 private: 112 private:
112 // Class for storing information about a WebKit request to create a 113 // Class for storing information about a WebKit request to create a
113 // MediaStream. 114 // MediaStream.
114 class UserMediaRequestInfo 115 class UserMediaRequestInfo
115 : public base::SupportsWeakPtr<UserMediaRequestInfo> { 116 : public base::SupportsWeakPtr<UserMediaRequestInfo> {
116 public: 117 public:
117 typedef base::Callback<void(UserMediaRequestInfo* request_info, 118 typedef base::Callback<void(UserMediaRequestInfo* request_info,
118 content::MediaStreamRequestResult result)> 119 content::MediaStreamRequestResult result,
120 const blink::WebString& result_name)>
119 ResourcesReady; 121 ResourcesReady;
120 122
121 UserMediaRequestInfo(int request_id, 123 UserMediaRequestInfo(int request_id,
122 blink::WebFrame* frame, 124 blink::WebFrame* frame,
123 const blink::WebUserMediaRequest& request, 125 const blink::WebUserMediaRequest& request,
124 bool enable_automatic_output_device_selection); 126 bool enable_automatic_output_device_selection);
125 ~UserMediaRequestInfo(); 127 ~UserMediaRequestInfo();
126 int request_id; 128 int request_id;
127 // True if MediaStreamDispatcher has generated the stream, see 129 // True if MediaStreamDispatcher has generated the stream, see
128 // OnStreamGenerated. 130 // OnStreamGenerated.
(...skipping 13 matching lines...) Expand all
142 // Triggers |callback| when all sources used in this request have either 144 // Triggers |callback| when all sources used in this request have either
143 // successfully started, or a source has failed to start. 145 // successfully started, or a source has failed to start.
144 void CallbackOnTracksStarted(const ResourcesReady& callback); 146 void CallbackOnTracksStarted(const ResourcesReady& callback);
145 147
146 bool IsSourceUsed(const blink::WebMediaStreamSource& source) const; 148 bool IsSourceUsed(const blink::WebMediaStreamSource& source) const;
147 void RemoveSource(const blink::WebMediaStreamSource& source); 149 void RemoveSource(const blink::WebMediaStreamSource& source);
148 150
149 bool AreAllSourcesRemoved() const { return sources_.empty(); } 151 bool AreAllSourcesRemoved() const { return sources_.empty(); }
150 152
151 private: 153 private:
152 void OnTrackStarted(MediaStreamSource* source, bool success); 154 void OnTrackStarted(
no longer working on chromium 2014/07/28 19:55:08 Avoid using default param. If OnTrackStarted is u
jiajia.qin 2014/07/30 05:18:07 I have made a overload for GetUserMediaRequestFail
155 MediaStreamSource* source,
156 content::MediaStreamRequestResult result,
157 const blink::WebString& result_name = blink::WebString());
153 void CheckAllTracksStarted(); 158 void CheckAllTracksStarted();
154 159
155 ResourcesReady ready_callback_; 160 ResourcesReady ready_callback_;
156 bool request_failed_; 161 bool request_failed_;
157 // Sources used in this request. 162 // Sources used in this request.
158 std::vector<blink::WebMediaStreamSource> sources_; 163 std::vector<blink::WebMediaStreamSource> sources_;
159 std::vector<MediaStreamSource*> sources_waiting_for_callback_; 164 std::vector<MediaStreamSource*> sources_waiting_for_callback_;
160 }; 165 };
161 typedef ScopedVector<UserMediaRequestInfo> UserMediaRequests; 166 typedef ScopedVector<UserMediaRequestInfo> UserMediaRequests;
162 167
(...skipping 30 matching lines...) Expand all
193 void CreateAudioTracks( 198 void CreateAudioTracks(
194 const StreamDeviceInfoArray& devices, 199 const StreamDeviceInfoArray& devices,
195 const blink::WebMediaConstraints& constraints, 200 const blink::WebMediaConstraints& constraints,
196 blink::WebVector<blink::WebMediaStreamTrack>* webkit_tracks, 201 blink::WebVector<blink::WebMediaStreamTrack>* webkit_tracks,
197 UserMediaRequestInfo* request); 202 UserMediaRequestInfo* request);
198 203
199 // Callback function triggered when all native versions of the 204 // Callback function triggered when all native versions of the
200 // underlying media sources and tracks have been created and started. 205 // underlying media sources and tracks have been created and started.
201 void OnCreateNativeTracksCompleted( 206 void OnCreateNativeTracksCompleted(
202 UserMediaRequestInfo* request, 207 UserMediaRequestInfo* request,
203 content::MediaStreamRequestResult result); 208 content::MediaStreamRequestResult result,
209 const blink::WebString& result_name = blink::WebString());
204 210
205 UserMediaRequestInfo* FindUserMediaRequestInfo(int request_id); 211 UserMediaRequestInfo* FindUserMediaRequestInfo(int request_id);
206 UserMediaRequestInfo* FindUserMediaRequestInfo( 212 UserMediaRequestInfo* FindUserMediaRequestInfo(
207 const blink::WebUserMediaRequest& request); 213 const blink::WebUserMediaRequest& request);
208 void DeleteUserMediaRequestInfo(UserMediaRequestInfo* request); 214 void DeleteUserMediaRequestInfo(UserMediaRequestInfo* request);
209 215
210 MediaDevicesRequestInfo* FindMediaDevicesRequestInfo(int request_id); 216 MediaDevicesRequestInfo* FindMediaDevicesRequestInfo(int request_id);
211 MediaDevicesRequestInfo* FindMediaDevicesRequestInfo( 217 MediaDevicesRequestInfo* FindMediaDevicesRequestInfo(
212 const blink::WebMediaDevicesRequest& request); 218 const blink::WebMediaDevicesRequest& request);
213 void DeleteMediaDevicesRequestInfo(MediaDevicesRequestInfo* request); 219 void DeleteMediaDevicesRequestInfo(MediaDevicesRequestInfo* request);
(...skipping 22 matching lines...) Expand all
236 242
237 // Requests to enumerate media devices. 243 // Requests to enumerate media devices.
238 MediaDevicesRequests media_devices_requests_; 244 MediaDevicesRequests media_devices_requests_;
239 245
240 DISALLOW_COPY_AND_ASSIGN(MediaStreamImpl); 246 DISALLOW_COPY_AND_ASSIGN(MediaStreamImpl);
241 }; 247 };
242 248
243 } // namespace content 249 } // namespace content
244 250
245 #endif // CONTENT_RENDERER_MEDIA_MEDIA_STREAM_IMPL_H_ 251 #endif // CONTENT_RENDERER_MEDIA_MEDIA_STREAM_IMPL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698