diff options
author | grt <grt@chromium.org> | 2015-02-26 06:26:53 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-02-26 14:27:45 +0000 |
commit | c2d96fa87b653355fc8335c0accecff8852cae5d (patch) | |
tree | f4c0a61e47ed90ba37f2b2b9ba4d78dad1d80677 /android_webview | |
parent | 49001892c02a5287233acc68edaaf2e0dc981163 (diff) | |
download | chromium_src-c2d96fa87b653355fc8335c0accecff8852cae5d.zip chromium_src-c2d96fa87b653355fc8335c0accecff8852cae5d.tar.gz chromium_src-c2d96fa87b653355fc8335c0accecff8852cae5d.tar.bz2 |
Revert of [Android WebView] Synthesize a fake page loading event on page source modification (patchset #8 id:140001 of https://codereview.chromium.org/924833003/)
Reason for revert:
Reverting to see if this caused AwContentsClientFullScreenTest#testPowerSaveBlockerIsTransferredToFullscreen failure here: http://crbug.com/462213.
Original issue's description:
> [Android WebView] Synthesize a fake page loading event on page source modification
>
> When a script modifies page source of a non-committed page, we need to
> notify clients, so they can update the URL bar to avoid confusion.
>
> BUG=458569
>
> Committed: https://crrev.com/e38bb6cdeb1170cb2cd7faae8507dc6c34c58c7d
> Cr-Commit-Position: refs/heads/master@{#318222}
TBR=torne@chromium.org,tedchoc@chromium.org,davidben@chromium.org,creis@chromium.org,mnaganov@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=458569
Review URL: https://codereview.chromium.org/958933002
Cr-Commit-Position: refs/heads/master@{#318231}
Diffstat (limited to 'android_webview')
8 files changed, 23 insertions, 105 deletions
diff --git a/android_webview/java/src/org/chromium/android_webview/AwContents.java b/android_webview/java/src/org/chromium/android_webview/AwContents.java index 1f42a1c..e53f4f7 100644 --- a/android_webview/java/src/org/chromium/android_webview/AwContents.java +++ b/android_webview/java/src/org/chromium/android_webview/AwContents.java @@ -1239,19 +1239,6 @@ public class AwContents implements SmartClipProvider, return url; } - /** - * Gets the last committed URL. It represents the current page that is - * displayed in WebContents. It represents the current security context. - * - * @return The URL of the current page or null if it's empty. - */ - public String getLastCommittedUrl() { - if (isDestroyed()) return null; - String url = mWebContents.getLastCommittedUrl(); - if (url == null || url.trim().isEmpty()) return null; - return url; - } - public void requestFocus() { mAwViewMethods.requestFocus(); } @@ -1844,11 +1831,6 @@ public class AwContents implements SmartClipProvider, return ports; } - public boolean hasAccessedInitialDocument() { - if (isDestroyed()) return false; - return mWebContents.hasAccessedInitialDocument(); - } - //-------------------------------------------------------------------------------------------- // View and ViewGroup method implementations //-------------------------------------------------------------------------------------------- diff --git a/android_webview/java/src/org/chromium/android_webview/AwWebContentsDelegate.java b/android_webview/java/src/org/chromium/android_webview/AwWebContentsDelegate.java index bf5af89..a0003e6 100644 --- a/android_webview/java/src/org/chromium/android_webview/AwWebContentsDelegate.java +++ b/android_webview/java/src/org/chromium/android_webview/AwWebContentsDelegate.java @@ -37,8 +37,4 @@ public abstract class AwWebContentsDelegate extends WebContentsDelegateAndroid { // Call in response to a prior runFileChooser call. protected static native void nativeFilesSelectedInChooser(int processId, int renderId, int modeFlags, String[] filePath, String[] displayName); - - @Override - @CalledByNative - public abstract void navigationStateChanged(int flags); } diff --git a/android_webview/java/src/org/chromium/android_webview/AwWebContentsDelegateAdapter.java b/android_webview/java/src/org/chromium/android_webview/AwWebContentsDelegateAdapter.java index 10ae2a5..3f2c707 100644 --- a/android_webview/java/src/org/chromium/android_webview/AwWebContentsDelegateAdapter.java +++ b/android_webview/java/src/org/chromium/android_webview/AwWebContentsDelegateAdapter.java @@ -11,7 +11,6 @@ import android.os.AsyncTask; import android.os.Handler; import android.os.Message; import android.provider.MediaStore; -import android.text.TextUtils; import android.util.Log; import android.view.KeyEvent; import android.view.View; @@ -20,7 +19,6 @@ import android.webkit.ValueCallback; import org.chromium.base.ContentUriUtils; import org.chromium.base.ThreadUtils; -import org.chromium.content_public.browser.InvalidateTypes; /** * Adapts the AwWebContentsDelegate interface to the AwContentsClient interface. @@ -215,20 +213,6 @@ class AwWebContentsDelegateAdapter extends AwWebContentsDelegate { } @Override - public void navigationStateChanged(int flags) { - if ((flags & InvalidateTypes.URL) != 0 && mAwContents.hasAccessedInitialDocument()) { - // Hint the client to show the last committed url, as it may be unsafe to show - // the pending entry. - String url = mAwContents.getLastCommittedUrl(); - url = TextUtils.isEmpty(url) ? "about:blank" : url; - mContentsClient.onPageStarted(url); - mContentsClient.onLoadResource(url); - mContentsClient.onProgressChanged(100); - mContentsClient.onPageFinished(url); - } - } - - @Override public void toggleFullscreenModeForTab(boolean enterFullscreen) { if (enterFullscreen) { mContentViewClient.enterFullscreen(); diff --git a/android_webview/java_library_common.mk b/android_webview/java_library_common.mk index 0b29e70..9353cb4 100644 --- a/android_webview/java_library_common.mk +++ b/android_webview/java_library_common.mk @@ -55,7 +55,6 @@ $(call intermediates-dir-for,GYP,shared)/enums/console_message_level_java/org/ch $(call intermediates-dir-for,GYP,shared)/enums/content_gamepad_mapping/org/chromium/content/browser/input/CanonicalAxisIndex.java \ $(call intermediates-dir-for,GYP,shared)/enums/content_gamepad_mapping/org/chromium/content/browser/input/CanonicalButtonIndex.java \ $(call intermediates-dir-for,GYP,shared)/enums/gesture_event_type_java/org/chromium/content/browser/GestureEventType.java \ -$(call intermediates-dir-for,GYP,shared)/enums/invalidate_types_java/org/chromium/content_public/browser/InvalidateTypes.java \ $(call intermediates-dir-for,GYP,shared)/enums/navigation_controller_java/org/chromium/content_public/browser/navigation_controller/LoadURLType.java \ $(call intermediates-dir-for,GYP,shared)/enums/navigation_controller_java/org/chromium/content_public/browser/navigation_controller/UserAgentOverrideOption.java \ $(call intermediates-dir-for,GYP,shared)/enums/popup_item_type_java/org/chromium/content/browser/input/PopupItemType.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 a59030d..a81e907 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 @@ -5,14 +5,13 @@ package org.chromium.android_webview.test; import android.os.Build; -import android.test.suitebuilder.annotation.MediumTest; +import android.test.suitebuilder.annotation.SmallTest; import org.chromium.android_webview.AwContents; import org.chromium.android_webview.test.util.AwTestTouchUtils; 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; import java.util.concurrent.Callable; @@ -39,9 +38,6 @@ public class PopupWindowTest extends AwTestBase { mParentContentsClient = new TestAwContentsClient(); mParentContainerView = createAwTestContainerViewOnMainSync(mParentContentsClient); mParentContents = mParentContainerView.getAwContents(); - mPopupContentsClient = new TestAwContentsClient(); - mPopupContainerView = createAwTestContainerViewOnMainSync(mPopupContentsClient); - mPopupContents = mPopupContainerView.getAwContents(); mWebServer = TestWebServer.start(); } @@ -53,9 +49,7 @@ public class PopupWindowTest extends AwTestBase { super.tearDown(); } - // It is expected that the parent page contains a link that opens a popup window, - // and the test server is already pre-loaded with both parent and popup pages. - private void triggerPopup(String parentUrl) throws Throwable { + private void triggerPopup() throws Throwable { enableJavaScriptOnUiThread(mParentContents); getInstrumentation().runOnMainSync(new Runnable() { @Override @@ -65,6 +59,21 @@ public class PopupWindowTest extends AwTestBase { } }); + final String popupPath = "/popup.html"; + + final String parentPageHtml = CommonResources.makeHtmlPageFrom("", + "<script>" + + "function tryOpenWindow() {" + + " var newWindow = window.open('" + popupPath + "');" + + "}</script>" + + "<a class=\"full_view\" onclick=\"tryOpenWindow();\">Click me!</a>"); + final String popupPageHtml = CommonResources.makeHtmlPageFrom( + "<title>" + POPUP_TITLE + "</title>", + "This is a popup window"); + + final String parentUrl = mWebServer.setResponse("/popupParent.html", parentPageHtml, null); + mWebServer.setResponse(popupPath, popupPageHtml, null); + mParentContentsClient.getOnCreateWindowHelper().setReturnValue(true); loadUrlSync(mParentContents, mParentContentsClient.getOnPageFinishedHelper(), @@ -79,6 +88,10 @@ public class PopupWindowTest extends AwTestBase { } private void connectPendingPopup() throws Exception { + mPopupContentsClient = new TestAwContentsClient(); + mPopupContainerView = createAwTestContainerViewOnMainSync(mPopupContentsClient); + mPopupContents = mPopupContainerView.getAwContents(); + getInstrumentation().runOnMainSync(new Runnable() { @Override public void run() { @@ -87,22 +100,10 @@ public class PopupWindowTest extends AwTestBase { }); } - @MediumTest + @SmallTest @Feature({"AndroidWebView"}) public void testPopupWindow() throws Throwable { - final String popupPath = "/popup.html"; - final String parentPageHtml = CommonResources.makeHtmlPageFrom("", - "<script>" - + "function tryOpenWindow() {" - + " var newWindow = window.open('" + popupPath + "');" - + "}</script>" - + "<a class=\"full_view\" onclick=\"tryOpenWindow();\">Click me!</a>"); - final String popupPageHtml = CommonResources.makeHtmlPageFrom( - "<title>" + POPUP_TITLE + "</title>", - "This is a popup window"); - final String parentUrl = mWebServer.setResponse("/popupParent.html", parentPageHtml, null); - mWebServer.setResponse(popupPath, popupPageHtml, null); - triggerPopup(parentUrl); + triggerPopup(); connectPendingPopup(); poll(new Callable<Boolean>() { @Override @@ -111,33 +112,4 @@ public class PopupWindowTest extends AwTestBase { } }); } - - @MediumTest - @Feature({"AndroidWebView"}) - public void testOnPageFinishedCalledAfterModifyingPageSource() throws Throwable { - final String popupPath = "/popup.html"; - final String popupUrl = mWebServer.setResponseWithNoContentStatus(popupPath); - final String parentHtml = CommonResources.makeHtmlPageFrom("", - "<script>" - + "function tryOpenWindow() {" - + " window.popupWindow = window.open('" + popupPath + "');" - + "}" - + "function modifyDomOfPopup() {" - + " window.popupWindow.document.body.innerHTML = 'Hello from the parent!';" - + "}</script>" - + "<a class='full_view' onclick='tryOpenWindow();'>Click me!</a>"); - final String parentUrl = mWebServer.setResponse("/parent.html", parentHtml, null); - triggerPopup(parentUrl); - TestCallbackHelperContainer.OnPageFinishedHelper onPageFinishedHelper = - mPopupContentsClient.getOnPageFinishedHelper(); - int onPageFinishedCallCount = onPageFinishedHelper.getCallCount(); - connectPendingPopup(); - onPageFinishedHelper.waitForCallback(onPageFinishedCallCount); - - onPageFinishedCallCount = onPageFinishedHelper.getCallCount(); - executeJavaScriptAndWaitForResult(mParentContents, mParentContentsClient, - "modifyDomOfPopup()"); - onPageFinishedHelper.waitForCallback(onPageFinishedCallCount); - assertEquals("about:blank", onPageFinishedHelper.getUrl()); - } } diff --git a/android_webview/libwebviewchromium.gypi b/android_webview/libwebviewchromium.gypi index 691b1db..feff124 100644 --- a/android_webview/libwebviewchromium.gypi +++ b/android_webview/libwebviewchromium.gypi @@ -23,7 +23,6 @@ '../content/content.gyp:console_message_level_java', '../content/content.gyp:content_gamepad_mapping', '../content/content.gyp:gesture_event_type_java', - '../content/content.gyp:invalidate_types_java', '../content/content.gyp:navigation_controller_java', '../content/content.gyp:popup_item_type_java', '../content/content.gyp:result_codes_java', diff --git a/android_webview/native/aw_web_contents_delegate.cc b/android_webview/native/aw_web_contents_delegate.cc index d2a71e6..acece1b 100644 --- a/android_webview/native/aw_web_contents_delegate.cc +++ b/android_webview/native/aw_web_contents_delegate.cc @@ -163,18 +163,6 @@ void AwWebContentsDelegate::AddNewContents(WebContents* source, } } -void AwWebContentsDelegate::NavigationStateChanged( - content::WebContents* source, - content::InvalidateTypes changed_flags) { - JNIEnv* env = AttachCurrentThread(); - - ScopedJavaLocalRef<jobject> java_delegate = GetJavaDelegate(env); - if (java_delegate.obj()) { - Java_AwWebContentsDelegate_navigationStateChanged(env, java_delegate.obj(), - changed_flags); - } -} - // Notifies the delegate about the creation of a new WebContents. This // typically happens when popups are created. void AwWebContentsDelegate::WebContentsCreated( diff --git a/android_webview/native/aw_web_contents_delegate.h b/android_webview/native/aw_web_contents_delegate.h index afc881b..96cd325 100644 --- a/android_webview/native/aw_web_contents_delegate.h +++ b/android_webview/native/aw_web_contents_delegate.h @@ -40,8 +40,6 @@ class AwWebContentsDelegate bool user_gesture, bool* was_blocked) override; - void NavigationStateChanged(content::WebContents* source, - content::InvalidateTypes changed_flags) override; void WebContentsCreated(content::WebContents* source_contents, int opener_render_frame_id, const base::string16& frame_name, |