Index: android_webview/javatests/src/org/chromium/android_webview/test/PopupWindowTest.java |
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/PopupWindowTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/PopupWindowTest.java |
index 3044ddc5917a36b87d0d47d08314d70a7bb02781..16d6b554bae779572c43d70990e4d108a55dab99 100644 |
--- a/android_webview/javatests/src/org/chromium/android_webview/test/PopupWindowTest.java |
+++ b/android_webview/javatests/src/org/chromium/android_webview/test/PopupWindowTest.java |
@@ -11,6 +11,7 @@ import org.chromium.android_webview.AwContents; |
import org.chromium.android_webview.test.util.CommonResources; |
import org.chromium.base.test.util.Feature; |
import org.chromium.base.test.util.MinAndroidSdkLevel; |
+import org.chromium.content.browser.test.util.TestCallbackHelperContainer; |
import org.chromium.net.test.util.TestWebServer; |
/** |
@@ -56,8 +57,31 @@ public class PopupWindowTest extends AwTestBase { |
"This is a popup window"); |
triggerPopup(mParentContents, mParentContentsClient, mWebServer, parentPageHtml, |
- popupPageHtml, "/popup.html", "tryOpenWindow()"); |
- AwContents popupContents = connectPendingPopup(mParentContents); |
+ popupPageHtml, popupPath, "tryOpenWindow()"); |
+ AwContents popupContents = connectPendingPopup(mParentContents).popupContents; |
assertEquals(POPUP_TITLE, getTitleOnUiThread(popupContents)); |
} |
+ |
+ @SmallTest |
+ @Feature({"AndroidWebView"}) |
+ public void testOnPageFinishedCalledOnDomModificationAfterNavigation() throws Throwable { |
+ final String popupPath = "/popup.html"; |
+ final String parentPageHtml = CommonResources.makeHtmlPageFrom("", "<script>" |
+ + "function tryOpenWindow() {" |
+ + " window.popupWindow = window.open('" + popupPath + "');" |
+ + "}" |
+ + "function modifyDomOfPopup() {" |
+ + " window.popupWindow.document.body.innerHTML = 'Hello from the parent!';" |
+ + "}</script>"); |
+ |
+ triggerPopup(mParentContents, mParentContentsClient, mWebServer, parentPageHtml, |
+ null, popupPath, "tryOpenWindow()"); |
+ TestCallbackHelperContainer.OnPageFinishedHelper onPageFinishedHelper = |
+ connectPendingPopup(mParentContents).popupContentsClient.getOnPageFinishedHelper(); |
+ final int onPageFinishedCallCount = onPageFinishedHelper.getCallCount(); |
+ executeJavaScriptAndWaitForResult(mParentContents, mParentContentsClient, |
+ "modifyDomOfPopup()"); |
+ onPageFinishedHelper.waitForCallback(onPageFinishedCallCount); |
+ assertEquals("about:blank", onPageFinishedHelper.getUrl()); |
+ } |
} |