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

Unified Diff: content/browser/android/web_contents_observer_android.cc

Issue 133073012: android: Fix ContentViewCore and RenderWidgetHostViewAndroid lifetime issue (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: nit Created 6 years, 11 months 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/android/web_contents_observer_android.cc
diff --git a/content/browser/android/web_contents_observer_android.cc b/content/browser/android/web_contents_observer_android.cc
index 235041be67422e2924b9bf106d613693048a5df0..03f1af66e5d24ba37217bddeb27b284293924b2b 100644
--- a/content/browser/android/web_contents_observer_android.cc
+++ b/content/browser/android/web_contents_observer_android.cc
@@ -28,8 +28,10 @@ namespace content {
WebContentsObserverAndroid::WebContentsObserverAndroid(
JNIEnv* env,
jobject obj,
+ ContentViewCore* content_view_core,
WebContents* web_contents)
: WebContentsObserver(web_contents),
+ content_view_core_(content_view_core),
weak_java_observer_(env, obj){
}
@@ -40,7 +42,7 @@ jlong Init(JNIEnv* env, jobject obj, jlong native_content_view_core) {
ContentViewCore* content_view_core =
reinterpret_cast<ContentViewCore*>(native_content_view_core);
WebContentsObserverAndroid* native_observer = new WebContentsObserverAndroid(
- env, obj, content_view_core->GetWebContents());
+ env, obj, content_view_core, content_view_core->GetWebContents());
return reinterpret_cast<intptr_t>(native_observer);
}
@@ -50,6 +52,8 @@ void WebContentsObserverAndroid::Destroy(JNIEnv* env, jobject obj) {
void WebContentsObserverAndroid::WebContentsDestroyed(
WebContents* web_contents) {
+ content_view_core_->OnDetachedFromWebContents(web_contents);
+
JNIEnv* env = AttachCurrentThread();
ScopedJavaLocalRef<jobject> obj(weak_java_observer_.get(env));
if (obj.is_null()) {

Powered by Google App Engine
This is Rietveld 408576698