Commit 9e914544 authored by Zhen Wang's avatar Zhen Wang Committed by Commit Bot

Do not pause/resume background tab opening based on memory pressure signal

Memory signal is currently unreliable. We should not pause or resume
background tab opening based on the memory pressure signal.

Bug: 762775,730098
Change-Id: Ic976493bb7af94c451d54e8c8f655dbdd6b2421e
Reviewed-on: https://chromium-review.googlesource.com/736869Reviewed-by: default avatarChris Hamilton <chrisha@chromium.org>
Commit-Queue: Zhen Wang <zhenw@chromium.org>
Cr-Commit-Position: refs/heads/master@{#512863}
parent 87aa4f84
...@@ -962,15 +962,14 @@ void TabManager::OnMemoryPressure( ...@@ -962,15 +962,14 @@ void TabManager::OnMemoryPressure(
if (g_browser_process->IsShuttingDown()) if (g_browser_process->IsShuttingDown())
return; return;
// TODO(crbug.com/762775): Pause or resume background tab opening based on
// memory pressure signal after it becomes more reliable.
switch (memory_pressure_level) { switch (memory_pressure_level) {
case base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE: case base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE:
ResumeBackgroundTabOpeningIfNeeded();
break; break;
case base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE: case base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE:
PauseBackgroundTabOpeningIfNeeded();
break; break;
case base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL: case base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL:
PauseBackgroundTabOpeningIfNeeded();
LogMemoryAndDiscardTab(kUrgentShutdown); LogMemoryAndDiscardTab(kUrgentShutdown);
break; break;
default: default:
......
...@@ -942,10 +942,8 @@ TEST_F(TabManagerTest, BackgroundTabLoadingMode) { ...@@ -942,10 +942,8 @@ TEST_F(TabManagerTest, BackgroundTabLoadingMode) {
EXPECT_TRUE(tab_manager->IsNavigationDelayedForTest(nav_handle2_.get())); EXPECT_TRUE(tab_manager->IsNavigationDelayedForTest(nav_handle2_.get()));
EXPECT_TRUE(tab_manager->IsNavigationDelayedForTest(nav_handle3_.get())); EXPECT_TRUE(tab_manager->IsNavigationDelayedForTest(nav_handle3_.get()));
// Simulate memory pressure getting high. TabManager pause loading pending // TabManager pauses loading pending background tabs.
// background tabs. tab_manager->PauseBackgroundTabOpeningIfNeeded();
tab_manager->OnMemoryPressure(
base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE);
EXPECT_EQ(TabManager::BackgroundTabLoadingMode::kPaused, EXPECT_EQ(TabManager::BackgroundTabLoadingMode::kPaused,
tab_manager->background_tab_loading_mode_); tab_manager->background_tab_loading_mode_);
...@@ -968,10 +966,8 @@ TEST_F(TabManagerTest, BackgroundTabLoadingMode) { ...@@ -968,10 +966,8 @@ TEST_F(TabManagerTest, BackgroundTabLoadingMode) {
EXPECT_TRUE(tab_manager->IsNavigationDelayedForTest(nav_handle2_.get())); EXPECT_TRUE(tab_manager->IsNavigationDelayedForTest(nav_handle2_.get()));
EXPECT_TRUE(tab_manager->IsNavigationDelayedForTest(nav_handle3_.get())); EXPECT_TRUE(tab_manager->IsNavigationDelayedForTest(nav_handle3_.get()));
// Simulate memory pressure is relieved. TabManager will reset the loading // TabManager resumes loading pending background tabs.
// mode and try to load the next tab. tab_manager->ResumeBackgroundTabOpeningIfNeeded();
tab_manager->OnMemoryPressure(
base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE);
EXPECT_EQ(TabManager::BackgroundTabLoadingMode::kStaggered, EXPECT_EQ(TabManager::BackgroundTabLoadingMode::kStaggered,
tab_manager->background_tab_loading_mode_); tab_manager->background_tab_loading_mode_);
...@@ -1059,10 +1055,8 @@ TEST_F(TabManagerTest, PauseAndResumeBackgroundTabOpening) { ...@@ -1059,10 +1055,8 @@ TEST_F(TabManagerTest, PauseAndResumeBackgroundTabOpening) {
EXPECT_TRUE( EXPECT_TRUE(
tab_manager->stats_collector()->is_in_background_tab_opening_session()); tab_manager->stats_collector()->is_in_background_tab_opening_session());
// Simulate memory pressure getting high. TabManager pause loading pending // TabManager pauses loading pending background tabs.
// background tabs, and ends the background tab opening session. tab_manager->PauseBackgroundTabOpeningIfNeeded();
tab_manager->OnMemoryPressure(
base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE);
EXPECT_EQ(TabManager::BackgroundTabLoadingMode::kPaused, EXPECT_EQ(TabManager::BackgroundTabLoadingMode::kPaused,
tab_manager->background_tab_loading_mode_); tab_manager->background_tab_loading_mode_);
EXPECT_FALSE(tab_manager->IsInBackgroundTabOpeningSession()); EXPECT_FALSE(tab_manager->IsInBackgroundTabOpeningSession());
...@@ -1082,11 +1076,8 @@ TEST_F(TabManagerTest, PauseAndResumeBackgroundTabOpening) { ...@@ -1082,11 +1076,8 @@ TEST_F(TabManagerTest, PauseAndResumeBackgroundTabOpening) {
EXPECT_FALSE( EXPECT_FALSE(
tab_manager->stats_collector()->is_in_background_tab_opening_session()); tab_manager->stats_collector()->is_in_background_tab_opening_session());
// Simulate memory pressure is relieved. TabManager will reset the loading // TabManager resumes loading pending background tabs.
// mode and try to load the next tab. If there is pending tab, TabManager tab_manager->ResumeBackgroundTabOpeningIfNeeded();
// starts a new BackgroundTabOpening session.
tab_manager->OnMemoryPressure(
base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE);
EXPECT_EQ(TabManager::BackgroundTabLoadingMode::kStaggered, EXPECT_EQ(TabManager::BackgroundTabLoadingMode::kStaggered,
tab_manager->background_tab_loading_mode_); tab_manager->background_tab_loading_mode_);
EXPECT_TRUE(tab_manager->IsInBackgroundTabOpeningSession()); EXPECT_TRUE(tab_manager->IsInBackgroundTabOpeningSession());
......
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