Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(945)

Side by Side Diff: content/browser/android/web_contents_observer_android.cc

Issue 686213003: Make WebContentsObserver pass more calls to Java. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698