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

Side by Side Diff: content/renderer/media/media_stream_dispatcher.cc

Issue 18420011: Support cancellation of request for opening device. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 7 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 | 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/renderer/media/media_stream_dispatcher.h" 5 #include "content/renderer/media/media_stream_dispatcher.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/message_loop/message_loop_proxy.h" 8 #include "base/message_loop/message_loop_proxy.h"
9 #include "content/common/media/media_stream_messages.h" 9 #include "content/common/media/media_stream_messages.h"
10 #include "content/renderer/media/media_stream_dispatcher_eventhandler.h" 10 #include "content/renderer/media/media_stream_dispatcher_eventhandler.h"
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 DCHECK(main_loop_->BelongsToCurrentThread()); 78 DCHECK(main_loop_->BelongsToCurrentThread());
79 DVLOG(1) << "MediaStreamDispatcher::GenerateStream(" << request_id << ")"; 79 DVLOG(1) << "MediaStreamDispatcher::GenerateStream(" << request_id << ")";
80 80
81 requests_.push_back(Request(event_handler, request_id, next_ipc_id_)); 81 requests_.push_back(Request(event_handler, request_id, next_ipc_id_));
82 Send(new MediaStreamHostMsg_GenerateStream(routing_id(), 82 Send(new MediaStreamHostMsg_GenerateStream(routing_id(),
83 next_ipc_id_++, 83 next_ipc_id_++,
84 components, 84 components,
85 security_origin)); 85 security_origin));
86 } 86 }
87 87
88 void MediaStreamDispatcher::CancelGenerateStream(int request_id) { 88 void MediaStreamDispatcher::CancelGenerateStream(
89 int request_id,
90 const base::WeakPtr<MediaStreamDispatcherEventHandler>& event_handler) {
89 DCHECK(main_loop_->BelongsToCurrentThread()); 91 DCHECK(main_loop_->BelongsToCurrentThread());
90 DVLOG(1) << "MediaStreamDispatcher::CancelGenerateStream" 92 DVLOG(1) << "MediaStreamDispatcher::CancelGenerateStream"
91 << ", {request_id = " << request_id << "}"; 93 << ", {request_id = " << request_id << "}";
92 94
93 RequestList::iterator it = requests_.begin(); 95 RequestList::iterator it = requests_.begin();
94 for (; it != requests_.end(); ++it) { 96 for (; it != requests_.end(); ++it) {
95 Request& request = *it; 97 if (it->request_id == request_id &&
96 if (request.request_id == request_id) { 98 it->handler.get() == event_handler.get()) {
tommi (sloooow) - chröme 2013/07/03 08:05:12 is this the right thing to do? it seems to me tha
wjia(left Chromium) 2013/07/03 17:41:36 Yes, it's the right thing to do. The request_id is
99 int ipc_request = it->ipc_request;
97 requests_.erase(it); 100 requests_.erase(it);
98 Send(new MediaStreamHostMsg_CancelGenerateStream(routing_id(), 101 Send(new MediaStreamHostMsg_CancelGenerateStream(routing_id(),
99 request_id)); 102 ipc_request));
100 break; 103 break;
101 } 104 }
102 } 105 }
103 } 106 }
104 107
105 void MediaStreamDispatcher::StopStream(const std::string& label) { 108 void MediaStreamDispatcher::StopStream(const std::string& label) {
106 DCHECK(main_loop_->BelongsToCurrentThread()); 109 DCHECK(main_loop_->BelongsToCurrentThread());
107 DVLOG(1) << "MediaStreamDispatcher::StopStream" 110 DVLOG(1) << "MediaStreamDispatcher::StopStream"
108 << ", {label = " << label << "}"; 111 << ", {label = " << label << "}";
109 112
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 DVLOG(1) << "MediaStreamDispatcher::OpenDevice(" << request_id << ")"; 193 DVLOG(1) << "MediaStreamDispatcher::OpenDevice(" << request_id << ")";
191 194
192 requests_.push_back(Request(event_handler, request_id, next_ipc_id_)); 195 requests_.push_back(Request(event_handler, request_id, next_ipc_id_));
193 Send(new MediaStreamHostMsg_OpenDevice(routing_id(), 196 Send(new MediaStreamHostMsg_OpenDevice(routing_id(),
194 next_ipc_id_++, 197 next_ipc_id_++,
195 device_id, 198 device_id,
196 type, 199 type,
197 security_origin)); 200 security_origin));
198 } 201 }
199 202
203 void MediaStreamDispatcher::CancelOpenDevice(
204 int request_id,
205 const base::WeakPtr<MediaStreamDispatcherEventHandler>& event_handler) {
206 CancelGenerateStream(request_id, event_handler);
207 }
208
200 void MediaStreamDispatcher::CloseDevice(const std::string& label) { 209 void MediaStreamDispatcher::CloseDevice(const std::string& label) {
201 DCHECK(main_loop_->BelongsToCurrentThread()); 210 DCHECK(main_loop_->BelongsToCurrentThread());
202 DVLOG(1) << "MediaStreamDispatcher::CloseDevice" 211 DVLOG(1) << "MediaStreamDispatcher::CloseDevice"
203 << ", {label = " << label << "}"; 212 << ", {label = " << label << "}";
204 213
205 StopStream(label); 214 StopStream(label);
206 } 215 }
207 216
208 bool MediaStreamDispatcher::Send(IPC::Message* message) { 217 bool MediaStreamDispatcher::Send(IPC::Message* message) {
209 if (!RenderThread::Get()) { 218 if (!RenderThread::Get()) {
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
396 int index) { 405 int index) {
397 LabelStreamMap::iterator it = label_stream_map_.find(label); 406 LabelStreamMap::iterator it = label_stream_map_.find(label);
398 if (it == label_stream_map_.end()) 407 if (it == label_stream_map_.end())
399 return StreamDeviceInfo::kNoId; 408 return StreamDeviceInfo::kNoId;
400 409
401 DCHECK_GT(it->second.video_array.size(), static_cast<size_t>(index)); 410 DCHECK_GT(it->second.video_array.size(), static_cast<size_t>(index));
402 return it->second.video_array[index].session_id; 411 return it->second.video_array[index].session_id;
403 } 412 }
404 413
405 } // namespace content 414 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/media_stream_dispatcher.h ('k') | content/renderer/media/media_stream_dispatcher_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698