Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/browser/android/web_contents_observer_proxy.h" | 5 #include "content/browser/android/web_contents_observer_proxy.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/android/jni_android.h" | 9 #include "base/android/jni_android.h" |
| 10 #include "base/android/jni_string.h" | 10 #include "base/android/jni_string.h" |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 74 | 74 |
| 75 void WebContentsObserverProxy::RenderProcessGone( | 75 void WebContentsObserverProxy::RenderProcessGone( |
| 76 base::TerminationStatus termination_status) { | 76 base::TerminationStatus termination_status) { |
| 77 JNIEnv* env = AttachCurrentThread(); | 77 JNIEnv* env = AttachCurrentThread(); |
| 78 ScopedJavaLocalRef<jobject> obj(java_observer_); | 78 ScopedJavaLocalRef<jobject> obj(java_observer_); |
| 79 jboolean was_oom_protected = | 79 jboolean was_oom_protected = |
| 80 termination_status == base::TERMINATION_STATUS_OOM_PROTECTED; | 80 termination_status == base::TERMINATION_STATUS_OOM_PROTECTED; |
| 81 Java_WebContentsObserverProxy_renderProcessGone(env, obj, was_oom_protected); | 81 Java_WebContentsObserverProxy_renderProcessGone(env, obj, was_oom_protected); |
| 82 } | 82 } |
| 83 | 83 |
| 84 void WebContentsObserverProxy::DidFinishNavigation( | |
| 85 NavigationHandle* navigation_handle) { | |
| 86 JNIEnv* env = AttachCurrentThread(); | |
| 87 ScopedJavaLocalRef<jobject> obj(java_observer_); | |
| 88 ScopedJavaLocalRef<jstring> jstring_url( | |
| 89 ConvertUTF8ToJavaString(env, web_contents()->GetVisibleURL().spec())); | |
| 90 Java_WebContentsObserverProxy_didFinishNavigation( | |
| 91 env, obj, navigation_handle->IsInMainFrame(), | |
| 92 navigation_handle->IsErrorPage(), navigation_handle->HasCommitted()); | |
| 93 } | |
| 94 | |
| 95 void WebContentsObserverProxy::DidStartLoading() { | 84 void WebContentsObserverProxy::DidStartLoading() { |
| 96 JNIEnv* env = AttachCurrentThread(); | 85 JNIEnv* env = AttachCurrentThread(); |
| 97 ScopedJavaLocalRef<jobject> obj(java_observer_); | 86 ScopedJavaLocalRef<jobject> obj(java_observer_); |
| 98 ScopedJavaLocalRef<jstring> jstring_url( | 87 ScopedJavaLocalRef<jstring> jstring_url( |
| 99 ConvertUTF8ToJavaString(env, web_contents()->GetVisibleURL().spec())); | 88 ConvertUTF8ToJavaString(env, web_contents()->GetVisibleURL().spec())); |
| 100 if (auto* entry = web_contents()->GetController().GetPendingEntry()) { | 89 if (auto* entry = web_contents()->GetController().GetPendingEntry()) { |
| 101 base_url_of_last_started_data_url_ = entry->GetBaseURLForDataURL(); | 90 base_url_of_last_started_data_url_ = entry->GetBaseURLForDataURL(); |
| 102 } | 91 } |
| 103 Java_WebContentsObserverProxy_didStartLoading(env, obj, jstring_url); | 92 Java_WebContentsObserverProxy_didStartLoading(env, obj, jstring_url); |
| 104 } | 93 } |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 212 ui::PageTransition transition_type) { | 201 ui::PageTransition transition_type) { |
| 213 JNIEnv* env = AttachCurrentThread(); | 202 JNIEnv* env = AttachCurrentThread(); |
| 214 ScopedJavaLocalRef<jobject> obj(java_observer_); | 203 ScopedJavaLocalRef<jobject> obj(java_observer_); |
| 215 ScopedJavaLocalRef<jstring> jstring_url( | 204 ScopedJavaLocalRef<jstring> jstring_url( |
| 216 ConvertUTF8ToJavaString(env, url.spec())); | 205 ConvertUTF8ToJavaString(env, url.spec())); |
| 217 Java_WebContentsObserverProxy_didCommitProvisionalLoadForFrame( | 206 Java_WebContentsObserverProxy_didCommitProvisionalLoadForFrame( |
| 218 env, obj, render_frame_host->GetRoutingID(), | 207 env, obj, render_frame_host->GetRoutingID(), |
| 219 !render_frame_host->GetParent(), jstring_url, transition_type); | 208 !render_frame_host->GetParent(), jstring_url, transition_type); |
| 220 } | 209 } |
| 221 | 210 |
| 211 void WebContentsObserverProxy::DidStartNavigation( | |
| 212 NavigationHandle* navigation_handle) { | |
| 213 JNIEnv* env = AttachCurrentThread(); | |
| 214 ScopedJavaLocalRef<jobject> obj(java_observer_); | |
| 215 ScopedJavaLocalRef<jstring> jstring_url( | |
| 216 ConvertUTF8ToJavaString(env, navigation_handle->GetURL().spec())); | |
| 217 Java_WebContentsObserverProxy_didStartNavigation( | |
| 218 env, obj, jstring_url, navigation_handle->IsInMainFrame(), | |
| 219 navigation_handle->IsErrorPage()); | |
| 220 } | |
| 221 | |
| 222 void WebContentsObserverProxy::DidFinishNavigation( | |
| 223 NavigationHandle* navigation_handle) { | |
| 224 JNIEnv* env = AttachCurrentThread(); | |
| 225 ScopedJavaLocalRef<jobject> obj(java_observer_); | |
| 226 ScopedJavaLocalRef<jstring> jstring_url( | |
| 227 ConvertUTF8ToJavaString(env, navigation_handle->GetURL().spec())); | |
| 228 jboolean is_reload = false; | |
| 229 | |
| 230 if (navigation_handle->HasCommitted()) { | |
| 231 is_reload = ui::PageTransitionCoreTypeIs( | |
|
Ted C
2017/01/06 21:50:59
pass the page transition type directly instead of
sky
2017/01/06 23:14:43
If we add INVALID it means all existing code would
| |
| 232 navigation_handle->GetPageTransition(), ui::PAGE_TRANSITION_RELOAD); | |
| 233 } | |
| 234 | |
| 235 Java_WebContentsObserverProxy_didFinishNavigation( | |
| 236 env, obj, jstring_url, navigation_handle->IsInMainFrame(), | |
| 237 navigation_handle->IsErrorPage(), navigation_handle->HasCommitted(), | |
| 238 navigation_handle->IsSamePage(), is_reload, | |
| 239 navigation_handle->GetNetErrorCode()); | |
| 240 } | |
| 241 | |
| 222 void WebContentsObserverProxy::DidFinishLoad(RenderFrameHost* render_frame_host, | 242 void WebContentsObserverProxy::DidFinishLoad(RenderFrameHost* render_frame_host, |
| 223 const GURL& validated_url) { | 243 const GURL& validated_url) { |
| 224 JNIEnv* env = AttachCurrentThread(); | 244 JNIEnv* env = AttachCurrentThread(); |
| 225 ScopedJavaLocalRef<jobject> obj(java_observer_); | 245 ScopedJavaLocalRef<jobject> obj(java_observer_); |
| 226 | 246 |
| 227 std::string url_string = validated_url.spec(); | 247 std::string url_string = validated_url.spec(); |
| 228 SetToBaseURLForDataURLIfNeeded(&url_string); | 248 SetToBaseURLForDataURLIfNeeded(&url_string); |
| 229 | 249 |
| 230 ScopedJavaLocalRef<jstring> jstring_url( | 250 ScopedJavaLocalRef<jstring> jstring_url( |
| 231 ConvertUTF8ToJavaString(env, url_string)); | 251 ConvertUTF8ToJavaString(env, url_string)); |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 341 // a base URL if there has been a loadUrl("javascript:...") after | 361 // a base URL if there has been a loadUrl("javascript:...") after |
| 342 // loadDataWithBaseUrl. | 362 // loadDataWithBaseUrl. |
| 343 *url = base_url_of_last_started_data_url_.possibly_invalid_spec(); | 363 *url = base_url_of_last_started_data_url_.possibly_invalid_spec(); |
| 344 } | 364 } |
| 345 } | 365 } |
| 346 | 366 |
| 347 bool RegisterWebContentsObserverProxy(JNIEnv* env) { | 367 bool RegisterWebContentsObserverProxy(JNIEnv* env) { |
| 348 return RegisterNativesImpl(env); | 368 return RegisterNativesImpl(env); |
| 349 } | 369 } |
| 350 } // namespace content | 370 } // namespace content |
| OLD | NEW |