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

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: 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 12 matching lines...) Expand all
70 return browser_view_renderer_.get(); 73 return browser_view_renderer_.get();
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
83 void RenderingTest::DrawGL(AwDrawGLInfo* aw_draw_gl_info) {
84 render_thread_manager_->DrawGL(aw_draw_gl_info);
85 }
86
80 void RenderingTest::Attach() { 87 void RenderingTest::Attach() {
81 window_.reset(new FakeWindow(browser_view_renderer_.get(), 88 window_.reset(
82 render_thread_manager_.get(), this, 89 new FakeWindow(browser_view_renderer_.get(),
83 gfx::Rect(100, 100))); 90 base::Bind(&RenderingTest::DrawGL, base::Unretained(this)),
91 this, gfx::Rect(100, 100)));
84 } 92 }
85 93
86 void RenderingTest::RunTest() { 94 void RenderingTest::RunTest() {
87 SetUpTestHarness(); 95 SetUpTestHarness();
88 96
89 ui_task_runner_->PostTask( 97 ui_task_runner_->PostTask(
90 FROM_HERE, base::Bind(&RenderingTest::StartTest, base::Unretained(this))); 98 FROM_HERE, base::Bind(&RenderingTest::StartTest, base::Unretained(this)));
91 message_loop_->Run(); 99 message_loop_->Run();
92 } 100 }
93 101
(...skipping 28 matching lines...) Expand all
122 void RenderingTest::WillOnDraw() { 130 void RenderingTest::WillOnDraw() {
123 DCHECK(compositor_); 131 DCHECK(compositor_);
124 compositor_->SetHardwareFrame(0u, ConstructEmptyFrame()); 132 compositor_->SetHardwareFrame(0u, ConstructEmptyFrame());
125 } 133 }
126 134
127 bool RenderingTest::RequestInvokeGL(bool wait_for_completion) { 135 bool RenderingTest::RequestInvokeGL(bool wait_for_completion) {
128 window_->RequestInvokeGL(wait_for_completion); 136 window_->RequestInvokeGL(wait_for_completion);
129 return true; 137 return true;
130 } 138 }
131 139
132 bool RenderingTest::WillDrawOnRT(RenderThreadManager* functor, 140 bool RenderingTest::WillDrawOnRT(AwDrawGLInfo* draw_info) {
133 AwDrawGLInfo* draw_info) {
134 draw_info->width = window_->surface_size().width(); 141 draw_info->width = window_->surface_size().width();
135 draw_info->height = window_->surface_size().height(); 142 draw_info->height = window_->surface_size().height();
136 draw_info->is_layer = false; 143 draw_info->is_layer = false;
137 gfx::Transform transform; 144 gfx::Transform transform;
138 transform.matrix().asColMajorf(draw_info->transform); 145 transform.matrix().asColMajorf(draw_info->transform);
139 return true; 146 return true;
140 } 147 }
141 148
142 void RenderingTest::OnNewPicture() { 149 void RenderingTest::OnNewPicture() {
143 } 150 }
144 151
145 void RenderingTest::PostInvalidate() { 152 void RenderingTest::PostInvalidate() {
146 if (window_) 153 if (window_)
147 window_->PostInvalidate(); 154 window_->PostInvalidate();
148 } 155 }
149 156
150 void RenderingTest::DetachFunctorFromView() { 157 void RenderingTest::DetachFunctorFromView() {
151 } 158 }
152 159
153 gfx::Point RenderingTest::GetLocationOnScreen() { 160 gfx::Point RenderingTest::GetLocationOnScreen() {
154 return gfx::Point(); 161 return gfx::Point();
155 } 162 }
156 163
157 } // namespace android_webview 164 } // namespace android_webview
OLDNEW
« android_webview/browser/test/fake_window.cc ('K') | « android_webview/browser/test/rendering_test.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698