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

Unified Diff: content/browser/speech/speech_recognition_browsertest.cc

Issue 2784433002: Ensures that audio tasks cannot run after AudioManager is deleted. (Closed)
Patch Set: rebase Created 3 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/speech/speech_recognition_browsertest.cc
diff --git a/content/browser/speech/speech_recognition_browsertest.cc b/content/browser/speech/speech_recognition_browsertest.cc
index 73c4cc064dac6a38026f35269c3e25679e8c958e..b1bf1abfa23664322cc5d34c66e9af8964fa7615 100644
--- a/content/browser/speech/speech_recognition_browsertest.cc
+++ b/content/browser/speech/speech_recognition_browsertest.cc
@@ -28,6 +28,7 @@
#include "content/shell/browser/shell.h"
#include "content/test/mock_google_streaming_server.h"
#include "media/audio/audio_system_impl.h"
+#include "media/audio/audio_thread_impl.h"
#include "media/audio/mock_audio_manager.h"
#include "media/audio/test_audio_input_controller_factory.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -122,7 +123,7 @@ class SpeechRecognitionBrowserTest :
media::AudioManager::StartHangMonitorIfNeeded(
BrowserThread::GetTaskRunnerForThread(BrowserThread::IO));
audio_manager_.reset(new media::MockAudioManager(
- BrowserThread::GetTaskRunnerForThread(BrowserThread::IO)));
+ base::MakeUnique<media::AudioThreadImpl>()));
audio_manager_->SetInputStreamParameters(
media::AudioParameters::UnavailableDeviceParams());
audio_system_ = media::AudioSystemImpl::Create(audio_manager_.get());
@@ -133,9 +134,7 @@ class SpeechRecognitionBrowserTest :
void TearDownOnMainThread() override {
SpeechRecognizerImpl::SetAudioEnvironmentForTesting(nullptr, nullptr);
- // Deleting AudioManager on audio thread,
- audio_system_.reset();
- audio_manager_.reset();
+ audio_manager_->Shutdown();
test_audio_input_controller_factory_.set_delegate(nullptr);
mock_streaming_server_.reset();
@@ -195,7 +194,7 @@ class SpeechRecognitionBrowserTest :
return result;
}
- media::MockAudioManager::UniquePtr audio_manager_;
+ std::unique_ptr<media::MockAudioManager> audio_manager_;
std::unique_ptr<media::AudioSystem> audio_system_;
StreamingServerState streaming_server_state_;
std::unique_ptr<MockGoogleStreamingServer> mock_streaming_server_;

Powered by Google App Engine
This is Rietveld 408576698