| Index: content/browser/renderer_host/media/audio_output_authorization_handler.cc
|
| diff --git a/content/browser/renderer_host/media/audio_output_authorization_handler.cc b/content/browser/renderer_host/media/audio_output_authorization_handler.cc
|
| index cd9f959e138ceedf9a1b80e994ddebed8c08c2e0..3ed7c30445627901b506246d40efec36a491ad9e 100644
|
| --- a/content/browser/renderer_host/media/audio_output_authorization_handler.cc
|
| +++ b/content/browser/renderer_host/media/audio_output_authorization_handler.cc
|
| @@ -10,6 +10,7 @@
|
| #include "content/browser/renderer_host/media/audio_input_device_manager.h"
|
| #include "content/public/browser/browser_thread.h"
|
| #include "content/public/browser/media_device_id.h"
|
| +#include "media/audio/audio_system.h"
|
| #include "media/base/limits.h"
|
|
|
| namespace {
|
| @@ -34,26 +35,16 @@ media::AudioParameters TryToFixAudioParameters(
|
| : media::AudioParameters::UnavailableDeviceParams();
|
| }
|
|
|
| -media::AudioParameters GetDeviceParametersOnDeviceThread(
|
| - media::AudioManager* audio_manager,
|
| - const std::string& unique_id) {
|
| - DCHECK(audio_manager->GetTaskRunner()->BelongsToCurrentThread());
|
| -
|
| - return media::AudioDeviceDescription::IsDefaultDevice(unique_id)
|
| - ? audio_manager->GetDefaultOutputStreamParameters()
|
| - : audio_manager->GetOutputStreamParameters(unique_id);
|
| -}
|
| -
|
| } // namespace
|
|
|
| namespace content {
|
|
|
| AudioOutputAuthorizationHandler::AudioOutputAuthorizationHandler(
|
| - media::AudioManager* audio_manager,
|
| + media::AudioSystem* audio_system,
|
| MediaStreamManager* media_stream_manager,
|
| int render_process_id,
|
| const std::string& salt)
|
| - : audio_manager_(audio_manager),
|
| + : audio_system_(audio_system),
|
| media_stream_manager_(media_stream_manager),
|
| permission_checker_(base::MakeUnique<MediaDevicesPermissionChecker>()),
|
| render_process_id_(render_process_id),
|
| @@ -191,18 +182,8 @@ void AudioOutputAuthorizationHandler::GetDeviceParameters(
|
| const std::string& raw_device_id) const {
|
| DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
| DCHECK(!raw_device_id.empty());
|
| - base::PostTaskAndReplyWithResult(
|
| - // Note: In the case of a shutdown, the task to delete |audio_manager_| is
|
| - // posted to the audio thread after the IO thread is stopped, so the task
|
| - // to delete the audio manager hasn't been posted yet. This means that
|
| - // unretained is safe here.
|
| - // Mac is a special case. Since the audio manager lives on the UI thread
|
| - // on Mac, this task is posted to the UI thread, but tasks posted to the
|
| - // UI task runner will be ignored when the shutdown has progressed to
|
| - // deleting the audio manager, so this is still safe.
|
| - audio_manager_->GetTaskRunner(), FROM_HERE,
|
| - base::Bind(&GetDeviceParametersOnDeviceThread,
|
| - base::Unretained(audio_manager_), raw_device_id),
|
| + audio_system_->GetOutputStreamParameters(
|
| + raw_device_id,
|
| base::Bind(&AudioOutputAuthorizationHandler::DeviceParametersReceived,
|
| weak_factory_.GetWeakPtr(), std::move(cb), false,
|
| raw_device_id));
|
|
|