Commit 8e984abc authored by Evan Stade's avatar Evan Stade Committed by Commit Bot

WebLayer: fix a couple flaky NavigationTests.

Make navigateToStream block until the first contentful paint is
complete. Otherwise, the FCP from that navigation can interfere
with later code that waits for FCP.

Bug: 1144246
Change-Id: Idc16b2ae7c0c9b11fc21e349992b44b671b566d7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2511043Reviewed-by: default avatarJohn Abd-El-Malek <jam@chromium.org>
Commit-Queue: Evan Stade <estade@chromium.org>
Cr-Commit-Position: refs/heads/master@{#822830}
parent 9a85adb6
...@@ -26,7 +26,6 @@ import org.junit.Test; ...@@ -26,7 +26,6 @@ import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.chromium.base.test.util.CallbackHelper; import org.chromium.base.test.util.CallbackHelper;
import org.chromium.base.test.util.DisabledTest;
import org.chromium.content_public.browser.test.util.Criteria; import org.chromium.content_public.browser.test.util.Criteria;
import org.chromium.content_public.browser.test.util.CriteriaHelper; import org.chromium.content_public.browser.test.util.CriteriaHelper;
import org.chromium.content_public.browser.test.util.TestThreadUtils; import org.chromium.content_public.browser.test.util.TestThreadUtils;
...@@ -926,6 +925,8 @@ public class NavigationTest { ...@@ -926,6 +925,8 @@ public class NavigationTest {
private void navigateToStream(InstrumentationActivity activity, String mimeType, private void navigateToStream(InstrumentationActivity activity, String mimeType,
String cacheControl) throws Exception { String cacheControl) throws Exception {
int curOnFirstContentfulPaintCount =
mCallback.onFirstContentfulPaintCallback.getCallCount();
InputStream stream = new ByteArrayInputStream(STREAM_HTML.getBytes(StandardCharsets.UTF_8)); InputStream stream = new ByteArrayInputStream(STREAM_HTML.getBytes(StandardCharsets.UTF_8));
WebResourceResponse response = new WebResourceResponse(mimeType, "UTF-8", stream); WebResourceResponse response = new WebResourceResponse(mimeType, "UTF-8", stream);
if (cacheControl != null) { if (cacheControl != null) {
...@@ -939,10 +940,10 @@ public class NavigationTest { ...@@ -939,10 +940,10 @@ public class NavigationTest {
() ()
-> activity.getTab().getNavigationController().navigate( -> activity.getTab().getNavigationController().navigate(
Uri.parse(STREAM_URL), params)); Uri.parse(STREAM_URL), params));
mCallback.onFirstContentfulPaintCallback.waitForCallback(curOnFirstContentfulPaintCount);
} }
private void assertStreamContent(int curOnFirstContentfulPaintCount) throws Exception { private void assertStreamContent() throws Exception {
mCallback.onFirstContentfulPaintCallback.waitForCallback(curOnFirstContentfulPaintCount);
assertEquals(STREAM_INNER_BODY, assertEquals(STREAM_INNER_BODY,
mActivityTestRule.executeScriptAndExtractString("document.body.innerText")); mActivityTestRule.executeScriptAndExtractString("document.body.innerText"));
} }
...@@ -956,10 +957,8 @@ public class NavigationTest { ...@@ -956,10 +957,8 @@ public class NavigationTest {
TestThreadUtils.runOnUiThreadBlocking(() -> { activity.getBrowser().setTopView(null); }); TestThreadUtils.runOnUiThreadBlocking(() -> { activity.getBrowser().setTopView(null); });
setNavigationCallback(activity); setNavigationCallback(activity);
int curOnFirstContentfulPaintCount =
mCallback.onFirstContentfulPaintCallback.getCallCount();
navigateToStream(activity, "text/html", null); navigateToStream(activity, "text/html", null);
assertStreamContent(curOnFirstContentfulPaintCount); assertStreamContent();
} }
@Test @Test
...@@ -970,10 +969,8 @@ public class NavigationTest { ...@@ -970,10 +969,8 @@ public class NavigationTest {
TestThreadUtils.runOnUiThreadBlocking(() -> { activity.getBrowser().setTopView(null); }); TestThreadUtils.runOnUiThreadBlocking(() -> { activity.getBrowser().setTopView(null); });
setNavigationCallback(activity); setNavigationCallback(activity);
int curOnFirstContentfulPaintCount =
mCallback.onFirstContentfulPaintCallback.getCallCount();
navigateToStream(activity, "", null); navigateToStream(activity, "", null);
assertStreamContent(curOnFirstContentfulPaintCount); assertStreamContent();
} }
@Test @Test
...@@ -996,7 +993,6 @@ public class NavigationTest { ...@@ -996,7 +993,6 @@ public class NavigationTest {
@Test @Test
@SmallTest @SmallTest
@DisabledTest(message = "https://crbug.com/1144246")
@MinWebLayerVersion(87) @MinWebLayerVersion(87)
public void testWebResponseCached() throws Exception { public void testWebResponseCached() throws Exception {
InstrumentationActivity activity = mActivityTestRule.launchShellWithUrl(URL1); InstrumentationActivity activity = mActivityTestRule.launchShellWithUrl(URL1);
...@@ -1011,12 +1007,12 @@ public class NavigationTest { ...@@ -1011,12 +1007,12 @@ public class NavigationTest {
mCallback.onFirstContentfulPaintCallback.getCallCount(); mCallback.onFirstContentfulPaintCallback.getCallCount();
navigateAndWaitForCompletion( navigateAndWaitForCompletion(
STREAM_URL, () -> { activity.getTab().getNavigationController().goBack(); }); STREAM_URL, () -> { activity.getTab().getNavigationController().goBack(); });
assertStreamContent(curOnFirstContentfulPaintCount); mCallback.onFirstContentfulPaintCallback.waitForCallback(curOnFirstContentfulPaintCount);
assertStreamContent();
} }
@Test @Test
@SmallTest @SmallTest
@DisabledTest(message = "https://crbug.com/1144246")
@MinWebLayerVersion(87) @MinWebLayerVersion(87)
public void testWebResponseCachedWithSniffedMimeType() throws Exception { public void testWebResponseCachedWithSniffedMimeType() throws Exception {
InstrumentationActivity activity = mActivityTestRule.launchShellWithUrl(URL1); InstrumentationActivity activity = mActivityTestRule.launchShellWithUrl(URL1);
...@@ -1031,7 +1027,8 @@ public class NavigationTest { ...@@ -1031,7 +1027,8 @@ public class NavigationTest {
mCallback.onFirstContentfulPaintCallback.getCallCount(); mCallback.onFirstContentfulPaintCallback.getCallCount();
navigateAndWaitForCompletion( navigateAndWaitForCompletion(
STREAM_URL, () -> { activity.getTab().getNavigationController().goBack(); }); STREAM_URL, () -> { activity.getTab().getNavigationController().goBack(); });
assertStreamContent(curOnFirstContentfulPaintCount); mCallback.onFirstContentfulPaintCallback.waitForCallback(curOnFirstContentfulPaintCount);
assertStreamContent();
} }
@Test @Test
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment