Commit 77288e6f authored by Karan Bhatia's avatar Karan Bhatia Committed by Commit Bot

DNR: Speculatively fix flaky DeclarativeNetRequestBrowserTest.AllowAllRequests_SrcDoc.

Wait for the fetch to complete before checking whether xhr request was
seen by the browser. This should hopefully fix the flakiness since page
load won't necessarily wait for the fetch to complete.

BUG=1050536, 1056031

Change-Id: I9c043d69c4d619e00737303d2aaa3c15dc587ae2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2076658
Commit-Queue: Karan Bhatia <karandeepb@chromium.org>
Reviewed-by: default avatarIstiaque Ahmed <lazyboy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#744926}
parent 4e9b403f
...@@ -3880,9 +3880,8 @@ IN_PROC_BROWSER_TEST_P(DeclarativeNetRequestBrowserTest, AllowAllRequests) { ...@@ -3880,9 +3880,8 @@ IN_PROC_BROWSER_TEST_P(DeclarativeNetRequestBrowserTest, AllowAllRequests) {
// Ensure allowAllRequests rules work correctly for srcdoc frames. Regression // Ensure allowAllRequests rules work correctly for srcdoc frames. Regression
// test for crbug.com/1050536. // test for crbug.com/1050536.
// TODO(crbug.com/1056031): Re-enabled this test.
IN_PROC_BROWSER_TEST_P(DeclarativeNetRequestBrowserTest, IN_PROC_BROWSER_TEST_P(DeclarativeNetRequestBrowserTest,
DISABLED_AllowAllRequests_SrcDoc) { AllowAllRequests_SrcDoc) {
TestRule block_rule = CreateGenericRule(); TestRule block_rule = CreateGenericRule();
block_rule.id = kMinValidID; block_rule.id = kMinValidID;
block_rule.priority = kMinValidPriority; block_rule.priority = kMinValidPriority;
...@@ -3900,9 +3899,15 @@ IN_PROC_BROWSER_TEST_P(DeclarativeNetRequestBrowserTest, ...@@ -3900,9 +3899,15 @@ IN_PROC_BROWSER_TEST_P(DeclarativeNetRequestBrowserTest,
ASSERT_NO_FATAL_FAILURE( ASSERT_NO_FATAL_FAILURE(
LoadExtensionWithRules({block_rule, allow_srcdoc_rule})); LoadExtensionWithRules({block_rule, allow_srcdoc_rule}));
content::DOMMessageQueue message_queue(web_contents());
GURL page_url = embedded_test_server()->GetURL("/srcdoc.html"); GURL page_url = embedded_test_server()->GetURL("/srcdoc.html");
ui_test_utils::NavigateToURL(browser(), page_url); ui_test_utils::NavigateToURL(browser(), page_url);
// Wait for the fetch to complete.
std::string message;
ASSERT_TRUE(message_queue.WaitForMessage(&message));
EXPECT_EQ("\"failure\"", message) << message;
const std::set<GURL> requests_seen = GetAndResetRequestsToServer(); const std::set<GURL> requests_seen = GetAndResetRequestsToServer();
EXPECT_TRUE(base::Contains(requests_seen, page_url)); EXPECT_TRUE(base::Contains(requests_seen, page_url));
......
...@@ -8,8 +8,11 @@ ...@@ -8,8 +8,11 @@
// The fetch below will fail eventually, but the request will reach the // The fetch below will fail eventually, but the request will reach the
// browser. // browser.
frame.contentWindow.fetch('subresources/xhr_target.txt') frame.contentWindow.fetch('subresources/xhr_target.txt').then(() => {
.catch((error) => {}); domAutomationController.send('success');
}, () => {
domAutomationController.send('failure');
});
</script> </script>
</body> </body>
......
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