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

Unified Diff: android_webview/javatests/src/org/chromium/android_webview/test/AwContentsClientShouldOverrideUrlLoadingTest.java

Issue 132143003: [abort] Let webkit know we're past the phase where throttles run. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 11 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
« no previous file with comments | « no previous file | android_webview/javatests/src/org/chromium/android_webview/test/TestAwContentsClient.java » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: android_webview/javatests/src/org/chromium/android_webview/test/AwContentsClientShouldOverrideUrlLoadingTest.java
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/AwContentsClientShouldOverrideUrlLoadingTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/AwContentsClientShouldOverrideUrlLoadingTest.java
index 6bd5df1dc568b46dec200db67e7a1c7bc94ebf85..1293c8fb3cfdebd92f01e5fb83cd97e025bf8902 100644
--- a/android_webview/javatests/src/org/chromium/android_webview/test/AwContentsClientShouldOverrideUrlLoadingTest.java
+++ b/android_webview/javatests/src/org/chromium/android_webview/test/AwContentsClientShouldOverrideUrlLoadingTest.java
@@ -10,8 +10,10 @@ import android.util.Pair;
import org.chromium.android_webview.AwContents;
import org.chromium.android_webview.test.util.CommonResources;
import org.chromium.android_webview.test.util.JSUtils;
+import org.chromium.android_webview.test.util.JavascriptEventObserver;
import org.chromium.base.test.util.Feature;
import org.chromium.content.browser.LoadUrlParams;
+import org.chromium.content.browser.NavigationHistory;
import org.chromium.content.browser.test.util.CallbackHelper;
import org.chromium.content.browser.test.util.Criteria;
import org.chromium.content.browser.test.util.CriteriaHelper;
@@ -862,4 +864,68 @@ public class AwContentsClientShouldOverrideUrlLoadingTest extends AwTestBase {
assertEquals(0, shouldOverrideUrlLoadingHelper.getCallCount());
}
+
+ private static class BooleanJavascriptEventObserver extends JavascriptEventObserver {
+ private boolean value;
+
+ public boolean getValue() throws InterruptedException {
+ waitForEvent();
+ return value;
+ }
+
+ public void notifyJavaWithValue(boolean value) {
+ this.value = value;
+ notifyJava();
+ }
+ }
+
+ @SmallTest
+ @Feature({"AndroidWebView", "Navigation"})
+ public void testInterceptedNavigationDoesNotCancelXHR() throws Throwable {
+ final BooleanJavascriptEventObserver observer = new BooleanJavascriptEventObserver();
+ final String xhrPath = "/xhr.html";
+ final String xhrUrl = addPageToTestServer(mWebServer, xhrPath, CommonResources.ABOUT_HTML);
+ final String testJs = "<script type=\"text/javascript\">" +
+ "function test() {" +
+ " var xhr = new XMLHttpRequest();" +
+ " xhr.onload = function() {" +
+ " console.log('load');" +
+ " javaObserver.notifyJavaWithValue(true); " +
+ " };" +
+ " xhr.onerror = function() {" +
+ " console.log('error');" +
+ " javaObserver.notifyJavaWithValue(false); " +
+ " };" +
+ " xhr.open('GET', '" + xhrUrl + "', true);" +
+ " xhr.send(); "+
+ " window.location = 'intercept://me/';" +
+ " console.log('sent');" +
+ "} " +
+ "test(); " +
+ "</script>";
+
+ final TestAwContentsClient contentsClient = new TestAwContentsClient();
+ TestAwContentsClient.ShouldOverrideUrlLoadingHelper shouldOverrideUrlLoadingHelper =
+ contentsClient.getShouldOverrideUrlLoadingHelper();
+ OnPageStartedHelper onPageStartedHelper = contentsClient.getOnPageStartedHelper();
+ final AwTestContainerView testContainerView =
+ createAwTestContainerViewOnMainSync(contentsClient);
+ final AwContents awContents = testContainerView.getAwContents();
+
+ enableJavaScriptOnUiThread(awContents);
+ getInstrumentation().runOnMainSync(new Runnable() {
+ @Override
+ public void run() {
+ observer.register(awContents.getContentViewCore(), "javaObserver");
+ }
+ });
+ setShouldOverrideUrlLoadingReturnValueOnUiThread(shouldOverrideUrlLoadingHelper, true);
+
+ final String testUrl = addPageToTestServer(mWebServer, "/test.html",
+ CommonResources.makeHtmlPageFrom("", "<div> test page </div> " + testJs));
+ loadUrlAsync(awContents, testUrl);
+
+ observer.waitForEvent(WAIT_TIMEOUT_SECONDS);
+ assertTrue(observer.getValue());
+ }
}
« no previous file with comments | « no previous file | android_webview/javatests/src/org/chromium/android_webview/test/TestAwContentsClient.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698