Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5047)

Unified Diff: chrome/browser/resource_coordinator/tab_manager_unittest.cc

Issue 2935183002: [TabMetrics] Add signals that mark the start and end of session restore. (Closed)
Patch Set: DCHECK() directly on GetTabManager() and eliminate a variable Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resource_coordinator/tab_manager_unittest.cc
diff --git a/chrome/browser/resource_coordinator/tab_manager_unittest.cc b/chrome/browser/resource_coordinator/tab_manager_unittest.cc
index 60a00d2db21cae7479d83efe0eea664c8c3112bf..bb6e279bab72db94b4d21e0fb5ba78662059f092 100644
--- a/chrome/browser/resource_coordinator/tab_manager_unittest.cc
+++ b/chrome/browser/resource_coordinator/tab_manager_unittest.cc
@@ -17,9 +17,11 @@
#include "base/test/simple_test_tick_clock.h"
#include "base/time/time.h"
#include "build/build_config.h"
+#include "chrome/browser/browser_process.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/resource_coordinator/tab_manager_web_contents_data.h"
#include "chrome/browser/resource_coordinator/tab_stats.h"
+#include "chrome/browser/sessions/tab_loader.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/browser/ui/tabs/test_tab_strip_model_delegate.h"
#include "chrome/common/chrome_features.h"
@@ -492,4 +494,23 @@ TEST_F(TabManagerTest, ActivateTabResetPurgeState) {
EXPECT_FALSE(tab_manager.GetWebContentsData(tab2)->is_purged());
}
+TEST_F(TabManagerTest, OnSessionRestoreStartedAndEnded) {
+ content::WebContents* test_contents =
+ WebContentsTester::CreateTestWebContents(browser_context(), nullptr);
+
+ std::vector<SessionRestoreDelegate::RestoredTab> restored_tabs{
+ SessionRestoreDelegate::RestoredTab(test_contents, true, false, false)};
+
+ TabManager* tab_manager = g_browser_process->GetTabManager();
+ EXPECT_FALSE(tab_manager->IsInSessionRestore());
+
+ TabLoader::RestoreTabs(restored_tabs, base::TimeTicks());
+ EXPECT_TRUE(tab_manager->IsInSessionRestore());
+
+ WebContentsTester::For(test_contents)->NavigateAndCommit(GURL("about:blank"));
+ WebContentsTester::For(test_contents)->TestSetIsLoading(false);
+ // Session restore ends when all restored tabs finish loading
+ EXPECT_FALSE(tab_manager->IsInSessionRestore());
+}
+
} // namespace resource_coordinator

Powered by Google App Engine
This is Rietveld 408576698