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

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

Issue 1799973002: Store and use last base URL between DidStart / DidStopLoading (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@2661
Patch Set: Created 4 years, 9 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 | content/browser/android/web_contents_observer_proxy.h » ('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/LoadDataWithBaseUrlTest.java
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/LoadDataWithBaseUrlTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/LoadDataWithBaseUrlTest.java
index 177f8c73e89ded668dae4aaa92e089c85ad3dbca..6fb0b3d6f36d4e651b4b4c2f6d335a41f92f9d4e 100644
--- a/android_webview/javatests/src/org/chromium/android_webview/test/LoadDataWithBaseUrlTest.java
+++ b/android_webview/javatests/src/org/chromium/android_webview/test/LoadDataWithBaseUrlTest.java
@@ -373,4 +373,37 @@ public class LoadDataWithBaseUrlTest extends AwTestBase {
assertEquals("true", executeJavaScriptAndWaitForResult(mAwContents, mContentsClient,
"window.gotToEndOfBody"));
}
+
+ @SmallTest
+ @Feature({"AndroidWebView"})
+ public void testOnPageFinishedWhenInterrupted() throws Throwable {
+ // See crbug.com/594001 -- when a javascript: URL is loaded, the pending entry
+ // gets discarded and the previous load goes through a different path
+ // inside NavigationController.
+ final String pageHtml = "<html><body>Hello, world!</body></html>";
+ final String baseUrl = "http://example.com/";
+ final TestCallbackHelperContainer.OnPageFinishedHelper onPageFinishedHelper =
+ mContentsClient.getOnPageFinishedHelper();
+ final int callCount = onPageFinishedHelper.getCallCount();
+ loadDataWithBaseUrlAsync(mAwContents, pageHtml, "text/html", false, baseUrl, null);
+ loadUrlAsync(mAwContents, "javascript:42");
+ onPageFinishedHelper.waitForCallback(callCount);
+ assertEquals(baseUrl, onPageFinishedHelper.getUrl());
+ }
+
+ @SmallTest
+ @Feature({"AndroidWebView"})
+ public void testOnPageFinishedWithInvalidBaseUrlWhenInterrupted() throws Throwable {
+ final String pageHtml = CommonResources.ABOUT_HTML;
+ final String invalidBaseUrl = "http://";
+ final TestCallbackHelperContainer.OnPageFinishedHelper onPageFinishedHelper =
+ mContentsClient.getOnPageFinishedHelper();
+ final int callCount = onPageFinishedHelper.getCallCount();
+ getAwSettingsOnUiThread(mAwContents).setJavaScriptEnabled(true);
+ loadDataWithBaseUrlAsync(mAwContents, pageHtml, "text/html", false, invalidBaseUrl, null);
+ loadUrlAsync(mAwContents, "javascript:42");
+ onPageFinishedHelper.waitForCallback(callCount);
+ // Verify that the load succeeds. The actual base url is undefined.
+ assertEquals(CommonResources.ABOUT_TITLE, getTitleOnUiThread(mAwContents));
+ }
}
« no previous file with comments | « no previous file | content/browser/android/web_contents_observer_proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698