summaryrefslogtreecommitdiffstats
path: root/content
diff options
context:
space:
mode:
authoroshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-08 09:05:28 +0000
committeroshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-08 09:05:28 +0000
commitd068ad571907ca1298268cf87bbe6a5bc764279d (patch)
tree778b52edeafd30eb270f274c3a741e5038fc4dea /content
parent1033acdb0f7fc15dacaad6778c6a8ba73cd31e35 (diff)
downloadchromium_src-d068ad571907ca1298268cf87bbe6a5bc764279d.zip
chromium_src-d068ad571907ca1298268cf87bbe6a5bc764279d.tar.gz
chromium_src-d068ad571907ca1298268cf87bbe6a5bc764279d.tar.bz2
Fix leaks in RenderWidgetHost(ViewAura)Test
* Use RWHV::Destroy to delete RWHV * replace RWHV in host after current RWHV is deleted. BUG=112798 TEST=bots reports no leak on these tests. Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=120902 Review URL: https://chromiumcodereview.appspot.com/9360001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120957 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content')
-rw-r--r--content/browser/renderer_host/render_widget_host_unittest.cc12
-rw-r--r--content/browser/renderer_host/render_widget_host_view_aura.cc1
-rw-r--r--content/browser/renderer_host/render_widget_host_view_aura_unittest.cc11
3 files changed, 12 insertions, 12 deletions
diff --git a/content/browser/renderer_host/render_widget_host_unittest.cc b/content/browser/renderer_host/render_widget_host_unittest.cc
index a279c88..ef87f2b 100644
--- a/content/browser/renderer_host/render_widget_host_unittest.cc
+++ b/content/browser/renderer_host/render_widget_host_unittest.cc
@@ -428,13 +428,10 @@ TEST_F(RenderWidgetHostTest, ResizeThenCrash) {
// Tests setting custom background
TEST_F(RenderWidgetHostTest, Background) {
#if !defined(OS_MACOSX)
- scoped_ptr<RenderWidgetHostView> view(
- RenderWidgetHostView::CreateViewForWidget(host_.get()));
-#if defined(USE_AURA)
- // TODO(derat): Call this on all platforms: http://crbug.com/102450.
- static_cast<RenderWidgetHostViewAura*>(view.get())->InitAsChild(NULL);
-#endif
- host_->SetView(view.get());
+ RenderWidgetHostView* view =
+ RenderWidgetHostView::CreateViewForWidget(host_.get());
+ view->InitAsChild(NULL);
+ host_->SetView(view);
// Create a checkerboard background to test with.
gfx::CanvasSkia canvas(gfx::Size(4, 4), true);
@@ -472,6 +469,7 @@ TEST_F(RenderWidgetHostTest, Background) {
// renderer -- if not, then maybe the test doesn't apply?).
#endif
+ view->Destroy();
#else
// TODO(port): Mac does not have gfx::Canvas. Maybe we can just change this
// test to use SkCanvas directly?
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc
index e75a137..2ad87f7 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura.cc
+++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
@@ -341,6 +341,7 @@ void RenderWidgetHostViewAura::RenderViewGone(base::TerminationStatus status,
void RenderWidgetHostViewAura::Destroy() {
delete window_;
+ window_ = NULL;
}
void RenderWidgetHostViewAura::SetTooltipText(const string16& tooltip_text) {
diff --git a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
index fab353d..491f92f 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
+++ b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
@@ -21,22 +21,23 @@ class RenderWidgetHostViewAuraTest : public RenderViewHostTestHarness {
virtual void SetUp() {
RenderViewHostTestHarness::SetUp();
old_rwhv_ = rvh()->view();
- rwhv_aura_.reset(static_cast<RenderWidgetHostViewAura*>(
- RenderWidgetHostView::CreateViewForWidget(rvh())));
+ rwhv_aura_ = static_cast<RenderWidgetHostViewAura*>(
+ RenderWidgetHostView::CreateViewForWidget(rvh()));
}
virtual void TearDown() {
aura::Window* window = rwhv_aura_->GetNativeView();
if (window->parent())
window->parent()->RemoveChild(window);
-
+ rwhv_aura_->Destroy();
+ // Destroying RWHV sets the host's view to NULL, so destroying view first,
+ // then set the view.
rvh()->SetView(old_rwhv_);
- rwhv_aura_.reset();
RenderViewHostTestHarness::TearDown();
}
protected:
- scoped_ptr<RenderWidgetHostViewAura> rwhv_aura_;
+ RenderWidgetHostViewAura* rwhv_aura_;
private:
RenderWidgetHostView* old_rwhv_;