| Index: chrome/browser/memory/tab_manager.h
|
| diff --git a/chrome/browser/memory/tab_manager.h b/chrome/browser/memory/tab_manager.h
|
| index cd5c3480417bf76976c8a3849ae4d0e5fe6c5057..74ec76ac0bfa2ca817196904ad348dd7becc4cfc 100644
|
| --- a/chrome/browser/memory/tab_manager.h
|
| +++ b/chrome/browser/memory/tab_manager.h
|
| @@ -104,10 +104,16 @@ class TabManager : public TabStripModelObserver {
|
|
|
| // Discards a tab with the given unique ID. The tab still exists in the
|
| // tab-strip; clicking on it will reload it. Returns null if the tab cannot
|
| - // be found or cannot be discarded. Otherwise returns the old web_contents
|
| - // that got discarded. This value is mostly useful during testing.
|
| + // be found or cannot be discarded. Otherwise returns the new web_contents
|
| + // of the discarded tab.
|
| content::WebContents* DiscardTabById(int64_t target_web_contents_id);
|
|
|
| + // Method used by the extensions API to discard tabs. If |contents| is null,
|
| + // discards the least important tab using DiscardTab(). Otherwise discards
|
| + // the given contents. Returns the new web_contents or null if no tab
|
| + // was discarded.
|
| + content::WebContents* DiscardTabByExtension(content::WebContents* contents);
|
| +
|
| // Log memory statistics for the running processes, then discards a tab.
|
| // Tab discard happens sometime later, as collecting the statistics touches
|
| // multiple threads and takes time.
|
| @@ -128,6 +134,10 @@ class TabManager : public TabStripModelObserver {
|
| void AddObserver(TabManagerObserver* observer);
|
| void RemoveObserver(TabManagerObserver* observer);
|
|
|
| + // Used in tests to change the protection time of the tabs.
|
| + void set_minimum_protection_time_for_tests(
|
| + base::TimeDelta minimum_protection_time);
|
| +
|
| private:
|
| FRIEND_TEST_ALL_PREFIXES(TabManagerTest, CanOnlyDiscardOnce);
|
| FRIEND_TEST_ALL_PREFIXES(TabManagerTest, ChildProcessNotifications);
|
| @@ -256,8 +266,9 @@ class TabManager : public TabStripModelObserver {
|
| // schedules another call to itself as long as memory pressure continues.
|
| void DoChildProcessDispatch();
|
|
|
| - // Implementation of DiscardTab.
|
| - bool DiscardTabImpl();
|
| + // Implementation of DiscardTab. Returns null if no tab was discarded.
|
| + // Otherwise returns the new web_contents of the discarded tab.
|
| + content::WebContents* DiscardTabImpl();
|
|
|
| // Returns true if tabs can be discarded only once.
|
| bool CanOnlyDiscardOnce();
|
|
|