| 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 | 
|  |