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

Side by Side Diff: android_webview/browser/test/rendering_test.cc

Issue 1920843002: Test: deleting RTM before BVR does not leak resources. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: undo over-zealous git cl format 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 "android_webview/browser/test/rendering_test.h" 5 #include "android_webview/browser/test/rendering_test.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "android_webview/browser/browser_view_renderer.h" 9 #include "android_webview/browser/browser_view_renderer.h"
10 #include "android_webview/browser/child_frame.h" 10 #include "android_webview/browser/child_frame.h"
(...skipping 12 matching lines...) Expand all
23 public: 23 public:
24 TestBrowserViewRenderer( 24 TestBrowserViewRenderer(
25 RenderingTest* rendering_test, 25 RenderingTest* rendering_test,
26 const scoped_refptr<base::SingleThreadTaskRunner>& ui_task_runner, 26 const scoped_refptr<base::SingleThreadTaskRunner>& ui_task_runner,
27 bool disable_page_visibility) 27 bool disable_page_visibility)
28 : BrowserViewRenderer(rendering_test, 28 : BrowserViewRenderer(rendering_test,
29 ui_task_runner, 29 ui_task_runner,
30 disable_page_visibility), 30 disable_page_visibility),
31 rendering_test_(rendering_test) {} 31 rendering_test_(rendering_test) {}
32 32
33 ~TestBrowserViewRenderer() {}
34
33 void OnParentDrawConstraintsUpdated() override { 35 void OnParentDrawConstraintsUpdated() override {
34 BrowserViewRenderer::OnParentDrawConstraintsUpdated(); 36 BrowserViewRenderer::OnParentDrawConstraintsUpdated();
35 rendering_test_->OnParentDrawConstraintsUpdated(); 37 rendering_test_->OnParentDrawConstraintsUpdated();
36 } 38 }
37 39
38 private: 40 private:
39 RenderingTest* const rendering_test_; 41 RenderingTest* const rendering_test_;
40 }; 42 };
41 } 43 }
42 44
43 RenderingTest::RenderingTest() : message_loop_(new base::MessageLoop) { 45 RenderingTest::RenderingTest() : message_loop_(new base::MessageLoop) {
44 ui_task_runner_ = base::ThreadTaskRunnerHandle::Get(); 46 ui_task_runner_ = base::ThreadTaskRunnerHandle::Get();
45 } 47 }
46 48
47 RenderingTest::~RenderingTest() { 49 RenderingTest::~RenderingTest() {
50 DCHECK(ui_task_runner_->BelongsToCurrentThread());
48 if (window_.get()) 51 if (window_.get())
49 window_->Detach(); 52 window_->Detach();
50 } 53 }
51 54
52 void RenderingTest::SetUpTestHarness() { 55 void RenderingTest::SetUpTestHarness() {
53 DCHECK(!browser_view_renderer_.get()); 56 DCHECK(!browser_view_renderer_.get());
54 DCHECK(!render_thread_manager_.get()); 57 DCHECK(!render_thread_manager_.get());
55 render_thread_manager_.reset( 58 render_thread_manager_.reset(
56 new RenderThreadManager(this, base::ThreadTaskRunnerHandle::Get())); 59 new RenderThreadManager(this, base::ThreadTaskRunnerHandle::Get()));
57 browser_view_renderer_.reset(new TestBrowserViewRenderer( 60 browser_view_renderer_.reset(new TestBrowserViewRenderer(
(...skipping 13 matching lines...) Expand all
71 } 74 }
72 75
73 void RenderingTest::InitializeCompositor() { 76 void RenderingTest::InitializeCompositor() {
74 DCHECK(!compositor_.get()); 77 DCHECK(!compositor_.get());
75 DCHECK(browser_view_renderer_.get()); 78 DCHECK(browser_view_renderer_.get());
76 compositor_.reset(new content::TestSynchronousCompositor); 79 compositor_.reset(new content::TestSynchronousCompositor);
77 compositor_->SetClient(browser_view_renderer_.get()); 80 compositor_->SetClient(browser_view_renderer_.get());
78 } 81 }
79 82
80 void RenderingTest::Attach() { 83 void RenderingTest::Attach() {
81 window_.reset(new FakeWindow(browser_view_renderer_.get(), 84 window_.reset(
82 render_thread_manager_.get(), this, 85 new FakeWindow(browser_view_renderer_.get(),
83 gfx::Rect(100, 100))); 86 base::Bind(&RenderThreadManager::DrawGL,
87 base::Unretained(render_thread_manager_.get())),
88 this, gfx::Rect(100, 100)));
84 } 89 }
85 90
86 void RenderingTest::RunTest() { 91 void RenderingTest::RunTest() {
87 SetUpTestHarness(); 92 SetUpTestHarness();
88 93
89 ui_task_runner_->PostTask( 94 ui_task_runner_->PostTask(
90 FROM_HERE, base::Bind(&RenderingTest::StartTest, base::Unretained(this))); 95 FROM_HERE, base::Bind(&RenderingTest::StartTest, base::Unretained(this)));
91 message_loop_->Run(); 96 message_loop_->Run();
92 } 97 }
93 98
(...skipping 18 matching lines...) Expand all
112 std::unique_ptr<cc::DelegatedFrameData> frame(new cc::DelegatedFrameData); 117 std::unique_ptr<cc::DelegatedFrameData> frame(new cc::DelegatedFrameData);
113 std::unique_ptr<cc::RenderPass> root_pass(cc::RenderPass::Create()); 118 std::unique_ptr<cc::RenderPass> root_pass(cc::RenderPass::Create());
114 gfx::Rect viewport(browser_view_renderer_->size()); 119 gfx::Rect viewport(browser_view_renderer_->size());
115 root_pass->SetNew(cc::RenderPassId(1, 1), viewport, viewport, 120 root_pass->SetNew(cc::RenderPassId(1, 1), viewport, viewport,
116 gfx::Transform()); 121 gfx::Transform());
117 frame->render_pass_list.push_back(std::move(root_pass)); 122 frame->render_pass_list.push_back(std::move(root_pass));
118 compositor_frame->delegated_frame_data = std::move(frame); 123 compositor_frame->delegated_frame_data = std::move(frame);
119 return compositor_frame; 124 return compositor_frame;
120 } 125 }
121 126
127 std::unique_ptr<cc::CompositorFrame> RenderingTest::ConstructFrame(
128 cc::ResourceId resource_id) {
129 std::unique_ptr<cc::CompositorFrame> compositor_frame(ConstructEmptyFrame());
130 cc::TransferableResource resource;
131 resource.id = resource_id;
132 compositor_frame->delegated_frame_data->resource_list.push_back(resource);
133 return compositor_frame;
134 }
135
122 void RenderingTest::WillOnDraw() { 136 void RenderingTest::WillOnDraw() {
123 DCHECK(compositor_); 137 DCHECK(compositor_);
124 compositor_->SetHardwareFrame(0u, ConstructEmptyFrame()); 138 compositor_->SetHardwareFrame(0u, ConstructEmptyFrame());
125 } 139 }
126 140
127 bool RenderingTest::RequestInvokeGL(bool wait_for_completion) { 141 bool RenderingTest::RequestInvokeGL(bool wait_for_completion) {
128 window_->RequestInvokeGL(wait_for_completion); 142 window_->RequestInvokeGL(wait_for_completion);
129 return true; 143 return true;
130 } 144 }
131 145
132 bool RenderingTest::WillDrawOnRT(RenderThreadManager* functor, 146 bool RenderingTest::WillDrawOnRT(AwDrawGLInfo* draw_info) {
133 AwDrawGLInfo* draw_info) {
134 draw_info->width = window_->surface_size().width(); 147 draw_info->width = window_->surface_size().width();
135 draw_info->height = window_->surface_size().height(); 148 draw_info->height = window_->surface_size().height();
136 draw_info->is_layer = false; 149 draw_info->is_layer = false;
137 gfx::Transform transform; 150 gfx::Transform transform;
138 transform.matrix().asColMajorf(draw_info->transform); 151 transform.matrix().asColMajorf(draw_info->transform);
139 return true; 152 return true;
140 } 153 }
141 154
142 void RenderingTest::OnNewPicture() { 155 void RenderingTest::OnNewPicture() {}
143 }
144 156
145 void RenderingTest::PostInvalidate() { 157 void RenderingTest::PostInvalidate() {
146 if (window_) 158 if (window_)
147 window_->PostInvalidate(); 159 window_->PostInvalidate();
148 } 160 }
149 161
150 void RenderingTest::DetachFunctorFromView() { 162 void RenderingTest::DetachFunctorFromView() {}
151 }
152 163
153 gfx::Point RenderingTest::GetLocationOnScreen() { 164 gfx::Point RenderingTest::GetLocationOnScreen() {
154 return gfx::Point(); 165 return gfx::Point();
155 } 166 }
156 167
157 } // namespace android_webview 168 } // namespace android_webview
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698