Commit b89bd2e0 authored by Francois Doray's avatar Francois Doray Committed by Commit Bot

RC: Add logging to diagnose tab discard failures on ChromeOS.

The failure reason is missing from logs received as part of user
feedback reports.

Change-Id: I8b0d7e06f7ab78595f30fb2eb6b949a3eaead705
Reviewed-on: https://chromium-review.googlesource.com/c/1371933Reviewed-by: default avatarChris Hamilton <chrisha@chromium.org>
Commit-Queue: François Doray <fdoray@chromium.org>
Cr-Commit-Position: refs/heads/master@{#615871}
parent aa221f1b
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
#include "chrome/browser/resource_coordinator/utils.h" #include "chrome/browser/resource_coordinator/utils.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h" #include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/browser/usb/usb_tab_helper.h" #include "chrome/browser/usb/usb_tab_helper.h"
#include "components/device_event_log/device_event_log.h"
#include "content/public/browser/navigation_controller.h" #include "content/public/browser/navigation_controller.h"
#include "content/public/browser/navigation_entry.h" #include "content/public/browser/navigation_entry.h"
#include "content/public/browser/render_frame_host.h" #include "content/public/browser/render_frame_host.h"
...@@ -779,8 +780,12 @@ void TabLifecycleUnitSource::TabLifecycleUnit::FinishDiscard( ...@@ -779,8 +780,12 @@ void TabLifecycleUnitSource::TabLifecycleUnit::FinishDiscard(
bool TabLifecycleUnitSource::TabLifecycleUnit::DiscardImpl( bool TabLifecycleUnitSource::TabLifecycleUnit::DiscardImpl(
LifecycleUnitDiscardReason reason) { LifecycleUnitDiscardReason reason) {
// Can't discard a tab when it isn't in a tabstrip. // Can't discard a tab when it isn't in a tabstrip.
if (!tab_strip_model_) if (!tab_strip_model_) {
// Logs are used to diagnose user feedback reports.
MEMORY_LOG(ERROR) << "Skipped discarding " << GetTitle()
<< " because it isn't in a tab strip.";
return false; return false;
}
const LifecycleUnitState target_state = const LifecycleUnitState target_state =
reason == LifecycleUnitDiscardReason::PROACTIVE && reason == LifecycleUnitDiscardReason::PROACTIVE &&
...@@ -789,6 +794,10 @@ bool TabLifecycleUnitSource::TabLifecycleUnit::DiscardImpl( ...@@ -789,6 +794,10 @@ bool TabLifecycleUnitSource::TabLifecycleUnit::DiscardImpl(
: LifecycleUnitState::DISCARDED; : LifecycleUnitState::DISCARDED;
if (!IsValidStateChange(GetState(), target_state, if (!IsValidStateChange(GetState(), target_state,
DiscardReasonToStateChangeReason(reason))) { DiscardReasonToStateChangeReason(reason))) {
// Logs are used to diagnose user feedback reports.
MEMORY_LOG(ERROR) << "Skipped discarding " << GetTitle()
<< " because a transition from " << GetState() << " to "
<< target_state << " is not allowed.";
return false; return false;
} }
......
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