Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(206)

Side by Side Diff: content/renderer/gpu/render_widget_compositor_unittest.cc

Issue 1873783003: Convert //content/renderer from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/gpu/render_widget_compositor.h" 5 #include "content/renderer/gpu/render_widget_compositor.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/location.h" 9 #include "base/location.h"
10 #include "base/macros.h" 10 #include "base/macros.h"
11 #include "base/memory/ptr_util.h"
11 #include "base/single_thread_task_runner.h" 12 #include "base/single_thread_task_runner.h"
12 #include "base/thread_task_runner_handle.h" 13 #include "base/thread_task_runner_handle.h"
13 #include "cc/output/begin_frame_args.h" 14 #include "cc/output/begin_frame_args.h"
14 #include "cc/test/failure_output_surface.h" 15 #include "cc/test/failure_output_surface.h"
15 #include "cc/trees/layer_tree_host.h" 16 #include "cc/trees/layer_tree_host.h"
16 #include "components/scheduler/renderer/renderer_scheduler.h" 17 #include "components/scheduler/renderer/renderer_scheduler.h"
17 #include "content/public/test/mock_render_thread.h" 18 #include "content/public/test/mock_render_thread.h"
18 #include "content/renderer/render_widget.h" 19 #include "content/renderer/render_widget.h"
19 #include "content/test/fake_compositor_dependencies.h" 20 #include "content/test/fake_compositor_dependencies.h"
20 #include "content/test/fake_renderer_scheduler.h" 21 #include "content/test/fake_renderer_scheduler.h"
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 render_widget_(new TestRenderWidget(compositor_deps_.get())), 65 render_widget_(new TestRenderWidget(compositor_deps_.get())),
65 render_widget_compositor_(RenderWidgetCompositor::Create( 66 render_widget_compositor_(RenderWidgetCompositor::Create(
66 render_widget_.get(), 67 render_widget_.get(),
67 1.f /* initial_device_scale_factor */, 68 1.f /* initial_device_scale_factor */,
68 compositor_deps_.get())) {} 69 compositor_deps_.get())) {}
69 ~RenderWidgetCompositorTest() override {} 70 ~RenderWidgetCompositorTest() override {}
70 71
71 protected: 72 protected:
72 base::MessageLoop loop_; 73 base::MessageLoop loop_;
73 MockRenderThread render_thread_; 74 MockRenderThread render_thread_;
74 scoped_ptr<FakeCompositorDependencies> compositor_deps_; 75 std::unique_ptr<FakeCompositorDependencies> compositor_deps_;
75 scoped_refptr<TestRenderWidget> render_widget_; 76 scoped_refptr<TestRenderWidget> render_widget_;
76 scoped_ptr<RenderWidgetCompositor> render_widget_compositor_; 77 std::unique_ptr<RenderWidgetCompositor> render_widget_compositor_;
77 78
78 private: 79 private:
79 DISALLOW_COPY_AND_ASSIGN(RenderWidgetCompositorTest); 80 DISALLOW_COPY_AND_ASSIGN(RenderWidgetCompositorTest);
80 }; 81 };
81 82
82 TEST_F(RenderWidgetCompositorTest, BeginMainFrame) { 83 TEST_F(RenderWidgetCompositorTest, BeginMainFrame) {
83 base::TimeTicks frame_time(base::TimeTicks() + 84 base::TimeTicks frame_time(base::TimeTicks() +
84 base::TimeDelta::FromSeconds(1)); 85 base::TimeDelta::FromSeconds(1));
85 base::TimeTicks deadline(base::TimeTicks() + base::TimeDelta::FromSeconds(2)); 86 base::TimeTicks deadline(base::TimeTicks() + base::TimeDelta::FromSeconds(2));
86 base::TimeDelta interval(base::TimeDelta::FromSeconds(3)); 87 base::TimeDelta interval(base::TimeDelta::FromSeconds(3));
87 cc::BeginFrameArgs args( 88 cc::BeginFrameArgs args(
88 cc::BeginFrameArgs::Create(BEGINFRAME_FROM_HERE, frame_time, deadline, 89 cc::BeginFrameArgs::Create(BEGINFRAME_FROM_HERE, frame_time, deadline,
89 interval, cc::BeginFrameArgs::NORMAL)); 90 interval, cc::BeginFrameArgs::NORMAL));
90 91
91 EXPECT_CALL(render_widget_->mock_webwidget_, beginFrame(1)); 92 EXPECT_CALL(render_widget_->mock_webwidget_, beginFrame(1));
92 93
93 render_widget_compositor_->BeginMainFrame(args); 94 render_widget_compositor_->BeginMainFrame(args);
94 } 95 }
95 96
96 class RenderWidgetCompositorOutputSurface; 97 class RenderWidgetCompositorOutputSurface;
97 98
98 class RenderWidgetOutputSurface : public TestRenderWidget { 99 class RenderWidgetOutputSurface : public TestRenderWidget {
99 public: 100 public:
100 explicit RenderWidgetOutputSurface(CompositorDependencies* compositor_deps) 101 explicit RenderWidgetOutputSurface(CompositorDependencies* compositor_deps)
101 : TestRenderWidget(compositor_deps), compositor_(NULL) {} 102 : TestRenderWidget(compositor_deps), compositor_(NULL) {}
102 void SetCompositor(RenderWidgetCompositorOutputSurface* compositor); 103 void SetCompositor(RenderWidgetCompositorOutputSurface* compositor);
103 104
104 scoped_ptr<cc::OutputSurface> CreateOutputSurface(bool fallback) override; 105 std::unique_ptr<cc::OutputSurface> CreateOutputSurface(
106 bool fallback) override;
105 107
106 protected: 108 protected:
107 ~RenderWidgetOutputSurface() override {} 109 ~RenderWidgetOutputSurface() override {}
108 110
109 private: 111 private:
110 RenderWidgetCompositorOutputSurface* compositor_; 112 RenderWidgetCompositorOutputSurface* compositor_;
111 113
112 DISALLOW_COPY_AND_ASSIGN(RenderWidgetOutputSurface); 114 DISALLOW_COPY_AND_ASSIGN(RenderWidgetOutputSurface);
113 }; 115 };
114 116
(...skipping 15 matching lines...) Expand all
130 num_requests_(0), 132 num_requests_(0),
131 num_requests_since_last_success_(0), 133 num_requests_since_last_success_(0),
132 num_successes_(0), 134 num_successes_(0),
133 num_fallback_successes_(0), 135 num_fallback_successes_(0),
134 num_failures_(0), 136 num_failures_(0),
135 last_create_was_fallback_(false), 137 last_create_was_fallback_(false),
136 use_null_output_surface_(true) {} 138 use_null_output_surface_(true) {}
137 139
138 using RenderWidgetCompositor::Initialize; 140 using RenderWidgetCompositor::Initialize;
139 141
140 scoped_ptr<cc::OutputSurface> CreateOutputSurface(bool fallback) { 142 std::unique_ptr<cc::OutputSurface> CreateOutputSurface(bool fallback) {
141 EXPECT_EQ(num_requests_since_last_success_ > 143 EXPECT_EQ(num_requests_since_last_success_ >
142 OUTPUT_SURFACE_RETRIES_BEFORE_FALLBACK, 144 OUTPUT_SURFACE_RETRIES_BEFORE_FALLBACK,
143 fallback); 145 fallback);
144 last_create_was_fallback_ = fallback; 146 last_create_was_fallback_ = fallback;
145 bool success = num_failures_ >= num_failures_before_success_; 147 bool success = num_failures_ >= num_failures_before_success_;
146 if (success) { 148 if (success) {
147 scoped_ptr<cc::TestWebGraphicsContext3D> context = 149 std::unique_ptr<cc::TestWebGraphicsContext3D> context =
148 cc::TestWebGraphicsContext3D::Create(); 150 cc::TestWebGraphicsContext3D::Create();
149 // Image support required for synchronous compositing. 151 // Image support required for synchronous compositing.
150 context->set_support_image(true); 152 context->set_support_image(true);
151 // Create delegating surface so that max_pending_frames = 1. 153 // Create delegating surface so that max_pending_frames = 1.
152 return cc::FakeOutputSurface::CreateDelegating3d(std::move(context)); 154 return cc::FakeOutputSurface::CreateDelegating3d(std::move(context));
153 } 155 }
154 return use_null_output_surface_ 156 return use_null_output_surface_
155 ? nullptr 157 ? nullptr
156 : make_scoped_ptr(new cc::FailureOutputSurface(true)); 158 : base::WrapUnique(new cc::FailureOutputSurface(true));
157 } 159 }
158 160
159 // Force a new output surface to be created. 161 // Force a new output surface to be created.
160 void SynchronousComposite() { 162 void SynchronousComposite() {
161 layer_tree_host()->DidLoseOutputSurface(); 163 layer_tree_host()->DidLoseOutputSurface();
162 164
163 base::TimeTicks some_time; 165 base::TimeTicks some_time;
164 layer_tree_host()->Composite(some_time); 166 layer_tree_host()->Composite(some_time);
165 } 167 }
166 168
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
261 FROM_HERE, 263 FROM_HERE,
262 base::Bind(&RenderWidgetCompositorOutputSurface::SynchronousComposite, 264 base::Bind(&RenderWidgetCompositorOutputSurface::SynchronousComposite,
263 base::Unretained(render_widget_compositor_.get()))); 265 base::Unretained(render_widget_compositor_.get())));
264 base::MessageLoop::current()->Run(); 266 base::MessageLoop::current()->Run();
265 render_widget_compositor_->AfterTest(); 267 render_widget_compositor_->AfterTest();
266 } 268 }
267 269
268 protected: 270 protected:
269 base::MessageLoop ye_olde_message_loope_; 271 base::MessageLoop ye_olde_message_loope_;
270 MockRenderThread render_thread_; 272 MockRenderThread render_thread_;
271 scoped_ptr<FakeCompositorDependencies> compositor_deps_; 273 std::unique_ptr<FakeCompositorDependencies> compositor_deps_;
272 scoped_refptr<RenderWidgetOutputSurface> render_widget_; 274 scoped_refptr<RenderWidgetOutputSurface> render_widget_;
273 scoped_ptr<RenderWidgetCompositorOutputSurface> render_widget_compositor_; 275 std::unique_ptr<RenderWidgetCompositorOutputSurface>
276 render_widget_compositor_;
274 277
275 private: 278 private:
276 DISALLOW_COPY_AND_ASSIGN(RenderWidgetCompositorOutputSurfaceTest); 279 DISALLOW_COPY_AND_ASSIGN(RenderWidgetCompositorOutputSurfaceTest);
277 }; 280 };
278 281
279 scoped_ptr<cc::OutputSurface> RenderWidgetOutputSurface::CreateOutputSurface( 282 std::unique_ptr<cc::OutputSurface>
280 bool fallback) { 283 RenderWidgetOutputSurface::CreateOutputSurface(bool fallback) {
281 return compositor_->CreateOutputSurface(fallback); 284 return compositor_->CreateOutputSurface(fallback);
282 } 285 }
283 286
284 void RenderWidgetOutputSurface::SetCompositor( 287 void RenderWidgetOutputSurface::SetCompositor(
285 RenderWidgetCompositorOutputSurface* compositor) { 288 RenderWidgetCompositorOutputSurface* compositor) {
286 compositor_ = compositor; 289 compositor_ = compositor;
287 } 290 }
288 291
289 TEST_F(RenderWidgetCompositorOutputSurfaceTest, SucceedOnce) { 292 TEST_F(RenderWidgetCompositorOutputSurfaceTest, SucceedOnce) {
290 RunTest(false, 0, 1, 0); 293 RunTest(false, 0, 1, 0);
(...skipping 28 matching lines...) Expand all
319 } 322 }
320 323
321 TEST_F(RenderWidgetCompositorOutputSurfaceTest, FallbackSuccessNormalSuccess) { 324 TEST_F(RenderWidgetCompositorOutputSurfaceTest, FallbackSuccessNormalSuccess) {
322 // The first success is a fallback, but the next should not be a fallback. 325 // The first success is a fallback, but the next should not be a fallback.
323 RunTest(false, RenderWidgetCompositor::OUTPUT_SURFACE_RETRIES_BEFORE_FALLBACK, 326 RunTest(false, RenderWidgetCompositor::OUTPUT_SURFACE_RETRIES_BEFORE_FALLBACK,
324 1, 1); 327 1, 1);
325 } 328 }
326 329
327 } // namespace 330 } // namespace
328 } // namespace content 331 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/gpu/render_widget_compositor_delegate.h ('k') | content/renderer/history_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698