OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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_android.h" | 5 #include "content/browser/android/web_contents_observer_android.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include <jni.h> | 9 #include <jni.h> |
10 | 10 |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
56 JNIEnv* env = AttachCurrentThread(); | 56 JNIEnv* env = AttachCurrentThread(); |
57 ScopedJavaLocalRef<jobject> obj(weak_java_observer_.get(env)); | 57 ScopedJavaLocalRef<jobject> obj(weak_java_observer_.get(env)); |
58 if (obj.is_null()) { | 58 if (obj.is_null()) { |
59 delete this; | 59 delete this; |
60 } else { | 60 } else { |
61 // The java side will destroy |this| | 61 // The java side will destroy |this| |
62 Java_WebContentsObserver_detachFromWebContents(env, obj.obj()); | 62 Java_WebContentsObserver_detachFromWebContents(env, obj.obj()); |
63 } | 63 } |
64 } | 64 } |
65 | 65 |
| 66 void WebContentsObserverAndroid::RenderViewReady() { |
| 67 JNIEnv* env = AttachCurrentThread(); |
| 68 ScopedJavaLocalRef<jobject> obj(weak_java_observer_.get(env)); |
| 69 if (obj.is_null()) |
| 70 return; |
| 71 Java_WebContentsObserver_renderViewReady(env, obj.obj()); |
| 72 } |
| 73 |
66 void WebContentsObserverAndroid::RenderProcessGone( | 74 void WebContentsObserverAndroid::RenderProcessGone( |
67 base::TerminationStatus termination_status) { | 75 base::TerminationStatus termination_status) { |
68 JNIEnv* env = AttachCurrentThread(); | 76 JNIEnv* env = AttachCurrentThread(); |
69 ScopedJavaLocalRef<jobject> obj(weak_java_observer_.get(env)); | 77 ScopedJavaLocalRef<jobject> obj(weak_java_observer_.get(env)); |
70 if (obj.is_null()) | 78 if (obj.is_null()) |
71 return; | 79 return; |
72 jboolean was_oom_protected = | 80 jboolean was_oom_protected = |
73 termination_status == base::TERMINATION_STATUS_OOM_PROTECTED; | 81 termination_status == base::TERMINATION_STATUS_OOM_PROTECTED; |
74 Java_WebContentsObserver_renderProcessGone( | 82 Java_WebContentsObserver_renderProcessGone( |
75 env, obj.obj(), was_oom_protected); | 83 env, obj.obj(), was_oom_protected); |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
167 ScopedJavaLocalRef<jstring> jstring_base_url( | 175 ScopedJavaLocalRef<jstring> jstring_base_url( |
168 ConvertUTF8ToJavaString(env, params.base_url.spec())); | 176 ConvertUTF8ToJavaString(env, params.base_url.spec())); |
169 jboolean jboolean_is_reload = ui::PageTransitionCoreTypeIs( | 177 jboolean jboolean_is_reload = ui::PageTransitionCoreTypeIs( |
170 params.transition, ui::PAGE_TRANSITION_RELOAD); | 178 params.transition, ui::PAGE_TRANSITION_RELOAD); |
171 | 179 |
172 Java_WebContentsObserver_didNavigateAnyFrame( | 180 Java_WebContentsObserver_didNavigateAnyFrame( |
173 env, obj.obj(), jstring_url.obj(), jstring_base_url.obj(), | 181 env, obj.obj(), jstring_url.obj(), jstring_base_url.obj(), |
174 jboolean_is_reload); | 182 jboolean_is_reload); |
175 } | 183 } |
176 | 184 |
| 185 void WebContentsObserverAndroid::DocumentAvailableInMainFrame() { |
| 186 JNIEnv* env = AttachCurrentThread(); |
| 187 ScopedJavaLocalRef<jobject> obj(weak_java_observer_.get(env)); |
| 188 if (obj.is_null()) |
| 189 return; |
| 190 Java_WebContentsObserver_documentAvailableInMainFrame(env, obj.obj()); |
| 191 } |
| 192 |
177 void WebContentsObserverAndroid::DidStartProvisionalLoadForFrame( | 193 void WebContentsObserverAndroid::DidStartProvisionalLoadForFrame( |
178 RenderFrameHost* render_frame_host, | 194 RenderFrameHost* render_frame_host, |
179 const GURL& validated_url, | 195 const GURL& validated_url, |
180 bool is_error_page, | 196 bool is_error_page, |
181 bool is_iframe_srcdoc) { | 197 bool is_iframe_srcdoc) { |
182 JNIEnv* env = AttachCurrentThread(); | 198 JNIEnv* env = AttachCurrentThread(); |
183 ScopedJavaLocalRef<jobject> obj(weak_java_observer_.get(env)); | 199 ScopedJavaLocalRef<jobject> obj(weak_java_observer_.get(env)); |
184 if (obj.is_null()) | 200 if (obj.is_null()) |
185 return; | 201 return; |
186 ScopedJavaLocalRef<jstring> jstring_url( | 202 ScopedJavaLocalRef<jstring> jstring_url( |
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
316 if (obj.is_null()) | 332 if (obj.is_null()) |
317 return; | 333 return; |
318 Java_WebContentsObserver_didFirstVisuallyNonEmptyPaint( | 334 Java_WebContentsObserver_didFirstVisuallyNonEmptyPaint( |
319 env, obj.obj()); | 335 env, obj.obj()); |
320 } | 336 } |
321 | 337 |
322 bool RegisterWebContentsObserverAndroid(JNIEnv* env) { | 338 bool RegisterWebContentsObserverAndroid(JNIEnv* env) { |
323 return RegisterNativesImpl(env); | 339 return RegisterNativesImpl(env); |
324 } | 340 } |
325 } // namespace content | 341 } // namespace content |
OLD | NEW |