Commit 73a48326 authored by Dominic Mazzoni's avatar Dominic Mazzoni Committed by Commit Bot

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 <dmazzoni@chromium.org>
Reviewed-by: default avatarScott Violet <sky@chromium.org>
Reviewed-by: default avatarJohn Abd-El-Malek <jam@chromium.org>
Reviewed-by: default avatarWill Harris <wfh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#561947}
parent fdff4bbd
......@@ -1437,14 +1437,29 @@ bool WebContentsImpl::IsConnectedToBluetoothDevice() const {
}
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,
......
......@@ -377,14 +377,7 @@ void WebView::ReattachForFullscreenChange(bool enter_fullscreen) {
}
void WebView::UpdateCrashedOverlayView() {
// TODO(dmazzoni): Fix WebContents::IsCrashed() so we can call that
// instead of checking termination status codes.
if (web_contents() &&
web_contents()->GetCrashedStatus() !=
base::TERMINATION_STATUS_NORMAL_TERMINATION &&
web_contents()->GetCrashedStatus() !=
base::TERMINATION_STATUS_STILL_RUNNING &&
crashed_overlay_view_) {
if (web_contents() && web_contents()->IsCrashed() && crashed_overlay_view_) {
SetFocusBehavior(FocusBehavior::NEVER);
crashed_overlay_view_->SetVisible(true);
return;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment