Index: chrome/browser/ui/tabs/tab_discard_state.cc |
diff --git a/chrome/browser/ui/tabs/tab_discard_state.cc b/chrome/browser/ui/tabs/tab_discard_state.cc |
index 7a7e8f05592e7e53ab1f097f6cbd95f17e81544c..da2a386de64f523d7567ef891daa9ba3932564a4 100644 |
--- a/chrome/browser/ui/tabs/tab_discard_state.cc |
+++ b/chrome/browser/ui/tabs/tab_discard_state.cc |
@@ -4,6 +4,8 @@ |
#include "chrome/browser/ui/tabs/tab_discard_state.h" |
+#include "base/metrics/histogram.h" |
+#include "content/public/browser/browser_thread.h" |
#include "content/public/browser/web_contents.h" |
using content::WebContents; |
@@ -16,6 +18,7 @@ const char kDiscardStateKey[] = "TabDiscardState"; |
// static |
TabDiscardState* TabDiscardState::Get(WebContents* web_contents) { |
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
TabDiscardState* discard_state = static_cast<TabDiscardState*>( |
web_contents->GetUserData(&kDiscardStateKey)); |
@@ -31,6 +34,7 @@ TabDiscardState* TabDiscardState::Get(WebContents* web_contents) { |
// static |
void TabDiscardState::Set(WebContents* web_contents, TabDiscardState* state) { |
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
web_contents->SetUserData(&kDiscardStateKey, state); |
} |
@@ -43,6 +47,12 @@ bool TabDiscardState::IsDiscarded(WebContents* web_contents) { |
// static |
void TabDiscardState::SetDiscardState(WebContents* web_contents, bool state) { |
TabDiscardState* discard_state = TabDiscardState::Get(web_contents); |
+ if (discard_state->is_discarded_ && !state) { |
+ static int reload_count = 0; |
+ UMA_HISTOGRAM_CUSTOM_COUNTS("Tabs.Discard.ReloadCount", ++reload_count, 1, |
+ 1000, 50); |
+ } |
+ |
discard_state->is_discarded_ = state; |
} |