OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_privat
e_api.h" | 5 #include "chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_privat
e_api.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/lazy_instance.h" | 10 #include "base/lazy_instance.h" |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
133 std::unique_ptr<AudioDeviceNames> device_names) { | 133 std::unique_ptr<AudioDeviceNames> device_names) { |
134 NOTREACHED(); | 134 NOTREACHED(); |
135 } | 135 } |
136 | 136 |
137 bool WebrtcAudioPrivateFunction::GetControllerList(const RequestInfo& request) { | 137 bool WebrtcAudioPrivateFunction::GetControllerList(const RequestInfo& request) { |
138 content::RenderProcessHost* rph = nullptr; | 138 content::RenderProcessHost* rph = nullptr; |
139 | 139 |
140 // If |guest_process_id| is defined, directly use this id to find the | 140 // If |guest_process_id| is defined, directly use this id to find the |
141 // corresponding RenderProcessHost. | 141 // corresponding RenderProcessHost. |
142 if (request.guest_process_id.get()) { | 142 if (request.guest_process_id.get()) { |
143 rph = content::RenderProcessHost::FromID(*request.guest_process_id.get()); | 143 rph = content::RenderProcessHost::FromID(*request.guest_process_id); |
144 } else if (request.tab_id.get()) { | 144 } else if (request.tab_id.get()) { |
145 int tab_id = *request.tab_id.get(); | 145 int tab_id = *request.tab_id; |
146 content::WebContents* contents = NULL; | 146 content::WebContents* contents = NULL; |
147 if (!ExtensionTabUtil::GetTabById(tab_id, GetProfile(), true, NULL, NULL, | 147 if (!ExtensionTabUtil::GetTabById(tab_id, GetProfile(), true, NULL, NULL, |
148 &contents, NULL)) { | 148 &contents, NULL)) { |
149 error_ = extensions::ErrorUtils::FormatErrorMessage( | 149 error_ = extensions::ErrorUtils::FormatErrorMessage( |
150 extensions::tabs_constants::kTabNotFoundError, | 150 extensions::tabs_constants::kTabNotFoundError, |
151 base::IntToString(tab_id)); | 151 base::IntToString(tab_id)); |
152 return false; | 152 return false; |
153 } | 153 } |
154 rph = contents->GetRenderProcessHost(); | 154 rph = contents->GetRenderProcessHost(); |
155 } else { | 155 } else { |
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
316 bool WebrtcAudioPrivateSetActiveSinkFunction::RunAsync() { | 316 bool WebrtcAudioPrivateSetActiveSinkFunction::RunAsync() { |
317 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 317 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
318 std::unique_ptr<wap::SetActiveSink::Params> params( | 318 std::unique_ptr<wap::SetActiveSink::Params> params( |
319 wap::SetActiveSink::Params::Create(*args_)); | 319 wap::SetActiveSink::Params::Create(*args_)); |
320 EXTENSION_FUNCTION_VALIDATE(params.get()); | 320 EXTENSION_FUNCTION_VALIDATE(params.get()); |
321 | 321 |
322 InitDeviceIDSalt(); | 322 InitDeviceIDSalt(); |
323 | 323 |
324 if (params->request.guest_process_id.get()) { | 324 if (params->request.guest_process_id.get()) { |
325 request_info_.guest_process_id.reset( | 325 request_info_.guest_process_id.reset( |
326 new int(*params->request.guest_process_id.get())); | 326 new int(*params->request.guest_process_id)); |
327 } else if (params->request.tab_id.get()) { | 327 } else if (params->request.tab_id.get()) { |
328 request_info_.tab_id.reset(new int(*params->request.tab_id.get())); | 328 request_info_.tab_id.reset(new int(*params->request.tab_id)); |
329 } else { | 329 } else { |
330 return false; | 330 return false; |
331 } | 331 } |
332 | 332 |
333 sink_id_ = params->sink_id; | 333 sink_id_ = params->sink_id; |
334 | 334 |
335 return GetControllerList(request_info_); | 335 return GetControllerList(request_info_); |
336 } | 336 } |
337 | 337 |
338 void WebrtcAudioPrivateSetActiveSinkFunction::OnControllerList( | 338 void WebrtcAudioPrivateSetActiveSinkFunction::OnControllerList( |
339 const RenderProcessHost::AudioOutputControllerList& controllers) { | 339 const RenderProcessHost::AudioOutputControllerList& controllers) { |
340 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 340 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
341 | 341 |
342 std::string requested_process_type; | 342 std::string requested_process_type; |
343 int requested_process_id; | 343 int requested_process_id; |
344 if (request_info_.guest_process_id.get()) { | 344 if (request_info_.guest_process_id.get()) { |
345 requested_process_type = "guestProcessId"; | 345 requested_process_type = "guestProcessId"; |
346 requested_process_id = *request_info_.guest_process_id.get(); | 346 requested_process_id = *request_info_.guest_process_id; |
347 } else { | 347 } else { |
348 requested_process_type = "tabId"; | 348 requested_process_type = "tabId"; |
349 requested_process_id = *request_info_.tab_id.get(); | 349 requested_process_id = *request_info_.tab_id; |
350 } | 350 } |
351 | 351 |
352 controllers_ = controllers; | 352 controllers_ = controllers; |
353 num_remaining_sink_ids_ = controllers_.size(); | 353 num_remaining_sink_ids_ = controllers_.size(); |
354 if (num_remaining_sink_ids_ == 0) { | 354 if (num_remaining_sink_ids_ == 0) { |
355 error_ = extensions::ErrorUtils::FormatErrorMessage( | 355 error_ = extensions::ErrorUtils::FormatErrorMessage( |
356 "No active stream for " + requested_process_type + " *", | 356 "No active stream for " + requested_process_type + " *", |
357 base::IntToString(requested_process_id)); | 357 base::IntToString(requested_process_id)); |
358 SendResponse(false); | 358 SendResponse(false); |
359 } else { | 359 } else { |
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
497 results_.reset(wap::GetAssociatedSink::Results::Create("").release()); | 497 results_.reset(wap::GetAssociatedSink::Results::Create("").release()); |
498 } else { | 498 } else { |
499 results_.reset( | 499 results_.reset( |
500 wap::GetAssociatedSink::Results::Create(associated_sink_id).release()); | 500 wap::GetAssociatedSink::Results::Create(associated_sink_id).release()); |
501 } | 501 } |
502 | 502 |
503 SendResponse(true); | 503 SendResponse(true); |
504 } | 504 } |
505 | 505 |
506 } // namespace extensions | 506 } // namespace extensions |
OLD | NEW |