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

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

Issue 2078383004: Add a BrowserViewRenderer unittest for compositor switch logic (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: comment Created 4 years, 6 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"
11 #include "android_webview/browser/render_thread_manager.h" 11 #include "android_webview/browser/render_thread_manager.h"
12 #include "base/location.h" 12 #include "base/location.h"
13 #include "base/threading/thread_task_runner_handle.h" 13 #include "base/threading/thread_task_runner_handle.h"
14 #include "cc/output/compositor_frame.h" 14 #include "cc/output/compositor_frame.h"
15 #include "content/public/browser/android/synchronous_compositor.h"
15 #include "content/public/test/test_synchronous_compositor_android.h" 16 #include "content/public/test/test_synchronous_compositor_android.h"
16 17
17 namespace android_webview { 18 namespace android_webview {
18 19
19 namespace { 20 namespace {
20 // BrowserViewRenderer subclass used for enabling tests to observe 21 // BrowserViewRenderer subclass used for enabling tests to observe
21 // OnParentDrawConstraintsUpdated. 22 // OnParentDrawConstraintsUpdated.
22 class TestBrowserViewRenderer : public BrowserViewRenderer { 23 class TestBrowserViewRenderer : public BrowserViewRenderer {
23 public: 24 public:
24 TestBrowserViewRenderer( 25 TestBrowserViewRenderer(
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 return functor_->GetCompositorFrameConsumer(); 74 return functor_->GetCompositorFrameConsumer();
74 } 75 }
75 76
76 CompositorFrameProducer* RenderingTest::GetCompositorFrameProducer() { 77 CompositorFrameProducer* RenderingTest::GetCompositorFrameProducer() {
77 return browser_view_renderer_.get(); 78 return browser_view_renderer_.get();
78 } 79 }
79 80
80 void RenderingTest::InitializeCompositor() { 81 void RenderingTest::InitializeCompositor() {
81 DCHECK(!compositor_.get()); 82 DCHECK(!compositor_.get());
82 DCHECK(browser_view_renderer_.get()); 83 DCHECK(browser_view_renderer_.get());
83 compositor_.reset(new content::TestSynchronousCompositor); 84 compositor_.reset(new content::TestSynchronousCompositor(0, 0));
84 compositor_->SetClient(browser_view_renderer_.get()); 85 compositor_->SetClient(browser_view_renderer_.get());
85 } 86 }
86 87
87 void RenderingTest::RunTest() { 88 void RenderingTest::RunTest() {
88 SetUpTestHarness(); 89 SetUpTestHarness();
89 90
90 ui_task_runner_->PostTask( 91 ui_task_runner_->PostTask(
91 FROM_HERE, base::Bind(&RenderingTest::StartTest, base::Unretained(this))); 92 FROM_HERE, base::Bind(&RenderingTest::StartTest, base::Unretained(this)));
92 message_loop_->Run(); 93 message_loop_->Run();
93 } 94 }
94 95
95 void RenderingTest::StartTest() { 96 void RenderingTest::StartTest() {
96 EndTest(); 97 EndTest();
97 } 98 }
98 99
99 void RenderingTest::EndTest() { 100 void RenderingTest::EndTest() {
100 ui_task_runner_->PostTask( 101 ui_task_runner_->PostTask(
101 FROM_HERE, 102 FROM_HERE,
102 base::Bind(&RenderingTest::QuitMessageLoop, base::Unretained(this))); 103 base::Bind(&RenderingTest::QuitMessageLoop, base::Unretained(this)));
103 } 104 }
104 105
105 void RenderingTest::QuitMessageLoop() { 106 void RenderingTest::QuitMessageLoop() {
106 DCHECK_EQ(base::MessageLoop::current(), message_loop_.get()); 107 DCHECK_EQ(base::MessageLoop::current(), message_loop_.get());
107 message_loop_->QuitWhenIdle(); 108 message_loop_->QuitWhenIdle();
108 } 109 }
109 110
111 content::SynchronousCompositor* RenderingTest::ActiveCompositor() const {
112 return browser_view_renderer_->GetActiveCompositorForTesting();
113 }
114
110 std::unique_ptr<cc::CompositorFrame> RenderingTest::ConstructEmptyFrame() { 115 std::unique_ptr<cc::CompositorFrame> RenderingTest::ConstructEmptyFrame() {
111 std::unique_ptr<cc::CompositorFrame> compositor_frame( 116 std::unique_ptr<cc::CompositorFrame> compositor_frame(
112 new cc::CompositorFrame); 117 new cc::CompositorFrame);
113 std::unique_ptr<cc::DelegatedFrameData> frame(new cc::DelegatedFrameData); 118 std::unique_ptr<cc::DelegatedFrameData> frame(new cc::DelegatedFrameData);
114 std::unique_ptr<cc::RenderPass> root_pass(cc::RenderPass::Create()); 119 std::unique_ptr<cc::RenderPass> root_pass(cc::RenderPass::Create());
115 gfx::Rect viewport(browser_view_renderer_->size()); 120 gfx::Rect viewport(browser_view_renderer_->size());
116 root_pass->SetNew(cc::RenderPassId(1, 1), viewport, viewport, 121 root_pass->SetNew(cc::RenderPassId(1, 1), viewport, viewport,
117 gfx::Transform()); 122 gfx::Transform());
118 frame->render_pass_list.push_back(std::move(root_pass)); 123 frame->render_pass_list.push_back(std::move(root_pass));
119 compositor_frame->delegated_frame_data = std::move(frame); 124 compositor_frame->delegated_frame_data = std::move(frame);
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 void RenderingTest::PostInvalidate() { 157 void RenderingTest::PostInvalidate() {
153 if (window_) 158 if (window_)
154 window_->PostInvalidate(); 159 window_->PostInvalidate();
155 } 160 }
156 161
157 gfx::Point RenderingTest::GetLocationOnScreen() { 162 gfx::Point RenderingTest::GetLocationOnScreen() {
158 return gfx::Point(); 163 return gfx::Point();
159 } 164 }
160 165
161 } // namespace android_webview 166 } // namespace android_webview
OLDNEW
« no previous file with comments | « android_webview/browser/test/rendering_test.h ('k') | content/public/test/test_synchronous_compositor_android.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698