diff options
author | kristianm@chromium.org <kristianm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-27 05:21:39 +0000 |
---|---|---|
committer | kristianm@chromium.org <kristianm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-27 05:21:39 +0000 |
commit | 0b003a79446713f5f4179bcc9ac4f4302796cfe4 (patch) | |
tree | 81a15b2f31e757275706faf28be8ef492a690931 | |
parent | 4e49fe1484b47c3428ef75a527b54cbd9206ff5c (diff) | |
download | chromium_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.cc | 16 |
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()); } |