Handle all termination status enums in WebContentsImpl::IsCrashed.
Use a switch so that if a new enum value is added, a compile
error will force us to update this code.
Bug: 817124
Change-Id: I4183b735c913532c47df97c0518853b7d26aa91d
Reviewed-on: https://chromium-review.googlesource.com/994414
Commit-Queue: Dominic Mazzoni <[email protected]>
Reviewed-by: Scott Violet <[email protected]>
Reviewed-by: John Abd-El-Malek <[email protected]>
Reviewed-by: Will Harris <[email protected]>
Cr-Commit-Position: refs/heads/master@{#561947}
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index dde4f26..d4339f8f 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -1437,14 +1437,29 @@
}
bool WebContentsImpl::IsCrashed() const {
- return (crashed_status_ == base::TERMINATION_STATUS_PROCESS_CRASHED ||
- crashed_status_ == base::TERMINATION_STATUS_ABNORMAL_TERMINATION ||
- crashed_status_ == base::TERMINATION_STATUS_PROCESS_WAS_KILLED ||
+ switch (crashed_status_) {
+ case base::TERMINATION_STATUS_PROCESS_CRASHED:
+ case base::TERMINATION_STATUS_ABNORMAL_TERMINATION:
+ case base::TERMINATION_STATUS_PROCESS_WAS_KILLED:
+ case base::TERMINATION_STATUS_OOM:
+ case base::TERMINATION_STATUS_LAUNCH_FAILED:
#if defined(OS_CHROMEOS)
- crashed_status_ ==
- base::TERMINATION_STATUS_PROCESS_WAS_KILLED_BY_OOM ||
+ case base::TERMINATION_STATUS_PROCESS_WAS_KILLED_BY_OOM:
#endif
- crashed_status_ == base::TERMINATION_STATUS_LAUNCH_FAILED);
+#if defined(OS_ANDROID)
+ case base::TERMINATION_STATUS_OOM_PROTECTED:
+#endif
+ return true;
+ case base::TERMINATION_STATUS_NORMAL_TERMINATION:
+ case base::TERMINATION_STATUS_STILL_RUNNING:
+ return false;
+ case base::TERMINATION_STATUS_MAX_ENUM:
+ NOTREACHED();
+ return false;
+ }
+
+ NOTREACHED();
+ return false;
}
void WebContentsImpl::SetIsCrashed(base::TerminationStatus status,