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

Side by Side Diff: chrome/browser/extensions/api/webrtc_audio_private/webrtc_audio_private_api.cc

Issue 2825963003: Rewrite base::Bind to base::BindOnce with base_bind_rewriters in //chrome/browser/extensions (Closed)
Patch Set: Created 3 years, 8 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 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 <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 WebrtcAudioPrivateFunction::~WebrtcAudioPrivateFunction() { 111 WebrtcAudioPrivateFunction::~WebrtcAudioPrivateFunction() {
112 } 112 }
113 113
114 void WebrtcAudioPrivateFunction::GetOutputDeviceDescriptions() { 114 void WebrtcAudioPrivateFunction::GetOutputDeviceDescriptions() {
115 scoped_refptr<base::SingleThreadTaskRunner> audio_manager_runner = 115 scoped_refptr<base::SingleThreadTaskRunner> audio_manager_runner =
116 AudioManager::Get()->GetTaskRunner(); 116 AudioManager::Get()->GetTaskRunner();
117 if (!audio_manager_runner->BelongsToCurrentThread()) { 117 if (!audio_manager_runner->BelongsToCurrentThread()) {
118 DCHECK_CURRENTLY_ON(BrowserThread::UI); 118 DCHECK_CURRENTLY_ON(BrowserThread::UI);
119 audio_manager_runner->PostTask( 119 audio_manager_runner->PostTask(
120 FROM_HERE, 120 FROM_HERE,
121 base::Bind(&WebrtcAudioPrivateFunction::GetOutputDeviceDescriptions, 121 base::BindOnce(&WebrtcAudioPrivateFunction::GetOutputDeviceDescriptions,
122 this)); 122 this));
123 return; 123 return;
124 } 124 }
125 125
126 std::unique_ptr<AudioDeviceDescriptions> device_descriptions = 126 std::unique_ptr<AudioDeviceDescriptions> device_descriptions =
127 base::MakeUnique<AudioDeviceDescriptions>(); 127 base::MakeUnique<AudioDeviceDescriptions>();
128 AudioManager::Get()->GetAudioOutputDeviceDescriptions( 128 AudioManager::Get()->GetAudioOutputDeviceDescriptions(
129 device_descriptions.get()); 129 device_descriptions.get());
130 130
131 BrowserThread::PostTask( 131 BrowserThread::PostTask(
132 BrowserThread::IO, FROM_HERE, 132 BrowserThread::IO, FROM_HERE,
133 base::Bind(&WebrtcAudioPrivateFunction::OnOutputDeviceDescriptions, this, 133 base::BindOnce(&WebrtcAudioPrivateFunction::OnOutputDeviceDescriptions,
134 base::Passed(&device_descriptions))); 134 this, base::Passed(&device_descriptions)));
135 } 135 }
136 136
137 void WebrtcAudioPrivateFunction::OnOutputDeviceDescriptions( 137 void WebrtcAudioPrivateFunction::OnOutputDeviceDescriptions(
138 std::unique_ptr<AudioDeviceDescriptions> device_descriptions) { 138 std::unique_ptr<AudioDeviceDescriptions> device_descriptions) {
139 NOTREACHED(); 139 NOTREACHED();
140 } 140 }
141 141
142 bool WebrtcAudioPrivateFunction::GetControllerList(const RequestInfo& request) { 142 bool WebrtcAudioPrivateFunction::GetControllerList(const RequestInfo& request) {
143 content::RenderProcessHost* rph = nullptr; 143 content::RenderProcessHost* rph = nullptr;
144 144
(...skipping 25 matching lines...) Expand all
170 } 170 }
171 171
172 void WebrtcAudioPrivateFunction::OnControllerList( 172 void WebrtcAudioPrivateFunction::OnControllerList(
173 const content::RenderProcessHost::AudioOutputControllerList& list) { 173 const content::RenderProcessHost::AudioOutputControllerList& list) {
174 NOTREACHED(); 174 NOTREACHED();
175 } 175 }
176 176
177 void WebrtcAudioPrivateFunction::CalculateHMAC(const std::string& raw_id) { 177 void WebrtcAudioPrivateFunction::CalculateHMAC(const std::string& raw_id) {
178 if (!BrowserThread::CurrentlyOn(BrowserThread::IO)) { 178 if (!BrowserThread::CurrentlyOn(BrowserThread::IO)) {
179 BrowserThread::PostTask( 179 BrowserThread::PostTask(
180 BrowserThread::IO, 180 BrowserThread::IO, FROM_HERE,
181 FROM_HERE, 181 base::BindOnce(&WebrtcAudioPrivateFunction::CalculateHMAC, this,
182 base::Bind(&WebrtcAudioPrivateFunction::CalculateHMAC, this, raw_id)); 182 raw_id));
183 return; 183 return;
184 } 184 }
185 185
186 std::string hmac = CalculateHMACImpl(raw_id); 186 std::string hmac = CalculateHMACImpl(raw_id);
187 BrowserThread::PostTask( 187 BrowserThread::PostTask(
188 BrowserThread::UI, 188 BrowserThread::UI, FROM_HERE,
189 FROM_HERE, 189 base::BindOnce(&WebrtcAudioPrivateFunction::OnHMACCalculated, this,
190 base::Bind(&WebrtcAudioPrivateFunction::OnHMACCalculated, this, hmac)); 190 hmac));
191 } 191 }
192 192
193 void WebrtcAudioPrivateFunction::OnHMACCalculated(const std::string& hmac) { 193 void WebrtcAudioPrivateFunction::OnHMACCalculated(const std::string& hmac) {
194 NOTREACHED(); 194 NOTREACHED();
195 } 195 }
196 196
197 std::string WebrtcAudioPrivateFunction::CalculateHMACImpl( 197 std::string WebrtcAudioPrivateFunction::CalculateHMACImpl(
198 const std::string& raw_id) { 198 const std::string& raw_id) {
199 DCHECK_CURRENTLY_ON(BrowserThread::IO); 199 DCHECK_CURRENTLY_ON(BrowserThread::IO);
200 200
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
282 // than the UI thread, on which an AsyncExtensionFunction otherwise 282 // than the UI thread, on which an AsyncExtensionFunction otherwise
283 // normally runs) because there is one instance of this object per 283 // normally runs) because there is one instance of this object per
284 // function call, no actor outside of this object is modifying the 284 // function call, no actor outside of this object is modifying the
285 // results_ member, and the different method invocations on this 285 // results_ member, and the different method invocations on this
286 // object run strictly in sequence; first RunAsync on the UI thread, 286 // object run strictly in sequence; first RunAsync on the UI thread,
287 // then DoQuery on the audio IO thread, then DoneOnUIThread on the 287 // then DoQuery on the audio IO thread, then DoneOnUIThread on the
288 // UI thread. 288 // UI thread.
289 results_ = wap::GetSinks::Results::Create(results); 289 results_ = wap::GetSinks::Results::Create(results);
290 290
291 BrowserThread::PostTask( 291 BrowserThread::PostTask(
292 BrowserThread::UI, 292 BrowserThread::UI, FROM_HERE,
293 FROM_HERE, 293 base::BindOnce(&WebrtcAudioPrivateGetSinksFunction::DoneOnUIThread,
294 base::Bind(&WebrtcAudioPrivateGetSinksFunction::DoneOnUIThread, this)); 294 this));
295 } 295 }
296 296
297 void WebrtcAudioPrivateGetSinksFunction::DoneOnUIThread() { 297 void WebrtcAudioPrivateGetSinksFunction::DoneOnUIThread() {
298 SendResponse(true); 298 SendResponse(true);
299 } 299 }
300 300
301 bool WebrtcAudioPrivateGetActiveSinkFunction::RunAsync() { 301 bool WebrtcAudioPrivateGetActiveSinkFunction::RunAsync() {
302 DCHECK_CURRENTLY_ON(BrowserThread::UI); 302 DCHECK_CURRENTLY_ON(BrowserThread::UI);
303 InitDeviceIDSalt(); 303 InitDeviceIDSalt();
304 304
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
432 controllers_.begin(); 432 controllers_.begin();
433 for (; it != controllers_.end(); ++it) { 433 for (; it != controllers_.end(); ++it) {
434 (*it)->SwitchOutputDevice(raw_sink_id, base::Bind( 434 (*it)->SwitchOutputDevice(raw_sink_id, base::Bind(
435 &WebrtcAudioPrivateSetActiveSinkFunction::SwitchDone, this)); 435 &WebrtcAudioPrivateSetActiveSinkFunction::SwitchDone, this));
436 } 436 }
437 } 437 }
438 438
439 void WebrtcAudioPrivateSetActiveSinkFunction::SwitchDone() { 439 void WebrtcAudioPrivateSetActiveSinkFunction::SwitchDone() {
440 if (--num_remaining_sink_ids_ == 0) { 440 if (--num_remaining_sink_ids_ == 0) {
441 BrowserThread::PostTask( 441 BrowserThread::PostTask(
442 BrowserThread::UI, 442 BrowserThread::UI, FROM_HERE,
443 FROM_HERE, 443 base::BindOnce(&WebrtcAudioPrivateSetActiveSinkFunction::DoneOnUIThread,
444 base::Bind(&WebrtcAudioPrivateSetActiveSinkFunction::DoneOnUIThread, 444 this));
445 this));
446 } 445 }
447 } 446 }
448 447
449 void WebrtcAudioPrivateSetActiveSinkFunction::DoneOnUIThread() { 448 void WebrtcAudioPrivateSetActiveSinkFunction::DoneOnUIThread() {
450 SendResponse(true); 449 SendResponse(true);
451 } 450 }
452 451
453 WebrtcAudioPrivateGetAssociatedSinkFunction:: 452 WebrtcAudioPrivateGetAssociatedSinkFunction::
454 WebrtcAudioPrivateGetAssociatedSinkFunction() { 453 WebrtcAudioPrivateGetAssociatedSinkFunction() {
455 } 454 }
456 455
457 WebrtcAudioPrivateGetAssociatedSinkFunction:: 456 WebrtcAudioPrivateGetAssociatedSinkFunction::
458 ~WebrtcAudioPrivateGetAssociatedSinkFunction() { 457 ~WebrtcAudioPrivateGetAssociatedSinkFunction() {
459 } 458 }
460 459
461 bool WebrtcAudioPrivateGetAssociatedSinkFunction::RunAsync() { 460 bool WebrtcAudioPrivateGetAssociatedSinkFunction::RunAsync() {
462 params_ = wap::GetAssociatedSink::Params::Create(*args_); 461 params_ = wap::GetAssociatedSink::Params::Create(*args_);
463 DCHECK_CURRENTLY_ON(BrowserThread::UI); 462 DCHECK_CURRENTLY_ON(BrowserThread::UI);
464 EXTENSION_FUNCTION_VALIDATE(params_.get()); 463 EXTENSION_FUNCTION_VALIDATE(params_.get());
465 464
466 InitDeviceIDSalt(); 465 InitDeviceIDSalt();
467 466
468 AudioManager::Get()->GetTaskRunner()->PostTask( 467 AudioManager::Get()->GetTaskRunner()->PostTask(
469 FROM_HERE, 468 FROM_HERE, base::BindOnce(&WebrtcAudioPrivateGetAssociatedSinkFunction::
470 base::Bind(&WebrtcAudioPrivateGetAssociatedSinkFunction:: 469 GetDevicesOnDeviceThread,
471 GetDevicesOnDeviceThread, this)); 470 this));
472 471
473 return true; 472 return true;
474 } 473 }
475 474
476 void WebrtcAudioPrivateGetAssociatedSinkFunction::GetDevicesOnDeviceThread() { 475 void WebrtcAudioPrivateGetAssociatedSinkFunction::GetDevicesOnDeviceThread() {
477 DCHECK(AudioManager::Get()->GetTaskRunner()->BelongsToCurrentThread()); 476 DCHECK(AudioManager::Get()->GetTaskRunner()->BelongsToCurrentThread());
478 AudioManager::Get()->GetAudioInputDeviceDescriptions(&source_devices_); 477 AudioManager::Get()->GetAudioInputDeviceDescriptions(&source_devices_);
479 478
480 BrowserThread::PostTask( 479 BrowserThread::PostTask(
481 BrowserThread::IO, 480 BrowserThread::IO, FROM_HERE,
482 FROM_HERE, 481 base::BindOnce(&WebrtcAudioPrivateGetAssociatedSinkFunction::
483 base::Bind(&WebrtcAudioPrivateGetAssociatedSinkFunction:: 482 GetRawSourceIDOnIOThread,
484 GetRawSourceIDOnIOThread, 483 this));
485 this));
486 } 484 }
487 485
488 void 486 void
489 WebrtcAudioPrivateGetAssociatedSinkFunction::GetRawSourceIDOnIOThread() { 487 WebrtcAudioPrivateGetAssociatedSinkFunction::GetRawSourceIDOnIOThread() {
490 DCHECK_CURRENTLY_ON(BrowserThread::IO); 488 DCHECK_CURRENTLY_ON(BrowserThread::IO);
491 489
492 url::Origin security_origin(GURL(params_->security_origin)); 490 url::Origin security_origin(GURL(params_->security_origin));
493 std::string source_id_in_origin(params_->source_id_in_origin); 491 std::string source_id_in_origin(params_->source_id_in_origin);
494 492
495 // Find the raw source ID for source_id_in_origin. 493 // Find the raw source ID for source_id_in_origin.
496 std::string raw_source_id; 494 std::string raw_source_id;
497 for (AudioDeviceDescriptions::const_iterator it = source_devices_.begin(); 495 for (AudioDeviceDescriptions::const_iterator it = source_devices_.begin();
498 it != source_devices_.end(); ++it) { 496 it != source_devices_.end(); ++it) {
499 const std::string& id = it->unique_id; 497 const std::string& id = it->unique_id;
500 if (content::DoesMediaDeviceIDMatchHMAC(device_id_salt(), security_origin, 498 if (content::DoesMediaDeviceIDMatchHMAC(device_id_salt(), security_origin,
501 source_id_in_origin, id)) { 499 source_id_in_origin, id)) {
502 raw_source_id = id; 500 raw_source_id = id;
503 DVLOG(2) << "Found raw ID " << raw_source_id 501 DVLOG(2) << "Found raw ID " << raw_source_id
504 << " for source ID in origin " << source_id_in_origin; 502 << " for source ID in origin " << source_id_in_origin;
505 break; 503 break;
506 } 504 }
507 } 505 }
508 506
509 AudioManager::Get()->GetTaskRunner()->PostTask( 507 AudioManager::Get()->GetTaskRunner()->PostTask(
510 FROM_HERE, 508 FROM_HERE, base::BindOnce(&WebrtcAudioPrivateGetAssociatedSinkFunction::
511 base::Bind(&WebrtcAudioPrivateGetAssociatedSinkFunction:: 509 GetAssociatedSinkOnDeviceThread,
512 GetAssociatedSinkOnDeviceThread, 510 this, raw_source_id));
513 this,
514 raw_source_id));
515 } 511 }
516 512
517 void 513 void
518 WebrtcAudioPrivateGetAssociatedSinkFunction::GetAssociatedSinkOnDeviceThread( 514 WebrtcAudioPrivateGetAssociatedSinkFunction::GetAssociatedSinkOnDeviceThread(
519 const std::string& raw_source_id) { 515 const std::string& raw_source_id) {
520 DCHECK(AudioManager::Get()->GetTaskRunner()->BelongsToCurrentThread()); 516 DCHECK(AudioManager::Get()->GetTaskRunner()->BelongsToCurrentThread());
521 517
522 // We return an empty string if there is no associated output device. 518 // We return an empty string if there is no associated output device.
523 std::string raw_sink_id; 519 std::string raw_sink_id;
524 if (!raw_source_id.empty()) { 520 if (!raw_source_id.empty()) {
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
564 } 560 }
565 561
566 host->SetEchoCanceller3(*params->audio_experiments.enable_aec3); 562 host->SetEchoCanceller3(*params->audio_experiments.enable_aec3);
567 } 563 }
568 564
569 SendResponse(true); 565 SendResponse(true);
570 return true; 566 return true;
571 } 567 }
572 568
573 } // namespace extensions 569 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698