Chromium Code Reviews| Index: content/renderer/render_widget_unittest.cc |
| diff --git a/content/renderer/render_widget_unittest.cc b/content/renderer/render_widget_unittest.cc |
| index 1cc29f4fadff4c5d9978381f90ec813b32b9afef..191ad8ad8c4fa8771fd9cd6657381ad152314bbb 100644 |
| --- a/content/renderer/render_widget_unittest.cc |
| +++ b/content/renderer/render_widget_unittest.cc |
| @@ -53,15 +53,15 @@ class MockWebWidget : public blink::WebWidget { |
| class InteractiveRenderWidget : public RenderWidget { |
| public: |
| explicit InteractiveRenderWidget(CompositorDependencies* compositor_deps) |
| - : RenderWidget(compositor_deps, |
| + : RenderWidget(++next_routing_id_, |
| + compositor_deps, |
| blink::WebPopupTypeNone, |
| ScreenInfo(), |
| false, |
| false, |
| false), |
| always_overscroll_(false) { |
| - webwidget_internal_ = &mock_webwidget_; |
| - InitRoutingID(++next_routing_id_); |
| + Init(MSG_ROUTING_NONE, mock_webwidget()); |
| } |
| void SetTouchRegion(const std::vector<gfx::Rect>& rects) { |
| @@ -134,7 +134,13 @@ int InteractiveRenderWidget::next_routing_id_ = 0; |
| class RenderWidgetUnittest : public testing::Test { |
| public: |
| RenderWidgetUnittest() |
| - : widget_(new InteractiveRenderWidget(&compositor_deps_)) {} |
| + : widget_(new InteractiveRenderWidget(&compositor_deps_)) { |
| + // RenderWidget::Init does an AddRef that's balanced by a browser-initiated |
| + // Close IPC. That Close will never happen in this test, so do a Release |
| + // here to ensure |widget_| is properly freed. |
|
ncarter (slow)
2016/11/14 23:33:56
I looked at using MockRenderThread::SendCloseMessa
|
| + widget_->Release(); |
| + DCHECK(widget_->HasOneRef()); |
| + } |
| ~RenderWidgetUnittest() override {} |
| InteractiveRenderWidget* widget() const { return widget_.get(); } |
| @@ -370,14 +376,14 @@ TEST_F(RenderWidgetUnittest, TouchDuringOrOutsideFlingUmaMetrics) { |
| class PopupRenderWidget : public RenderWidget { |
| public: |
| explicit PopupRenderWidget(CompositorDependencies* compositor_deps) |
| - : RenderWidget(compositor_deps, |
| + : RenderWidget(1, |
| + compositor_deps, |
| blink::WebPopupTypePage, |
| ScreenInfo(), |
| false, |
| false, |
| false) { |
| - webwidget_internal_ = &mock_webwidget_; |
| - InitRoutingID(1); |
| + Init(MSG_ROUTING_NONE, mock_webwidget()); |
| did_show_ = true; |
| } |
| @@ -408,7 +414,13 @@ class PopupRenderWidget : public RenderWidget { |
| class RenderWidgetPopupUnittest : public testing::Test { |
| public: |
| RenderWidgetPopupUnittest() |
| - : widget_(new PopupRenderWidget(&compositor_deps_)) {} |
| + : widget_(new PopupRenderWidget(&compositor_deps_)) { |
| + // RenderWidget::Init does an AddRef that's balanced by a browser-initiated |
| + // Close IPC. That Close will never happen in this test, so do a Release |
| + // here to ensure |widget_| is properly freed. |
| + widget_->Release(); |
| + DCHECK(widget_->HasOneRef()); |
| + } |
| ~RenderWidgetPopupUnittest() override {} |
| PopupRenderWidget* widget() const { return widget_.get(); } |