summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser')
-rw-r--r--chrome/browser/renderer_host/audio_renderer_host.cc4
-rw-r--r--chrome/browser/renderer_host/audio_renderer_host.h5
-rw-r--r--chrome/browser/renderer_host/audio_renderer_host_unittest.cc6
3 files changed, 10 insertions, 5 deletions
diff --git a/chrome/browser/renderer_host/audio_renderer_host.cc b/chrome/browser/renderer_host/audio_renderer_host.cc
index fd798ac..5c0d0f9 100644
--- a/chrome/browser/renderer_host/audio_renderer_host.cc
+++ b/chrome/browser/renderer_host/audio_renderer_host.cc
@@ -192,8 +192,8 @@ void AudioRendererHost::OnInitialized() {
// Also create the AudioManager singleton in this thread.
// TODO(hclam): figure out a better location to initialize the AudioManager
- // singleton.
- AudioManager::GetAudioManager();
+ // singleton. The following method call seems to create a memory leak.
+ // AudioManager::GetAudioManager();
}
void AudioRendererHost::OnDestroyed() {
diff --git a/chrome/browser/renderer_host/audio_renderer_host.h b/chrome/browser/renderer_host/audio_renderer_host.h
index 8128d61..df2c14e 100644
--- a/chrome/browser/renderer_host/audio_renderer_host.h
+++ b/chrome/browser/renderer_host/audio_renderer_host.h
@@ -32,9 +32,10 @@
// which may result in self-destruction.
//
// TODO(hclam): Have these things done before having real implementations:
-// 1. Make sure this class has greater or equal lifetime to
+// 1. Make AudioManager a singleton and construct/destruct it properly.
+// 2. Make sure this class has greater or equal lifetime to
// IPC:Message::Sender, essentially ResourceMessageFilter.
-// 2. Listen to destruction event of the browser and do cleanup in case this
+// 3. Listen to destruction event of the browser and do cleanup in case this
// class is not destructed nicely during browser close.
#ifndef CHROME_BROWSER_RENDERER_HOST_AUDIO_RENDERER_HOST_H_
diff --git a/chrome/browser/renderer_host/audio_renderer_host_unittest.cc b/chrome/browser/renderer_host/audio_renderer_host_unittest.cc
index d7ab831..2942dac 100644
--- a/chrome/browser/renderer_host/audio_renderer_host_unittest.cc
+++ b/chrome/browser/renderer_host/audio_renderer_host_unittest.cc
@@ -13,11 +13,15 @@ class AudioRendererHostTest : public testing::Test {
virtual void SetUp() {
// Create a message loop so AudioRendererHost can use it.
message_loop_.reset(new MessageLoop(MessageLoop::TYPE_IO));
- host_ = new AudioRendererHost(MessageLoop::current());
+ host_ = new AudioRendererHost(message_loop_.get());
}
virtual void TearDown() {
+ // This task post a task to message_loop_ to do internal destruction on
+ // message_loop_.
host_->Destroy();
+ // We need to continue running message_loop_ to complete all destructions.
+ message_loop_->RunAllPending();
}
scoped_refptr<AudioRendererHost> host_;