| 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..62812d18a3b379ae7d74a5ff198687f882e44ef5 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::OnRenderProcessGoneDetail(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_onRenderProcessGoneDetail(env, obj,
|
| + child_process_id, crashed);
|
| +}
|
| +
|
| } // namespace android_webview
|
|
|