summaryrefslogtreecommitdiffstats
path: root/android_webview/browser/browser_view_renderer_unittest.cc
diff options
context:
space:
mode:
authorsunnyps <sunnyps@chromium.org>2015-04-01 17:51:03 -0700
committerCommit bot <commit-bot@chromium.org>2015-04-02 00:51:26 +0000
commitb6ee9a21654e8690a6ff2feee05247f071567692 (patch)
treea4384dc1c649f7a83f4483228ccc1f33b0c32013 /android_webview/browser/browser_view_renderer_unittest.cc
parent64150bb3c9ad4efcdb80a6cff9c4e23f3436f535 (diff)
downloadchromium_src-b6ee9a21654e8690a6ff2feee05247f071567692.zip
chromium_src-b6ee9a21654e8690a6ff2feee05247f071567692.tar.gz
chromium_src-b6ee9a21654e8690a6ff2feee05247f071567692.tar.bz2
Revert of cc: Make scheduling be driven by vsync for android webview. (patchset #37 id:720001 of https://codereview.chromium.org/817603002/)
Reason for revert: Caused failures on memory bot. Original issue's description: > cc: Make scheduling be driven by vsync for android webview. > > This CL makes android webview use the similar mechanisms for > scheduling as other platforms instead of using special > polling code in the scheduler. > > Design Doc: https://docs.google.com/a/chromium.org/document/d/1w5UiuA2uZcAiU9-1Y23bxXaStUThkAK8wHI4ULqho2Y/edit# > > BUG=439275 > > Committed: https://crrev.com/bf27da634790bb6eecf4b89f278cfd55c5e5d1f3 > Cr-Commit-Position: refs/heads/master@{#323361} TBR=brianderson@chromium.org,boliu@chromium.org,enne@chromium.org,danakj@chromium.org,hush@chromium.org,mithro@mithis.com,jdduke@chromium.org,sievers@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=439275 Review URL: https://codereview.chromium.org/1052103002 Cr-Commit-Position: refs/heads/master@{#323382}
Diffstat (limited to 'android_webview/browser/browser_view_renderer_unittest.cc')
-rw-r--r--android_webview/browser/browser_view_renderer_unittest.cc41
1 files changed, 27 insertions, 14 deletions
diff --git a/android_webview/browser/browser_view_renderer_unittest.cc b/android_webview/browser/browser_view_renderer_unittest.cc
index 634e1f3..e4c6eac 100644
--- a/android_webview/browser/browser_view_renderer_unittest.cc
+++ b/android_webview/browser/browser_view_renderer_unittest.cc
@@ -9,7 +9,13 @@
namespace android_webview {
class SmokeTest : public RenderingTest {
- void StartTest() override { browser_view_renderer_->PostInvalidate(); }
+ void StartTest() override {
+ browser_view_renderer_->SetContinuousInvalidate(true);
+ }
+
+ void WillOnDraw() override {
+ browser_view_renderer_->SetContinuousInvalidate(false);
+ }
void DidDrawOnRT(SharedRendererState* functor) override {
EndTest();
@@ -20,20 +26,25 @@ RENDERING_TEST_F(SmokeTest);
class ClearViewTest : public RenderingTest {
public:
- ClearViewTest() : on_draw_count_(0) {}
+ ClearViewTest() : on_draw_count_(0u) {}
void StartTest() override {
- browser_view_renderer_->PostInvalidate();
+ browser_view_renderer_->SetContinuousInvalidate(true);
browser_view_renderer_->ClearView();
}
- void DidOnDraw(bool success) override {
+ void WillOnDraw() override {
on_draw_count_++;
- if (on_draw_count_ == 1) {
+ if (on_draw_count_ == 2u) {
+ browser_view_renderer_->SetContinuousInvalidate(false);
+ }
+ }
+
+ void DidOnDraw(bool success) override {
+ if (on_draw_count_ == 1u) {
// First OnDraw should be skipped due to ClearView.
EXPECT_FALSE(success);
browser_view_renderer_->DidUpdateContent(); // Unset ClearView.
- browser_view_renderer_->PostInvalidate();
} else {
// Following OnDraws should succeed.
EXPECT_TRUE(success);
@@ -44,23 +55,25 @@ class ClearViewTest : public RenderingTest {
EndTest();
}
private:
- int on_draw_count_;
+ size_t on_draw_count_;
};
RENDERING_TEST_F(ClearViewTest);
class TestAnimateInAndOutOfScreen : public RenderingTest {
public:
- TestAnimateInAndOutOfScreen() : on_draw_count_(0), draw_gl_count_on_rt_(0) {}
+ TestAnimateInAndOutOfScreen()
+ : on_draw_count_(0u), draw_gl_count_on_rt_(0u) {}
void StartTest() override {
new_constraints_ = ParentCompositorDrawConstraints(
false, gfx::Transform(), gfx::Rect(window_->surface_size()));
new_constraints_.transform.Scale(2.0, 2.0);
- browser_view_renderer_->PostInvalidate();
+ browser_view_renderer_->SetContinuousInvalidate(true);
}
void WillOnDraw() override {
+ browser_view_renderer_->SetContinuousInvalidate(false);
// Step 0: A single onDraw on screen. The parent draw constraints
// of the BVR will updated to be the initial constraints.
// Step 1: A single onDrraw off screen. The parent draw constraints of the
@@ -68,7 +81,7 @@ class TestAnimateInAndOutOfScreen : public RenderingTest {
// Step 2: This onDraw is to introduce the DrawGL that animates the
// webview onto the screen on render thread. End the test when the parent
// draw constraints of BVR is updated to initial constraints.
- if (on_draw_count_ == 1 || on_draw_count_ == 2)
+ if (on_draw_count_ == 1u || on_draw_count_ == 2u)
browser_view_renderer_->PrepareToDraw(gfx::Vector2d(), gfx::Rect());
}
@@ -79,7 +92,7 @@ class TestAnimateInAndOutOfScreen : public RenderingTest {
bool WillDrawOnRT(SharedRendererState* functor,
AwDrawGLInfo* draw_info) override {
- if (draw_gl_count_on_rt_ == 1) {
+ if (draw_gl_count_on_rt_ == 1u) {
draw_gl_count_on_rt_++;
ui_proxy_->PostTask(FROM_HERE, base::Bind(&RenderingTest::PostInvalidate,
base::Unretained(this)));
@@ -91,7 +104,7 @@ class TestAnimateInAndOutOfScreen : public RenderingTest {
draw_info->is_layer = false;
gfx::Transform transform;
- if (draw_gl_count_on_rt_ == 0)
+ if (draw_gl_count_on_rt_ == 0u)
transform = new_constraints_.transform;
transform.matrix().asColMajorf(draw_info->transform);
@@ -132,8 +145,8 @@ class TestAnimateInAndOutOfScreen : public RenderingTest {
}
private:
- int on_draw_count_;
- int draw_gl_count_on_rt_;
+ size_t on_draw_count_;
+ size_t draw_gl_count_on_rt_;
ParentCompositorDrawConstraints initial_constraints_;
ParentCompositorDrawConstraints new_constraints_;
};