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

Unified Diff: chrome/browser/data_use_measurement/chrome_data_use_ascriber_unittest.cc

Issue 2572823002: Propogate the tab foreground, background change events to data use (Closed)
Patch Set: Fix trybot failure Created 4 years 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/data_use_measurement/chrome_data_use_ascriber_unittest.cc
diff --git a/chrome/browser/data_use_measurement/chrome_data_use_ascriber_unittest.cc b/chrome/browser/data_use_measurement/chrome_data_use_ascriber_unittest.cc
index bda7395d96010f37a2b0709685b2641e71df1e1c..d6933aa77ef07aaff026fd555c69d4e8cb25e8ea 100644
--- a/chrome/browser/data_use_measurement/chrome_data_use_ascriber_unittest.cc
+++ b/chrome/browser/data_use_measurement/chrome_data_use_ascriber_unittest.cc
@@ -101,4 +101,82 @@ TEST_F(ChromeDataUseAscriberTest, NoRecorderWithoutFrame) {
ascriber()->RenderFrameDeleted(kRenderProcessId, kRenderFrameId, -1, -1);
}
+TEST_F(ChromeDataUseAscriberTest, RenderFrameShownAndHidden) {
+ if (content::IsBrowserSideNavigationEnabled())
+ return;
+
+ std::unique_ptr<net::URLRequest> request = CreateNewRequest(
+ "http://test.com", true, kRequestId, kRenderProcessId, kRenderFrameId);
+
+ ascriber()->RenderFrameCreated(kRenderProcessId, kRenderFrameId, -1, -1);
+ ascriber()->OnBeforeUrlRequest(request.get());
+ ascriber()->ReadyToCommitMainFrameNavigation(
+ GURL("http://test.com"), content::GlobalRequestID(kRenderProcessId, 0),
+ kRenderProcessId, kRenderFrameId, true, (void*)request.get());
+ ascriber()->WasShownOrHidden(kRenderProcessId, kRenderFrameId, true);
+
+ EXPECT_TRUE(
+ ascriber()->GetDataUseRecorder(request.get(), true)->is_visible());
+
+ // Hide the frame, and the visibility should be updated.
+ ascriber()->WasShownOrHidden(kRenderProcessId, kRenderFrameId, false);
+ EXPECT_FALSE(
+ ascriber()->GetDataUseRecorder(request.get(), true)->is_visible());
+
+ ascriber()->RenderFrameDeleted(kRenderProcessId, kRenderFrameId, -1, -1);
+}
+
+TEST_F(ChromeDataUseAscriberTest, RenderFrameHiddenAndShown) {
+ if (content::IsBrowserSideNavigationEnabled())
+ return;
+
+ std::unique_ptr<net::URLRequest> request = CreateNewRequest(
+ "http://test.com", true, kRequestId, kRenderProcessId, kRenderFrameId);
+
+ ascriber()->RenderFrameCreated(kRenderProcessId, kRenderFrameId, -1, -1);
+ ascriber()->OnBeforeUrlRequest(request.get());
+ ascriber()->ReadyToCommitMainFrameNavigation(
+ GURL("http://test.com"), content::GlobalRequestID(kRenderProcessId, 0),
+ kRenderProcessId, kRenderFrameId, true, (void*)request.get());
+ ascriber()->WasShownOrHidden(kRenderProcessId, kRenderFrameId, false);
+
+ EXPECT_FALSE(
+ ascriber()->GetDataUseRecorder(request.get(), true)->is_visible());
+
+ // Show the frame, and the visibility should be updated.
+ ascriber()->WasShownOrHidden(kRenderProcessId, kRenderFrameId, true);
+ EXPECT_TRUE(
+ ascriber()->GetDataUseRecorder(request.get(), true)->is_visible());
+
+ ascriber()->RenderFrameDeleted(kRenderProcessId, kRenderFrameId, -1, -1);
+}
+
+TEST_F(ChromeDataUseAscriberTest, RenderFrameHostChanged) {
+ if (content::IsBrowserSideNavigationEnabled())
+ return;
+
+ std::unique_ptr<net::URLRequest> request = CreateNewRequest(
+ "http://test.com", true, kRequestId, kRenderProcessId, kRenderFrameId);
+
+ ascriber()->RenderFrameCreated(kRenderProcessId, kRenderFrameId, -1, -1);
+ ascriber()->OnBeforeUrlRequest(request.get());
+ ascriber()->ReadyToCommitMainFrameNavigation(
+ GURL("http://test.com"), content::GlobalRequestID(kRenderProcessId, 0),
+ kRenderProcessId, kRenderFrameId, true, (void*)request.get());
+ ascriber()->WasShownOrHidden(kRenderProcessId, kRenderFrameId, true);
+ EXPECT_TRUE(
+ ascriber()->GetDataUseRecorder(request.get(), true)->is_visible());
+
+ // Create a new render frame and swap it.
+ ascriber()->RenderFrameCreated(kRenderProcessId + 1, kRenderFrameId + 1, -1,
+ -1);
+ ascriber()->RenderFrameHostChanged(kRenderProcessId, kRenderFrameId,
+ kRenderProcessId + 1, kRenderFrameId + 1);
+ ascriber()->RenderFrameDeleted(kRenderProcessId, kRenderFrameId, -1, -1);
+
+ ascriber()->WasShownOrHidden(kRenderProcessId + 1, kRenderFrameId + 1, true);
+ ascriber()->RenderFrameDeleted(kRenderProcessId + 1, kRenderFrameId + 1, -1,
+ -1);
+}
+
} // namespace data_use_measurement

Powered by Google App Engine
This is Rietveld 408576698