summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkristianm@chromium.org <kristianm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-27 05:21:39 +0000
committerkristianm@chromium.org <kristianm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-27 05:21:39 +0000
commit0b003a79446713f5f4179bcc9ac4f4302796cfe4 (patch)
tree81a15b2f31e757275706faf28be8ef492a690931
parent4e49fe1484b47c3428ef75a527b54cbd9206ff5c (diff)
downloadchromium_src-0b003a79446713f5f4179bcc9ac4f4302796cfe4.zip
chromium_src-0b003a79446713f5f4179bcc9ac4f4302796cfe4.tar.gz
chromium_src-0b003a79446713f5f4179bcc9ac4f4302796cfe4.tar.bz2
Use baseurl instead of history url for page finished. This is what the
classic webview did. BUG=279623 Review URL: https://chromiumcodereview.appspot.com/22831024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@219696 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--content/browser/android/web_contents_observer_android.cc16
1 files changed, 14 insertions, 2 deletions
diff --git a/content/browser/android/web_contents_observer_android.cc b/content/browser/android/web_contents_observer_android.cc
index d9a1507..83821c4 100644
--- a/content/browser/android/web_contents_observer_android.cc
+++ b/content/browser/android/web_contents_observer_android.cc
@@ -15,6 +15,7 @@
#include "content/browser/renderer_host/render_widget_host_impl.h"
#include "content/browser/web_contents/web_contents_impl.h"
#include "content/public/browser/navigation_details.h"
+#include "content/public/browser/navigation_entry.h"
#include "jni/WebContentsObserverAndroid_jni.h"
using base::android::AttachCurrentThread;
@@ -78,8 +79,19 @@ void WebContentsObserverAndroid::DidStopLoading(
ScopedJavaLocalRef<jobject> obj(weak_java_observer_.get(env));
if (obj.is_null())
return;
- ScopedJavaLocalRef<jstring> jstring_url(ConvertUTF8ToJavaString(
- env, web_contents()->GetLastCommittedURL().spec()));
+
+ std::string url_string;
+ NavigationEntry* entry =
+ web_contents()->GetController().GetLastCommittedEntry();
+ // Not that GetBaseURLForDataURL is only used by the Android WebView
+ if (entry && !entry->GetBaseURLForDataURL().is_empty()) {
+ url_string = entry->GetBaseURLForDataURL().possibly_invalid_spec();
+ } else {
+ url_string = web_contents()->GetLastCommittedURL().spec();
+ }
+
+ ScopedJavaLocalRef<jstring> jstring_url(
+ ConvertUTF8ToJavaString(env, url_string));
Java_WebContentsObserverAndroid_didStopLoading(
env, obj.obj(), jstring_url.obj());
}