| OLD | NEW |
| 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_ui_controller.h" | 5 #include "content/browser/renderer_host/media/media_stream_ui_controller.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/callback.h" | 10 #include "base/callback.h" |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 64 | 64 |
| 65 } // namespace | 65 } // namespace |
| 66 | 66 |
| 67 // UI request contains all data needed to keep track of requests between the | 67 // UI request contains all data needed to keep track of requests between the |
| 68 // different calls. | 68 // different calls. |
| 69 class MediaStreamRequestForUI : public MediaStreamRequest { | 69 class MediaStreamRequestForUI : public MediaStreamRequest { |
| 70 public: | 70 public: |
| 71 MediaStreamRequestForUI(int render_pid, | 71 MediaStreamRequestForUI(int render_pid, |
| 72 int render_vid, | 72 int render_vid, |
| 73 const GURL& origin, | 73 const GURL& origin, |
| 74 const StreamOptions& options) | 74 const StreamOptions& options, |
| 75 : MediaStreamRequest(render_pid, render_vid, origin), | 75 MediaStreamRequestType request_type) |
| 76 : MediaStreamRequest(render_pid, render_vid, origin, request_type), |
| 76 wait_for_audio(IsAudioMediaType(options.audio_type)), | 77 wait_for_audio(IsAudioMediaType(options.audio_type)), |
| 77 wait_for_video(IsVideoMediaType(options.video_type)), | 78 wait_for_video(IsVideoMediaType(options.video_type)), |
| 78 posted_task(false) { | 79 posted_task(false) { |
| 79 DCHECK(wait_for_audio || wait_for_video); | 80 DCHECK(wait_for_audio || wait_for_video); |
| 80 } | 81 } |
| 81 | 82 |
| 82 ~MediaStreamRequestForUI() {} | 83 ~MediaStreamRequestForUI() {} |
| 83 | 84 |
| 84 bool IsRequestReadyForView() const { | 85 bool IsRequestReadyForView() const { |
| 85 if (wait_for_audio || wait_for_video) | 86 if (wait_for_audio || wait_for_video) |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 128 DCHECK(requester_); | 129 DCHECK(requester_); |
| 129 } | 130 } |
| 130 | 131 |
| 131 MediaStreamUIController::~MediaStreamUIController() { | 132 MediaStreamUIController::~MediaStreamUIController() { |
| 132 DCHECK(requests_.empty()); | 133 DCHECK(requests_.empty()); |
| 133 } | 134 } |
| 134 | 135 |
| 135 void MediaStreamUIController::MakeUIRequest( | 136 void MediaStreamUIController::MakeUIRequest( |
| 136 const std::string& label, int render_process_id, int render_view_id, | 137 const std::string& label, int render_process_id, int render_view_id, |
| 137 const StreamOptions& request_options, | 138 const StreamOptions& request_options, |
| 138 const GURL& security_origin) { | 139 const GURL& security_origin, MediaStreamRequestType request_type) { |
| 139 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 140 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 140 | 141 |
| 141 // Create a new request. | 142 // Create a new request. |
| 142 if (!requests_.insert( | 143 if (!requests_.insert( |
| 143 std::make_pair(label, new MediaStreamRequestForUI( | 144 std::make_pair(label, new MediaStreamRequestForUI( |
| 144 render_process_id, render_view_id, security_origin, | 145 render_process_id, render_view_id, security_origin, |
| 145 request_options))).second) { | 146 request_options, request_type))).second) { |
| 146 NOTREACHED(); | 147 NOTREACHED(); |
| 147 } | 148 } |
| 148 } | 149 } |
| 149 | 150 |
| 150 void MediaStreamUIController::CancelUIRequest(const std::string& label) { | 151 void MediaStreamUIController::CancelUIRequest(const std::string& label) { |
| 151 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 152 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 152 UIRequests::iterator request_iter = requests_.find(label); | 153 UIRequests::iterator request_iter = requests_.find(label); |
| 153 if (request_iter != requests_.end()) { | 154 if (request_iter != requests_.end()) { |
| 154 // Proceed the next pending request for the same page. | 155 // Proceed the next pending request for the same page. |
| 155 scoped_ptr<MediaStreamRequestForUI> request(request_iter->second); | 156 scoped_ptr<MediaStreamRequestForUI> request(request_iter->second); |
| (...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 371 } | 372 } |
| 372 } | 373 } |
| 373 | 374 |
| 374 BrowserThread::PostTask( | 375 BrowserThread::PostTask( |
| 375 BrowserThread::IO, FROM_HERE, | 376 BrowserThread::IO, FROM_HERE, |
| 376 base::Bind(&MediaStreamUIController::PostResponse, | 377 base::Bind(&MediaStreamUIController::PostResponse, |
| 377 weak_ptr_factory_.GetWeakPtr(), label, devices_to_use)); | 378 weak_ptr_factory_.GetWeakPtr(), label, devices_to_use)); |
| 378 } | 379 } |
| 379 | 380 |
| 380 } // namespace content | 381 } // namespace content |
| OLD | NEW |