OLD | NEW |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |