De-flake testRequestChildRectangleOnScreen.
A single waitForIdleSync is not enough to guarantee that we'd loaded
enough of the content for it to be scrollable.
BUG: 8272756
Change-Id: Ib055eddfb6e7b69b91c93540530b87faffdad48f
diff --git a/tests/tests/webkit/src/android/webkit/cts/WebViewTest.java b/tests/tests/webkit/src/android/webkit/cts/WebViewTest.java
index 00e2f90..6520f7e 100644
--- a/tests/tests/webkit/src/android/webkit/cts/WebViewTest.java
+++ b/tests/tests/webkit/src/android/webkit/cts/WebViewTest.java
@@ -1705,17 +1705,20 @@
public void testRequestChildRectangleOnScreen() throws Throwable {
DisplayMetrics metrics = mOnUiThread.getDisplayMetrics();
- int dimension = 2 * Math.max(metrics.widthPixels, metrics.heightPixels);
+ final int dimension = 2 * Math.max(metrics.widthPixels, metrics.heightPixels);
String p = "<p style=\"height:" + dimension + "px;width:" + dimension + "px\"> </p>";
mOnUiThread.loadDataAndWaitForCompletion("<html><body>" + p
+ "</body></html>", "text/html", null);
- getInstrumentation().waitForIdleSync();
+ new PollingCheck() {
+ @Override
+ protected boolean check() {
+ return mOnUiThread.getContentHeight() >= dimension;
+ }
+ }.run();
int origX = mOnUiThread.getScrollX();
int origY = mOnUiThread.getScrollY();
- metrics = mOnUiThread.getDisplayMetrics();
- dimension = 2 * Math.max(metrics.widthPixels, metrics.heightPixels);
int half = dimension / 2;
Rect rect = new Rect(half, half, half + 1, half + 1);
assertTrue(mOnUiThread.requestChildRectangleOnScreen(mWebView, rect, true));