| Index: chrome/browser/renderer_host/browser_render_process_host.cc
|
| diff --git a/chrome/browser/renderer_host/browser_render_process_host.cc b/chrome/browser/renderer_host/browser_render_process_host.cc
|
| index b020feb4819e0ec457fd684b89b4bfa8a07572bf..24d5f4da7dd7bf944f765813e1881310840dbcc0 100644
|
| --- a/chrome/browser/renderer_host/browser_render_process_host.cc
|
| +++ b/chrome/browser/renderer_host/browser_render_process_host.cc
|
| @@ -155,6 +155,10 @@ BrowserRenderProcessHost::~BrowserRenderProcessHost() {
|
| // We may have some unsent messages at this point, but that's OK.
|
| channel_.reset();
|
|
|
| + // Destroy the AudioRendererHost properly.
|
| + if (audio_renderer_host_.get())
|
| + audio_renderer_host_->Destroy();
|
| +
|
| if (process_.handle() && !run_renderer_in_process()) {
|
| ProcessWatcher::EnsureProcessTerminated(process_.handle());
|
| }
|
| @@ -195,8 +199,13 @@ bool BrowserRenderProcessHost::Init() {
|
| // run the IPC channel on the shared IO thread.
|
| base::Thread* io_thread = g_browser_process->io_thread();
|
|
|
| + // Construct the AudioRendererHost with the IO thread.
|
| + audio_renderer_host_ =
|
| + new AudioRendererHost(io_thread->message_loop());
|
| +
|
| scoped_refptr<ResourceMessageFilter> resource_message_filter =
|
| new ResourceMessageFilter(g_browser_process->resource_dispatcher_host(),
|
| + audio_renderer_host_.get(),
|
| PluginService::GetInstance(),
|
| g_browser_process->print_job_manager(),
|
| host_id(),
|
|
|