Index: chrome/browser/android/offline_pages/background_loader_offliner.cc |
diff --git a/chrome/browser/android/offline_pages/background_loader_offliner.cc b/chrome/browser/android/offline_pages/background_loader_offliner.cc |
index 096a5229acc2c2d6cb5eefe0f4bf9c3ef3b58c11..4d72e56a98d2c10e3aa3e3c5d7e59e77c3ec1594 100644 |
--- a/chrome/browser/android/offline_pages/background_loader_offliner.cc |
+++ b/chrome/browser/android/offline_pages/background_loader_offliner.cc |
@@ -97,6 +97,35 @@ void BackgroundLoaderOffliner::DidStopLoading() { |
weak_ptr_factory_.GetWeakPtr())); |
} |
+void BackgroundLoaderOffliner::RenderProcessGone( |
+ base::TerminationStatus status) { |
+ if (pending_request_) { |
+ SavePageRequest request(*pending_request_.get()); |
+ switch (status) { |
+ case base::TERMINATION_STATUS_OOM: |
+ case base::TERMINATION_STATUS_PROCESS_CRASHED: |
+ case base::TERMINATION_STATUS_STILL_RUNNING: |
+ completion_callback_.Run( |
+ request, Offliner::RequestStatus::LOADING_FAILED_NO_NEXT); |
+ break; |
+ case base::TERMINATION_STATUS_PROCESS_WAS_KILLED: |
+ default: |
+ completion_callback_.Run(request, |
+ Offliner::RequestStatus::LOADING_FAILED); |
+ } |
+ ResetState(); |
+ } |
+} |
+ |
+void BackgroundLoaderOffliner::WebContentsDestroyed() { |
+ if (pending_request_) { |
+ SavePageRequest request(*pending_request_.get()); |
+ completion_callback_.Run(*pending_request_.get(), |
+ Offliner::RequestStatus::LOADING_FAILED); |
+ ResetState(); |
+ } |
+} |
+ |
void BackgroundLoaderOffliner::OnPageSaved(SavePageResult save_result, |
int64_t offline_id) { |
if (!pending_request_) |