Index: android_webview/native/aw_contents.cc |
diff --git a/android_webview/native/aw_contents.cc b/android_webview/native/aw_contents.cc |
index be85577b629fc0e24a3c68c7db7523a5f0730a8b..7d2b36299f6a9fbd0cbc82378efe3bbc3db30a74 100644 |
--- a/android_webview/native/aw_contents.cc |
+++ b/android_webview/native/aw_contents.cc |
@@ -179,6 +179,12 @@ AwBrowserPermissionRequestDelegate* AwBrowserPermissionRequestDelegate::FromID( |
return aw_contents; |
} |
+// static |
+AwRenderProcessGoneDelegate* AwRenderProcessGoneDelegate::FromWebContents( |
+ content::WebContents* web_contents) { |
+ return AwContents::FromWebContents(web_contents); |
+} |
+ |
AwContents::AwContents(std::unique_ptr<WebContents> web_contents) |
: content::WebContentsObserver(web_contents.get()), |
functor_(nullptr), |
@@ -1298,4 +1304,26 @@ void AwContents::DidDetachInterstitialPage() { |
browser_view_renderer_.SetActiveCompositorID(compositor_id); |
} |
+void AwContents::OnRenderProcessGone(int child_process_id) { |
+ DCHECK_CURRENTLY_ON(BrowserThread::UI); |
+ JNIEnv* env = AttachCurrentThread(); |
+ ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); |
+ if (obj.is_null()) |
+ return; |
+ |
+ Java_AwContents_onRenderProcessGone(env, obj, child_process_id); |
+} |
+ |
+bool AwContents::OnRenderProcessGoneWithDetail(int child_process_id, |
+ bool crashed) { |
+ DCHECK_CURRENTLY_ON(BrowserThread::UI); |
+ JNIEnv* env = AttachCurrentThread(); |
+ ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); |
+ if (obj.is_null()) |
+ return false; |
+ |
+ return Java_AwContents_onRenderProcessGoneWithDetail(env, obj, |
+ child_process_id, crashed); |
+} |
+ |
} // namespace android_webview |