summaryrefslogtreecommitdiffstats
path: root/content
diff options
context:
space:
mode:
authorderat@chromium.org <derat@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-01 00:34:54 +0000
committerderat@chromium.org <derat@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-01 00:34:54 +0000
commit89f15ec58f62f57dcbd954361f32af7194481a45 (patch)
tree8e073bfc469ed67f3386041f865f90a3c46de609 /content
parent63c23932894ff9e154a8795ef674b1592f16d722 (diff)
downloadchromium_src-89f15ec58f62f57dcbd954361f32af7194481a45.zip
chromium_src-89f15ec58f62f57dcbd954361f32af7194481a45.tar.gz
chromium_src-89f15ec58f62f57dcbd954361f32af7194481a45.tar.bz2
aura: Work around RenderWidgetHostTest.Background segfault.
This test was creating an aura::Window but not calling its Init() method, resulting in a segfault when RenderWidgetHostViewAura::SetBackground() tried to access the window's layer. I have a more ambitious change in progress to add a RenderWidgetHostView::InitAsChild() method and update a bunch of callers; this is just a quick workaround so try bots will stop failing. BUG=102450 TEST=manual: test no longer segfaults Review URL: http://codereview.chromium.org/8432020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@108048 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content')
-rw-r--r--content/browser/renderer_host/render_widget_host_unittest.cc8
-rw-r--r--content/browser/renderer_host/render_widget_host_view_aura.cc8
-rw-r--r--content/browser/renderer_host/render_widget_host_view_aura.h4
3 files changed, 15 insertions, 5 deletions
diff --git a/content/browser/renderer_host/render_widget_host_unittest.cc b/content/browser/renderer_host/render_widget_host_unittest.cc
index c38224f..9d7024f 100644
--- a/content/browser/renderer_host/render_widget_host_unittest.cc
+++ b/content/browser/renderer_host/render_widget_host_unittest.cc
@@ -21,6 +21,10 @@
#include "ui/base/keycodes/keyboard_codes.h"
#include "ui/gfx/canvas_skia.h"
+#if defined(USE_AURA)
+#include "content/browser/renderer_host/render_widget_host_view_aura.h"
+#endif
+
using base::TimeDelta;
using content::BrowserThreadImpl;
@@ -426,6 +430,10 @@ TEST_F(RenderWidgetHostTest, Background) {
#if !defined(OS_MACOSX)
scoped_ptr<RenderWidgetHostView> view(
content::GetContentClient()->browser()->CreateViewForWidget(host_.get()));
+#if defined(USE_AURA)
+ // TODO(derat): Call this on all platforms: http://crbug.com/102450.
+ static_cast<RenderWidgetHostViewAura*>(view.get())->InitAsChild();
+#endif
host_->SetView(view.get());
// Create a checkerboard background to test with.
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 170d871..9cdd057 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura.cc
+++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
@@ -91,7 +91,7 @@ RenderWidgetHostViewAura::RenderWidgetHostViewAura(RenderWidgetHost* host)
RenderWidgetHostViewAura::~RenderWidgetHostViewAura() {
}
-void RenderWidgetHostViewAura::Init() {
+void RenderWidgetHostViewAura::InitAsChild() {
window_->Init(ui::Layer::LAYER_HAS_TEXTURE);
}
@@ -104,7 +104,7 @@ void RenderWidgetHostViewAura::InitAsPopup(
popup_parent_host_view_ =
static_cast<RenderWidgetHostViewAura*>(parent_host_view);
window_->SetType(aura::WINDOW_TYPE_MENU);
- Init();
+ window_->Init(ui::Layer::LAYER_HAS_TEXTURE);
window_->SetParent(NULL);
Show();
@@ -113,9 +113,9 @@ void RenderWidgetHostViewAura::InitAsPopup(
void RenderWidgetHostViewAura::InitAsFullscreen(
RenderWidgetHostView* reference_host_view) {
- window_->SetType(aura::WINDOW_TYPE_POPUP);
is_fullscreen_ = true;
- Init();
+ window_->SetType(aura::WINDOW_TYPE_POPUP);
+ window_->Init(ui::Layer::LAYER_HAS_TEXTURE);
window_->SetParent(NULL);
window_->Fullscreen();
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.h b/content/browser/renderer_host/render_widget_host_view_aura.h
index 471ac0c6..5f7d9ce 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura.h
+++ b/content/browser/renderer_host/render_widget_host_view_aura.h
@@ -30,7 +30,9 @@ class RenderWidgetHostViewAura : public RenderWidgetHostView,
explicit RenderWidgetHostViewAura(RenderWidgetHost* host);
virtual ~RenderWidgetHostViewAura();
- void Init();
+ // TODO(derat): Add an abstract RenderWidgetHostView::InitAsChild() method and
+ // update callers: http://crbug.com/102450.
+ void InitAsChild();
// Overridden from RenderWidgetHostView:
virtual void InitAsPopup(RenderWidgetHostView* parent_host_view,