Reland: Pass task runners to AudioManager constructor.
This patch replaces the internal AudioManagerBase::audio_thread with
an external task runner. The old implementation made it harder to test
and override the internal audio thread.
AudioManagerBase::Shutdown had to complete on the audio thread before
the AudioManager instance could be deleted. It relied on Thread::Stop
on the main thread to wait for the audio thread to shutdown. A subclass
using a different thread shared with other modules could not do that.
Passing a task runner into AudioManager and making GetTaskRunner
non-virtual ensures that the task runner will not change for the
lifetime of AudioManager instance.
BUG=594234
TBR=rkc,tommi,xhwang,jam,dalecurtis
Review URL: https://codereview.chromium.org/1894373002
Cr-Commit-Position: refs/heads/master@{#388211}
diff --git a/components/audio_modem/BUILD.gn b/components/audio_modem/BUILD.gn
index d14a7b3..83cd882 100644
--- a/components/audio_modem/BUILD.gn
+++ b/components/audio_modem/BUILD.gn
@@ -63,6 +63,7 @@
deps = [
":test_support",
"//base",
+ "//base/test:test_support",
"//content/test:test_support",
"//media",
"//media:shared_memory_support",