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

Unified Diff: android_webview/browser/test/rendering_test.cc

Issue 1943963003: WIP Handle AwContents needing multiple live functors. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Testing framework changes to support testing multiple RenderThreadManager instances. Created 4 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: android_webview/browser/test/rendering_test.cc
diff --git a/android_webview/browser/test/rendering_test.cc b/android_webview/browser/test/rendering_test.cc
index 6cbe3c13b11a63ac6fe24d62d6dacd650bf5cce2..0259e77abb8e47742f6847275e5b5455f3fdd1b1 100644
--- a/android_webview/browser/test/rendering_test.cc
+++ b/android_webview/browser/test/rendering_test.cc
@@ -29,8 +29,10 @@ class TestBrowserViewRenderer : public BrowserViewRenderer {
~TestBrowserViewRenderer() override {}
- void OnParentDrawConstraintsUpdated() override {
- BrowserViewRenderer::OnParentDrawConstraintsUpdated();
+ void OnParentDrawConstraintsUpdated(
+ CompositorFrameConsumer* compositor_frame_consumer) override {
+ BrowserViewRenderer::OnParentDrawConstraintsUpdated(
+ compositor_frame_consumer);
rendering_test_->OnParentDrawConstraintsUpdated();
}
@@ -51,19 +53,24 @@ RenderingTest::~RenderingTest() {
void RenderingTest::SetUpTestHarness() {
DCHECK(!browser_view_renderer_.get());
- DCHECK(!render_thread_manager_.get());
- render_thread_manager_.reset(
- new RenderThreadManager(this, base::ThreadTaskRunnerHandle::Get()));
- browser_view_renderer_.reset(new TestBrowserViewRenderer(
- this, base::ThreadTaskRunnerHandle::Get()));
- browser_view_renderer_->SetCompositorFrameConsumer(
- render_thread_manager_.get());
+ DCHECK(!functor_.get());
+ functor_.reset(new Functor(base::Bind(
+ &RenderingTest::CreateRenderThreadManager, base::Unretained(this))));
+ browser_view_renderer_.reset(
+ new TestBrowserViewRenderer(this, base::ThreadTaskRunnerHandle::Get()));
+ browser_view_renderer_->SetCurrentCompositorFrameConsumer(
+ functor_->GetCompositorFrameConsumer());
InitializeCompositor();
Attach();
}
+RenderThreadManager* RenderingTest::CreateRenderThreadManager(
+ RenderThreadManagerClient* client) {
+ return new RenderThreadManager(client, base::ThreadTaskRunnerHandle::Get());
boliu 2016/05/10 15:18:19 hmm, dcheck this is the ui thread?
Tobias Sargeant 2016/05/13 13:23:57 This got removed.
+}
+
CompositorFrameConsumer* RenderingTest::GetCompositorFrameConsumer() {
- return render_thread_manager_.get();
+ return functor_->GetCompositorFrameConsumer();
}
CompositorFrameProducer* RenderingTest::GetCompositorFrameProducer() {
@@ -79,10 +86,8 @@ void RenderingTest::InitializeCompositor() {
void RenderingTest::Attach() {
window_.reset(
- new FakeWindow(browser_view_renderer_.get(),
- base::Bind(&RenderThreadManager::DrawGL,
- base::Unretained(render_thread_manager_.get())),
- this, gfx::Rect(100, 100)));
+ new FakeWindow(browser_view_renderer_.get(), this, gfx::Rect(100, 100)));
+ window_->SetDrawFunctor(functor_.get());
}
void RenderingTest::RunTest() {
@@ -135,11 +140,6 @@ void RenderingTest::WillOnDraw() {
compositor_->SetHardwareFrame(0u, ConstructEmptyFrame());
}
-bool RenderingTest::RequestInvokeGL(bool wait_for_completion) {
- window_->RequestInvokeGL(wait_for_completion);
- return true;
-}
-
bool RenderingTest::WillDrawOnRT(AwDrawGLInfo* draw_info) {
draw_info->width = window_->surface_size().width();
draw_info->height = window_->surface_size().height();
@@ -156,8 +156,6 @@ void RenderingTest::PostInvalidate() {
window_->PostInvalidate();
}
-void RenderingTest::DetachFunctorFromView() {}
-
gfx::Point RenderingTest::GetLocationOnScreen() {
return gfx::Point();
}

Powered by Google App Engine
This is Rietveld 408576698