summaryrefslogtreecommitdiffstats
path: root/Source/WebKit/android/jni/WebCoreFrameBridge.cpp
diff options
context:
space:
mode:
authorSteve Block <steveblock@google.com>2011-08-25 12:41:57 +0100
committerSteve Block <steveblock@google.com>2011-08-31 14:21:59 +0100
commit5498351dca14a6380ef3174a0afa0bb950b92d68 (patch)
tree99de5978348aa4b62d01cb3443af1b3abacd1de4 /Source/WebKit/android/jni/WebCoreFrameBridge.cpp
parentb489cd197be0a820a768f5bafacac9b6cd9cbb1c (diff)
downloadexternal_webkit-5498351dca14a6380ef3174a0afa0bb950b92d68.zip
external_webkit-5498351dca14a6380ef3174a0afa0bb950b92d68.tar.gz
external_webkit-5498351dca14a6380ef3174a0afa0bb950b92d68.tar.bz2
Make sure WebViewClient.onPageStarted() doesn't preceed WebViewClient.shouldOverrideUrlLoading()
In the case of a server-side redirect, we were triggering a callback to WebViewClient.onPageStarted() before we'd called WebViewClient.shouldOverrideUrlLoading(). This change delays calling WebViewClient.onPageStarted() until after WebViewClient.shouldOverrideUrlLoading() has returned and has indicated that the WebView should continue with the load. Bug: 5191031 Change-Id: I43d12c4df46e5d6e2defad10e80efbf0d5c30aed
Diffstat (limited to 'Source/WebKit/android/jni/WebCoreFrameBridge.cpp')
-rw-r--r--Source/WebKit/android/jni/WebCoreFrameBridge.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/Source/WebKit/android/jni/WebCoreFrameBridge.cpp b/Source/WebKit/android/jni/WebCoreFrameBridge.cpp
index c1c8d96..f243b09 100644
--- a/Source/WebKit/android/jni/WebCoreFrameBridge.cpp
+++ b/Source/WebKit/android/jni/WebCoreFrameBridge.cpp
@@ -839,22 +839,24 @@ WebFrame::canHandleRequest(const WebCore::ResourceRequest& request)
if (!javaFrame.get())
return true;
- // always handle "POST" in place
+ // Always handle "POST" in place
if (equalIgnoringCase(request.httpMethod(), "POST"))
return true;
const WebCore::KURL& requestUrl = request.url();
const WTF::String& url = requestUrl.string();
- // Empty urls should not be sent to java
+ // Empty URLs should not be sent to Java
if (url.isEmpty())
return true;
jstring jUrlStr = wtfStringToJstring(env, url);
- // check to see whether browser app wants to hijack url loading.
- // if browser app handles the url, we will return false to bail out WebCore loading
+ // Delegate to the Java side to make the decision. Note that the sense of
+ // the return value of the Java method is reversed. It will return true if
+ // the embedding application wishes to hijack the load and hence the WebView
+ // should _not_ proceed with the load.
jboolean ret = env->CallBooleanMethod(javaFrame.get(), mJavaFrame->mHandleUrl, jUrlStr);
checkException(env);
env->DeleteLocalRef(jUrlStr);
- return (ret == 0);
+ return ret == JNI_FALSE;
}
bool