Index: chrome/browser/memory/tab_manager_web_contents_data.cc |
diff --git a/chrome/browser/memory/tab_manager_web_contents_data.cc b/chrome/browser/memory/tab_manager_web_contents_data.cc |
index e3f973997c2737bd56b2cc25f79b36df503c2a23..f8d75d2cc151eb1207b27cb82bd4a13dd9f2db83 100644 |
--- a/chrome/browser/memory/tab_manager_web_contents_data.cc |
+++ b/chrome/browser/memory/tab_manager_web_contents_data.cc |
@@ -98,12 +98,8 @@ void TabManager::WebContentsData::SetDiscardState(bool state) { |
} |
tab_data_.is_discarded_ = state; |
- |
- // TabManager could not exist in tests. |
- if (g_browser_process->GetTabManager()) { |
- g_browser_process->GetTabManager()->OnDiscardedStateChange(web_contents(), |
- state); |
- } |
+ g_browser_process->GetTabManager()->OnDiscardedStateChange(web_contents(), |
+ state); |
} |
int TabManager::WebContentsData::DiscardCount() { |
@@ -172,7 +168,8 @@ TabManager::WebContentsData::Data::Data() |
last_discard_time_(TimeTicks::UnixEpoch()), |
last_reload_time_(TimeTicks::UnixEpoch()), |
last_inactive_time_(TimeTicks::UnixEpoch()), |
- engagement_score_(-1.0) {} |
+ engagement_score_(-1.0), |
+ is_auto_discardable(true) {} |
bool TabManager::WebContentsData::Data::operator==(const Data& right) const { |
return is_discarded_ == right.is_discarded_ && |
@@ -188,4 +185,17 @@ bool TabManager::WebContentsData::Data::operator!=(const Data& right) const { |
return !(*this == right); |
} |
+void TabManager::WebContentsData::SetAutoDiscardableState(bool state) { |
+ if (tab_data_.is_auto_discardable == state) |
+ return; |
+ |
+ tab_data_.is_auto_discardable = state; |
+ g_browser_process->GetTabManager()->OnAutoDiscardableStateChange( |
+ web_contents(), state); |
+} |
+ |
+bool TabManager::WebContentsData::IsAutoDiscardable() { |
+ return tab_data_.is_auto_discardable; |
+} |
+ |
} // namespace memory |