[ntp-xdtr] Test(s) cleanup
Enables a disabled test that had a memory leak issue.
Low-Coverage-Reason: HARD_TO_TEST
Bug: none
Change-Id: Ieca24c97d9da859b2123c753258828066013f9c2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5057061
Reviewed-by: Marlon Facey <mfacey@chromium.org>
Code-Coverage: findit-for-me@appspot.gserviceaccount.com <findit-for-me@appspot.gserviceaccount.com>
Commit-Queue: Marlon Facey <mfacey@chromium.org>
Auto-Submit: Roman Arora <romanarora@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1229350}
diff --git a/chrome/browser/new_tab_page/modules/v2/tab_resumption/tab_resumption_page_handler.cc b/chrome/browser/new_tab_page/modules/v2/tab_resumption/tab_resumption_page_handler.cc
index 573270dc..6bb9ec8 100644
--- a/chrome/browser/new_tab_page/modules/v2/tab_resumption/tab_resumption_page_handler.cc
+++ b/chrome/browser/new_tab_page/modules/v2/tab_resumption/tab_resumption_page_handler.cc
@@ -101,9 +101,8 @@
TabResumptionPageHandler::TabResumptionPageHandler(
mojo::PendingReceiver<ntp::tab_resumption::mojom::PageHandler>
pending_page_handler,
- Profile* profile,
content::WebContents* web_contents)
- : profile_(profile),
+ : profile_(Profile::FromBrowserContext(web_contents->GetBrowserContext())),
web_contents_(web_contents),
page_handler_(this, std::move(pending_page_handler)) {
DCHECK(profile_);
diff --git a/chrome/browser/new_tab_page/modules/v2/tab_resumption/tab_resumption_page_handler.h b/chrome/browser/new_tab_page/modules/v2/tab_resumption/tab_resumption_page_handler.h
index 16fb7b76..693c9c6 100644
--- a/chrome/browser/new_tab_page/modules/v2/tab_resumption/tab_resumption_page_handler.h
+++ b/chrome/browser/new_tab_page/modules/v2/tab_resumption/tab_resumption_page_handler.h
@@ -35,7 +35,6 @@
TabResumptionPageHandler(
mojo::PendingReceiver<ntp::tab_resumption::mojom::PageHandler>
pending_page_handler,
- Profile* profile,
content::WebContents* web_contents);
TabResumptionPageHandler(const TabResumptionPageHandler&) = delete;
@@ -43,6 +42,7 @@
~TabResumptionPageHandler() override;
+ // tab_resumption::mojom::PageHandler:
void GetTabs(GetTabsCallback callback) override;
sync_sessions::OpenTabsUIDelegate* GetOpenTabsUIDelegate();
diff --git a/chrome/browser/new_tab_page/modules/v2/tab_resumption/tab_resumption_page_handler_unittest.cc b/chrome/browser/new_tab_page/modules/v2/tab_resumption/tab_resumption_page_handler_unittest.cc
index 06fe7a83..bff053f 100644
--- a/chrome/browser/new_tab_page/modules/v2/tab_resumption/tab_resumption_page_handler_unittest.cc
+++ b/chrome/browser/new_tab_page/modules/v2/tab_resumption/tab_resumption_page_handler_unittest.cc
@@ -28,18 +28,19 @@
void SetUp() override {
BrowserWithTestWindowTest::SetUp();
+ mock_session_sync_service_ = static_cast<MockSessionSyncService*>(
+ SessionSyncServiceFactory::GetForProfile(profile()));
web_contents_ = content::WebContents::Create(
content::WebContents::CreateParams(profile()));
handler_ = std::make_unique<TabResumptionPageHandler>(
mojo::PendingReceiver<ntp::tab_resumption::mojom::PageHandler>(),
- profile(), web_contents_.get());
- mock_session_sync_service_ = static_cast<MockSessionSyncService*>(
- SessionSyncServiceFactory::GetForProfile(profile()));
+ web_contents_.get());
}
void TearDown() override {
handler_.reset();
web_contents_.reset();
+ mock_session_sync_service_ = nullptr;
BrowserWithTestWindowTest::TearDown();
}
@@ -49,8 +50,6 @@
TabResumptionPageHandler& handler() { return *handler_; }
- void ResetHandler() { handler_.reset(); }
-
private:
// BrowserWithTestWindowTest:
TestingProfile::TestingFactories GetTestingFactories() override {
@@ -61,19 +60,17 @@
})}};
}
- raw_ptr<MockSessionSyncService, DisableDanglingPtrDetection>
- mock_session_sync_service_;
+ raw_ptr<MockSessionSyncService> mock_session_sync_service_;
std::unique_ptr<content::WebContents> web_contents_;
std::unique_ptr<TabResumptionPageHandler> handler_;
};
-// TODO(mfacey): Figure out why test breaks on exit.
-TEST_F(TabResumptionPageHandlerTest, DISABLED_GetTabs) {
+TEST_F(TabResumptionPageHandlerTest, GetTabs) {
const int kSampleSessionsCount = 3;
- std::vector<const sync_sessions::SyncedSession*> sample_sessions;
+ std::vector<std::unique_ptr<sync_sessions::SyncedSession>> sample_sessions;
for (int i = 0; i < kSampleSessionsCount; i++) {
- sample_sessions.push_back(
- SampleSession(("Test Tag " + base::NumberToString(i)).c_str(), 3));
+ sample_sessions.push_back(SampleSession(
+ "Test Name", ("Test Tag " + base::NumberToString(i)).c_str(), 3));
}
EXPECT_CALL(*mock_session_sync_service().GetOpenTabsUIDelegate(),
@@ -81,7 +78,9 @@
.WillOnce(testing::Invoke(
[&sample_sessions](
std::vector<const sync_sessions::SyncedSession*>* sessions) {
- *sessions = sample_sessions;
+ for (auto& sample_session : sample_sessions) {
+ sessions->push_back(sample_session.get());
+ }
return true;
}));
@@ -109,7 +108,5 @@
ASSERT_EQ(GURL(kSampleUrl), tabs[0]->url);
}
}
-
- ResetHandler();
}
} // namespace
diff --git a/chrome/browser/new_tab_page/modules/v2/tab_resumption/tab_resumption_test_support.cc b/chrome/browser/new_tab_page/modules/v2/tab_resumption/tab_resumption_test_support.cc
index d1a52cf..1fcd8d76 100644
--- a/chrome/browser/new_tab_page/modules/v2/tab_resumption/tab_resumption_test_support.cc
+++ b/chrome/browser/new_tab_page/modules/v2/tab_resumption/tab_resumption_test_support.cc
@@ -40,16 +40,16 @@
return nullptr;
}
-sync_sessions::SyncedSession* SampleSession(const char session_tag[],
- int num_windows) {
- auto* sample_session = new sync_sessions::SyncedSession();
+std::unique_ptr<sync_sessions::SyncedSession> SampleSession(
+ const char session_name[],
+ const char session_tag[],
+ int num_windows) {
+ auto sample_session = std::make_unique<sync_sessions::SyncedSession>();
for (int i = 0; i < num_windows; i++) {
sample_session->windows[SessionID::FromSerializedValue(i)] =
SampleSessionWindow(3);
}
- constexpr char session_name[] = "Test Name";
-
sample_session->SetSessionTag(session_tag);
sample_session->SetSessionName(session_name);
sample_session->SetModifiedTime(base::Time::Now());
diff --git a/chrome/browser/new_tab_page/modules/v2/tab_resumption/tab_resumption_test_support.h b/chrome/browser/new_tab_page/modules/v2/tab_resumption/tab_resumption_test_support.h
index 281a5203..70c31d886 100644
--- a/chrome/browser/new_tab_page/modules/v2/tab_resumption/tab_resumption_test_support.h
+++ b/chrome/browser/new_tab_page/modules/v2/tab_resumption/tab_resumption_test_support.h
@@ -69,8 +69,10 @@
MockOpenTabsUIDelegate mock_open_tabs_ui_delegate_;
};
-sync_sessions::SyncedSession* SampleSession(const char session_tag[],
- int num_windows);
+std::unique_ptr<sync_sessions::SyncedSession> SampleSession(
+ const char session_name[],
+ const char session_tag[],
+ int num_windows);
std::unique_ptr<sync_sessions::SyncedSessionWindow> SampleSessionWindow(
int num_tabs);
std::unique_ptr<sessions::SessionTab> SampleSessionTab(int tab_id);
diff --git a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc b/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc
index 0b03b1f..12f9457 100644
--- a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc
+++ b/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc
@@ -897,7 +897,7 @@
mojo::PendingReceiver<ntp::tab_resumption::mojom::PageHandler>
pending_page_handler) {
tab_resumption_handler_ = std::make_unique<TabResumptionPageHandler>(
- std::move(pending_page_handler), profile_, web_contents());
+ std::move(pending_page_handler), web_contents());
}
void NewTabPageUI::BindInterface(