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

Side by Side Diff: content/browser/renderer_host/media/media_stream_dispatcher_host.cc

Issue 17508005: Minor cleanup to remove the static thread-safe methods on BrowserMainLoop. Initially I thought this… (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 years, 6 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 | Annotate | Revision Log
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 #include "content/browser/renderer_host/media/media_stream_dispatcher_host.h" 5 #include "content/browser/renderer_host/media/media_stream_dispatcher_host.h"
6 6
7 #include "content/browser/browser_main_loop.h" 7 #include "content/browser/browser_main_loop.h"
8 #include "content/browser/renderer_host/media/web_contents_capture_util.h" 8 #include "content/browser/renderer_host/media/web_contents_capture_util.h"
9 #include "content/common/media/media_stream_messages.h" 9 #include "content/common/media/media_stream_messages.h"
10 #include "content/common/media/media_stream_options.h" 10 #include "content/common/media/media_stream_options.h"
11 #include "googleurl/src/gurl.h" 11 #include "googleurl/src/gurl.h"
12 12
13 namespace content { 13 namespace content {
14 14
15 struct MediaStreamDispatcherHost::StreamRequest { 15 struct MediaStreamDispatcherHost::StreamRequest {
16 StreamRequest() : render_view_id(0), page_request_id(0) {} 16 StreamRequest() : render_view_id(0), page_request_id(0) {}
17 StreamRequest(int render_view_id, int page_request_id) 17 StreamRequest(int render_view_id, int page_request_id)
18 : render_view_id(render_view_id), 18 : render_view_id(render_view_id),
19 page_request_id(page_request_id ) { 19 page_request_id(page_request_id ) {
20 } 20 }
21 int render_view_id; 21 int render_view_id;
22 // Id of the request generated by MediaStreamDispatcher. 22 // Id of the request generated by MediaStreamDispatcher.
23 int page_request_id; 23 int page_request_id;
24 }; 24 };
25 25
26 MediaStreamDispatcherHost::MediaStreamDispatcherHost(int render_process_id) 26 MediaStreamDispatcherHost::MediaStreamDispatcherHost(
27 : render_process_id_(render_process_id) { 27 int render_process_id,
28 MediaStreamManager* media_stream_manager)
29 : render_process_id_(render_process_id),
30 media_stream_manager_(media_stream_manager) {
28 } 31 }
29 32
30 void MediaStreamDispatcherHost::StreamGenerated( 33 void MediaStreamDispatcherHost::StreamGenerated(
31 const std::string& label, 34 const std::string& label,
32 const StreamDeviceInfoArray& audio_devices, 35 const StreamDeviceInfoArray& audio_devices,
33 const StreamDeviceInfoArray& video_devices) { 36 const StreamDeviceInfoArray& video_devices) {
34 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 37 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
35 DVLOG(1) << "MediaStreamDispatcherHost::StreamGenerated(" 38 DVLOG(1) << "MediaStreamDispatcherHost::StreamGenerated("
36 << ", {label = " << label << "})"; 39 << ", {label = " << label << "})";
37 40
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 112
110 void MediaStreamDispatcherHost::OnChannelClosing() { 113 void MediaStreamDispatcherHost::OnChannelClosing() {
111 BrowserMessageFilter::OnChannelClosing(); 114 BrowserMessageFilter::OnChannelClosing();
112 DVLOG(1) << "MediaStreamDispatcherHost::OnChannelClosing"; 115 DVLOG(1) << "MediaStreamDispatcherHost::OnChannelClosing";
113 116
114 // Since the IPC channel is gone, close all requesting/requested streams. 117 // Since the IPC channel is gone, close all requesting/requested streams.
115 for (StreamMap::iterator it = streams_.begin(); 118 for (StreamMap::iterator it = streams_.begin();
116 it != streams_.end(); 119 it != streams_.end();
117 ++it) { 120 ++it) {
118 std::string label = it->first; 121 std::string label = it->first;
119 GetManager()->StopGeneratedStream(label); 122 media_stream_manager_->StopGeneratedStream(label);
120 } 123 }
121 // Clear the map after we have stopped all the streams. 124 // Clear the map after we have stopped all the streams.
122 streams_.clear(); 125 streams_.clear();
123 } 126 }
124 127
125 MediaStreamDispatcherHost::~MediaStreamDispatcherHost() { 128 MediaStreamDispatcherHost::~MediaStreamDispatcherHost() {
126 DCHECK(streams_.empty()); 129 DCHECK(streams_.empty());
127 } 130 }
128 131
129 void MediaStreamDispatcherHost::OnGenerateStream( 132 void MediaStreamDispatcherHost::OnGenerateStream(
130 int render_view_id, 133 int render_view_id,
131 int page_request_id, 134 int page_request_id,
132 const StreamOptions& components, 135 const StreamOptions& components,
133 const GURL& security_origin) { 136 const GURL& security_origin) {
134 DVLOG(1) << "MediaStreamDispatcherHost::OnGenerateStream(" 137 DVLOG(1) << "MediaStreamDispatcherHost::OnGenerateStream("
135 << render_view_id << ", " 138 << render_view_id << ", "
136 << page_request_id << ", [" 139 << page_request_id << ", ["
137 << " audio:" << components.audio_type 140 << " audio:" << components.audio_type
138 << " video:" << components.video_type 141 << " video:" << components.video_type
139 << " ], " 142 << " ], "
140 << security_origin.spec() << ")"; 143 << security_origin.spec() << ")";
141 144
142 const std::string& label = GetManager()->GenerateStream( 145 const std::string& label = media_stream_manager_->GenerateStream(
143 this, render_process_id_, render_view_id, components, security_origin); 146 this, render_process_id_, render_view_id, components, security_origin);
144 if (label.empty()) { 147 if (label.empty()) {
145 Send(new MediaStreamMsg_StreamGenerationFailed(render_view_id, 148 Send(new MediaStreamMsg_StreamGenerationFailed(render_view_id,
146 page_request_id)); 149 page_request_id));
147 } else { 150 } else {
148 streams_[label] = StreamRequest(render_view_id, page_request_id); 151 streams_[label] = StreamRequest(render_view_id, page_request_id);
149 } 152 }
150 } 153 }
151 154
152 void MediaStreamDispatcherHost::OnCancelGenerateStream(int render_view_id, 155 void MediaStreamDispatcherHost::OnCancelGenerateStream(int render_view_id,
153 int page_request_id) { 156 int page_request_id) {
154 DVLOG(1) << "MediaStreamDispatcherHost::OnCancelGenerateStream(" 157 DVLOG(1) << "MediaStreamDispatcherHost::OnCancelGenerateStream("
155 << render_view_id << ", " 158 << render_view_id << ", "
156 << page_request_id << ")"; 159 << page_request_id << ")";
157 160
158 for (StreamMap::iterator it = streams_.begin(); it != streams_.end(); ++it) { 161 for (StreamMap::iterator it = streams_.begin(); it != streams_.end(); ++it) {
159 if (it->second.render_view_id == render_view_id && 162 if (it->second.render_view_id == render_view_id &&
160 it->second.page_request_id == page_request_id) { 163 it->second.page_request_id == page_request_id) {
161 GetManager()->CancelRequest(it->first); 164 media_stream_manager_->CancelRequest(it->first);
162 } 165 }
163 } 166 }
164 } 167 }
165 168
166 void MediaStreamDispatcherHost::OnStopGeneratedStream( 169 void MediaStreamDispatcherHost::OnStopGeneratedStream(
167 int render_view_id, const std::string& label) { 170 int render_view_id, const std::string& label) {
168 DVLOG(1) << "MediaStreamDispatcherHost::OnStopGeneratedStream(" 171 DVLOG(1) << "MediaStreamDispatcherHost::OnStopGeneratedStream("
169 << ", {label = " << label << "})"; 172 << ", {label = " << label << "})";
170 173
171 StreamMap::iterator it = streams_.find(label); 174 StreamMap::iterator it = streams_.find(label);
172 if (it == streams_.end()) 175 if (it == streams_.end())
173 return; 176 return;
174 177
175 GetManager()->StopGeneratedStream(label); 178 media_stream_manager_->StopGeneratedStream(label);
176 streams_.erase(it); 179 streams_.erase(it);
177 } 180 }
178 181
179 void MediaStreamDispatcherHost::OnEnumerateDevices( 182 void MediaStreamDispatcherHost::OnEnumerateDevices(
180 int render_view_id, 183 int render_view_id,
181 int page_request_id, 184 int page_request_id,
182 MediaStreamType type, 185 MediaStreamType type,
183 const GURL& security_origin) { 186 const GURL& security_origin) {
184 DVLOG(1) << "MediaStreamDispatcherHost::OnEnumerateDevices(" 187 DVLOG(1) << "MediaStreamDispatcherHost::OnEnumerateDevices("
185 << render_view_id << ", " 188 << render_view_id << ", "
186 << page_request_id << ", " 189 << page_request_id << ", "
187 << type << ", " 190 << type << ", "
188 << security_origin.spec() << ")"; 191 << security_origin.spec() << ")";
189 192
190 const std::string& label = GetManager()->EnumerateDevices( 193 const std::string& label = media_stream_manager_->EnumerateDevices(
191 this, render_process_id_, render_view_id, type, security_origin); 194 this, render_process_id_, render_view_id, type, security_origin);
192 DCHECK(!label.empty()); 195 DCHECK(!label.empty());
193 streams_[label] = StreamRequest(render_view_id, page_request_id); 196 streams_[label] = StreamRequest(render_view_id, page_request_id);
194 } 197 }
195 198
196 void MediaStreamDispatcherHost::OnOpenDevice( 199 void MediaStreamDispatcherHost::OnOpenDevice(
197 int render_view_id, 200 int render_view_id,
198 int page_request_id, 201 int page_request_id,
199 const std::string& device_id, 202 const std::string& device_id,
200 MediaStreamType type, 203 MediaStreamType type,
201 const GURL& security_origin) { 204 const GURL& security_origin) {
202 DVLOG(1) << "MediaStreamDispatcherHost::OnOpenDevice(" 205 DVLOG(1) << "MediaStreamDispatcherHost::OnOpenDevice("
203 << render_view_id << ", " 206 << render_view_id << ", "
204 << page_request_id << ", device_id: " 207 << page_request_id << ", device_id: "
205 << device_id.c_str() << ", type: " 208 << device_id.c_str() << ", type: "
206 << type << ", " 209 << type << ", "
207 << security_origin.spec() << ")"; 210 << security_origin.spec() << ")";
208 211
209 const std::string& label = GetManager()->OpenDevice( 212 const std::string& label = media_stream_manager_->OpenDevice(
210 this, render_process_id_, render_view_id, 213 this, render_process_id_, render_view_id,
211 device_id, type, security_origin); 214 device_id, type, security_origin);
212 DCHECK(!label.empty()); 215 DCHECK(!label.empty());
213 streams_[label] = StreamRequest(render_view_id, page_request_id); 216 streams_[label] = StreamRequest(render_view_id, page_request_id);
214 } 217 }
215 218
216 MediaStreamManager* MediaStreamDispatcherHost::GetManager() {
217 return BrowserMainLoop::GetMediaStreamManager();
218 }
219
220 } // namespace content 219 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698