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

Unified Diff: chrome/browser/prerender/prerender_browsertest.cc

Issue 379283002: Rework UMAHistogramHelper and StatisticsDeltaReader into [Chrome]HistogramTester. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Ilya's initial comments Created 6 years, 5 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/prerender/prerender_browsertest.cc
diff --git a/chrome/browser/prerender/prerender_browsertest.cc b/chrome/browser/prerender/prerender_browsertest.cc
index 20c9d5b6800ea097161ae01f275c3fdf1e1d924a..3f022ee08e0b1db2774e795174f27fc481f5a996 100644
--- a/chrome/browser/prerender/prerender_browsertest.cc
+++ b/chrome/browser/prerender/prerender_browsertest.cc
@@ -17,6 +17,7 @@
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
+#include "base/test/histogram_tester.h"
#include "base/test/test_timeouts.h"
#include "base/values.h"
#include "chrome/browser/browsing_data/browsing_data_helper.h"
@@ -64,7 +65,6 @@
#include "chrome/test/base/in_process_browser_test.h"
#include "chrome/test/base/test_switches.h"
#include "chrome/test/base/ui_test_utils.h"
-#include "chrome/test/base/uma_histogram_helper.h"
#include "content/public/browser/browser_message_filter.h"
#include "content/public/browser/devtools_agent_host.h"
#include "content/public/browser/devtools_client_host.h"
@@ -1507,6 +1507,10 @@ class PrerenderBrowserTest : virtual public InProcessBrowserTest {
js).c_str()));
}
+ base::HistogramTester* const histogram_tester() {
Ilya Sherman 2014/07/16 18:44:46 You're currently returning a const pointer, in the
Mike Lerman 2014/07/16 19:36:36 I'd say I hate C++ const, except Java's final isn'
+ return &histograms_;
+ }
+
protected:
bool autostart_test_server_;
@@ -1657,21 +1661,22 @@ class PrerenderBrowserTest : virtual public InProcessBrowserTest {
std::string loader_path_;
std::string loader_query_;
Browser* explicitly_set_browser_;
+ base::HistogramTester histograms_;
};
// Checks that a page is correctly prerendered in the case of a
// <link rel=prerender> tag and then loaded into a tab in response to a
// navigation.
IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderPage) {
- UMAHistogramHelper histograms;
-
PrerenderTestURL("files/prerender/prerender_page.html", FINAL_STATUS_USED, 1);
EXPECT_EQ(1, GetPrerenderDomContentLoadedEventCountForLinkNumber(0));
- histograms.Fetch();
- histograms.ExpectTotalCount("Prerender.none_PerceivedPLT", 1);
- histograms.ExpectTotalCount("Prerender.none_PerceivedPLTMatched", 0);
- histograms.ExpectTotalCount("Prerender.none_PerceivedPLTMatchedComplete", 0);
- histograms.ExpectTotalCount("Prerender.websame_PrerenderNotSwappedInPLT", 1);
+ histogram_tester()->ExpectTotalCount("Prerender.none_PerceivedPLT", 1);
+ histogram_tester()->ExpectTotalCount(
+ "Prerender.none_PerceivedPLTMatched", 0);
+ histogram_tester()->ExpectTotalCount(
+ "Prerender.none_PerceivedPLTMatchedComplete", 0);
+ histogram_tester()->ExpectTotalCount(
+ "Prerender.websame_PrerenderNotSwappedInPLT", 1);
ChannelDestructionWatcher channel_close_watcher;
channel_close_watcher.WatchChannel(
@@ -1679,10 +1684,10 @@ IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderPage) {
NavigateToDestURL();
channel_close_watcher.WaitForChannelClose();
- histograms.Fetch();
- histograms.ExpectTotalCount("Prerender.websame_PerceivedPLT", 1);
- histograms.ExpectTotalCount("Prerender.websame_PerceivedPLTMatched", 1);
- histograms.ExpectTotalCount(
+ histogram_tester()->ExpectTotalCount("Prerender.websame_PerceivedPLT", 1);
+ histogram_tester()->ExpectTotalCount(
+ "Prerender.websame_PerceivedPLTMatched", 1);
+ histogram_tester()->ExpectTotalCount(
"Prerender.websame_PerceivedPLTMatchedComplete", 1);
ASSERT_TRUE(IsEmptyPrerenderLinkManager());
@@ -1690,21 +1695,21 @@ IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderPage) {
// Checks that cross-domain prerenders emit the correct histograms.
IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderPageCrossDomain) {
- UMAHistogramHelper histograms;
-
PrerenderTestURL(GetCrossDomainTestUrl("files/prerender/prerender_page.html"),
FINAL_STATUS_USED, 1);
- histograms.Fetch();
- histograms.ExpectTotalCount("Prerender.none_PerceivedPLT", 1);
- histograms.ExpectTotalCount("Prerender.none_PerceivedPLTMatched", 0);
- histograms.ExpectTotalCount("Prerender.none_PerceivedPLTMatchedComplete", 0);
- histograms.ExpectTotalCount("Prerender.webcross_PrerenderNotSwappedInPLT", 1);
+ histogram_tester()->ExpectTotalCount("Prerender.none_PerceivedPLT", 1);
+ histogram_tester()->ExpectTotalCount(
+ "Prerender.none_PerceivedPLTMatched", 0);
+ histogram_tester()->ExpectTotalCount(
+ "Prerender.none_PerceivedPLTMatchedComplete", 0);
+ histogram_tester()->ExpectTotalCount(
+ "Prerender.webcross_PrerenderNotSwappedInPLT", 1);
NavigateToDestURL();
- histograms.Fetch();
- histograms.ExpectTotalCount("Prerender.webcross_PerceivedPLT", 1);
- histograms.ExpectTotalCount("Prerender.webcross_PerceivedPLTMatched", 1);
- histograms.ExpectTotalCount(
+ histogram_tester()->ExpectTotalCount("Prerender.webcross_PerceivedPLT", 1);
+ histogram_tester()->ExpectTotalCount(
+ "Prerender.webcross_PerceivedPLTMatched", 1);
+ histogram_tester()->ExpectTotalCount(
"Prerender.webcross_PerceivedPLTMatchedComplete", 1);
}
@@ -2083,7 +2088,6 @@ IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest,
IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest,
PrerenderLocationReplaceGWSHistograms) {
DisableJavascriptCalls();
- UMAHistogramHelper histograms;
// The loader page should look like Google.
const std::string kGoogleDotCom("www.google.com");
@@ -2109,14 +2113,16 @@ IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest,
EXPECT_TRUE(DidPrerenderPass(prerender->contents()->prerender_contents()));
EXPECT_EQ(1, prerender->number_of_loads());
- histograms.Fetch();
- histograms.ExpectTotalCount("Prerender.none_PerceivedPLT", 1);
- histograms.ExpectTotalCount("Prerender.none_PerceivedPLTMatched", 0);
- histograms.ExpectTotalCount("Prerender.none_PerceivedPLTMatchedComplete", 0);
+ histogram_tester()->ExpectTotalCount("Prerender.none_PerceivedPLT", 1);
+ histogram_tester()->ExpectTotalCount(
+ "Prerender.none_PerceivedPLTMatched", 0);
+ histogram_tester()->ExpectTotalCount(
+ "Prerender.none_PerceivedPLTMatchedComplete", 0);
// Although there is a client redirect, it is dropped from histograms because
// it is a Google URL. The target page itself does not load until after the
// swap.
- histograms.ExpectTotalCount("Prerender.gws_PrerenderNotSwappedInPLT", 0);
+ histogram_tester()->ExpectTotalCount(
+ "Prerender.gws_PrerenderNotSwappedInPLT", 0);
GURL navigate_url = test_server()->GetURL(
"files/prerender/prerender_location_replace.html?" +
@@ -2134,15 +2140,17 @@ IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest,
EXPECT_TRUE(DidDisplayPass(GetActiveWebContents()));
- histograms.Fetch();
- histograms.ExpectTotalCount("Prerender.gws_PrerenderNotSwappedInPLT", 0);
- histograms.ExpectTotalCount("Prerender.gws_PerceivedPLT", 1);
- histograms.ExpectTotalCount("Prerender.gws_PerceivedPLTMatched", 1);
- histograms.ExpectTotalCount(
+ histogram_tester()->ExpectTotalCount(
+ "Prerender.gws_PrerenderNotSwappedInPLT", 0);
+ histogram_tester()->ExpectTotalCount("Prerender.gws_PerceivedPLT", 1);
+ histogram_tester()->ExpectTotalCount(
+ "Prerender.gws_PerceivedPLTMatched", 1);
+ histogram_tester()->ExpectTotalCount(
"Prerender.gws_PerceivedPLTMatchedComplete", 1);
// The client redirect does /not/ count as a miss because it's a Google URL.
- histograms.ExpectTotalCount("Prerender.PerceivedPLTFirstAfterMiss", 0);
+ histogram_tester()->ExpectTotalCount(
+ "Prerender.PerceivedPLTFirstAfterMiss", 0);
}
// Checks that client-issued redirects work with prerendering.
@@ -3348,24 +3356,25 @@ IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, ControlGroupRendererInitiated) {
// account for the MatchComplete case, and it must have a final status of
// FINAL_STATUS_WOULD_HAVE_BEEN_USED.
IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, MatchCompleteDummy) {
- UMAHistogramHelper histograms;
std::vector<FinalStatus> expected_final_status_queue;
expected_final_status_queue.push_back(FINAL_STATUS_INVALID_HTTP_METHOD);
expected_final_status_queue.push_back(FINAL_STATUS_WOULD_HAVE_BEEN_USED);
PrerenderTestURL("files/prerender/prerender_xhr_put.html",
expected_final_status_queue, 1);
- histograms.Fetch();
- histograms.ExpectTotalCount("Prerender.none_PerceivedPLT", 1);
- histograms.ExpectTotalCount("Prerender.none_PerceivedPLTMatched", 0);
- histograms.ExpectTotalCount("Prerender.none_PerceivedPLTMatchedComplete", 0);
- histograms.ExpectTotalCount("Prerender.websame_PrerenderNotSwappedInPLT", 1);
+ histogram_tester()->ExpectTotalCount("Prerender.none_PerceivedPLT", 1);
+ histogram_tester()->ExpectTotalCount(
+ "Prerender.none_PerceivedPLTMatched", 0);
+ histogram_tester()->ExpectTotalCount(
+ "Prerender.none_PerceivedPLTMatchedComplete", 0);
+ histogram_tester()->ExpectTotalCount(
+ "Prerender.websame_PrerenderNotSwappedInPLT", 1);
NavigateToDestURL();
- histograms.Fetch();
- histograms.ExpectTotalCount("Prerender.websame_PerceivedPLT", 1);
- histograms.ExpectTotalCount("Prerender.websame_PerceivedPLTMatched", 0);
- histograms.ExpectTotalCount(
+ histogram_tester()->ExpectTotalCount("Prerender.websame_PerceivedPLT", 1);
+ histogram_tester()->ExpectTotalCount(
+ "Prerender.websame_PerceivedPLTMatched", 0);
+ histogram_tester()->ExpectTotalCount(
"Prerender.websame_PerceivedPLTMatchedComplete", 1);
}
@@ -3373,7 +3382,6 @@ IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, MatchCompleteDummy) {
// progress does not also classify the previous navigation as a MatchComplete.
IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest,
MatchCompleteDummyCancelNavigation) {
- UMAHistogramHelper histograms;
// Arrange for a URL to hang.
const GURL kNoCommitUrl("http://never-respond.example.com");
@@ -3391,11 +3399,13 @@ IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest,
expected_final_status_queue.push_back(FINAL_STATUS_WOULD_HAVE_BEEN_USED);
PrerenderTestURL("files/prerender/prerender_xhr_put.html",
expected_final_status_queue, 1);
- histograms.Fetch();
- histograms.ExpectTotalCount("Prerender.none_PerceivedPLT", 1);
- histograms.ExpectTotalCount("Prerender.none_PerceivedPLTMatched", 0);
- histograms.ExpectTotalCount("Prerender.none_PerceivedPLTMatchedComplete", 0);
- histograms.ExpectTotalCount("Prerender.websame_PrerenderNotSwappedInPLT", 1);
+ histogram_tester()->ExpectTotalCount("Prerender.none_PerceivedPLT", 1);
+ histogram_tester()->ExpectTotalCount(
+ "Prerender.none_PerceivedPLTMatched", 0);
+ histogram_tester()->ExpectTotalCount(
+ "Prerender.none_PerceivedPLTMatchedComplete", 0);
+ histogram_tester()->ExpectTotalCount(
+ "Prerender.websame_PrerenderNotSwappedInPLT", 1);
// Open the hanging URL in a new tab. Wait for both the new tab to open and
// the hanging request to be scheduled.
@@ -3408,13 +3418,15 @@ IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest,
// should forcibly complete the previous navigation and also complete a
// WOULD_HAVE_BEEN_PRERENDERED navigation.
NavigateToDestURL();
- histograms.Fetch();
- histograms.ExpectTotalCount("Prerender.none_PerceivedPLT", 2);
- histograms.ExpectTotalCount("Prerender.none_PerceivedPLTMatched", 0);
- histograms.ExpectTotalCount("Prerender.none_PerceivedPLTMatchedComplete", 0);
- histograms.ExpectTotalCount("Prerender.websame_PerceivedPLT", 1);
- histograms.ExpectTotalCount("Prerender.websame_PerceivedPLTMatched", 0);
- histograms.ExpectTotalCount(
+ histogram_tester()->ExpectTotalCount("Prerender.none_PerceivedPLT", 2);
+ histogram_tester()->ExpectTotalCount(
+ "Prerender.none_PerceivedPLTMatched", 0);
+ histogram_tester()->ExpectTotalCount(
+ "Prerender.none_PerceivedPLTMatchedComplete", 0);
+ histogram_tester()->ExpectTotalCount("Prerender.websame_PerceivedPLT", 1);
+ histogram_tester()->ExpectTotalCount(
+ "Prerender.websame_PerceivedPLTMatched", 0);
+ histogram_tester()->ExpectTotalCount(
"Prerender.websame_PerceivedPLTMatchedComplete", 1);
}
@@ -3797,7 +3809,6 @@ IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, CancelMatchCompleteDummy) {
// visible. Also test the right histogram events are emitted in this case.
IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderDeferredImage) {
DisableJavascriptCalls();
- UMAHistogramHelper histograms;
// The prerender will not completely load until after the swap, so wait for a
// title change before calling DidPrerenderPass.
@@ -3809,11 +3820,13 @@ IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderDeferredImage) {
EXPECT_EQ(1, GetPrerenderDomContentLoadedEventCountForLinkNumber(0));
EXPECT_TRUE(DidPrerenderPass(prerender->contents()->prerender_contents()));
EXPECT_EQ(0, prerender->number_of_loads());
- histograms.Fetch();
- histograms.ExpectTotalCount("Prerender.none_PerceivedPLT", 1);
- histograms.ExpectTotalCount("Prerender.none_PerceivedPLTMatched", 0);
- histograms.ExpectTotalCount("Prerender.none_PerceivedPLTMatchedComplete", 0);
- histograms.ExpectTotalCount("Prerender.websame_PrerenderNotSwappedInPLT", 0);
+ histogram_tester()->ExpectTotalCount("Prerender.none_PerceivedPLT", 1);
+ histogram_tester()->ExpectTotalCount(
+ "Prerender.none_PerceivedPLTMatched", 0);
+ histogram_tester()->ExpectTotalCount(
+ "Prerender.none_PerceivedPLTMatchedComplete", 0);
+ histogram_tester()->ExpectTotalCount(
+ "Prerender.websame_PrerenderNotSwappedInPLT", 0);
// Swap.
NavigationOrSwapObserver swap_observer(current_browser()->tab_strip_model(),
@@ -3829,11 +3842,13 @@ IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderDeferredImage) {
// Now check DidDisplayPass.
EXPECT_TRUE(DidDisplayPass(GetActiveWebContents()));
- histograms.Fetch();
- histograms.ExpectTotalCount("Prerender.websame_PrerenderNotSwappedInPLT", 0);
- histograms.ExpectTotalCount("Prerender.websame_PerceivedPLT", 1);
- histograms.ExpectTotalCount("Prerender.websame_PerceivedPLTMatched", 1);
- histograms.ExpectTotalCount(
+ histogram_tester()->ExpectTotalCount(
+ "Prerender.websame_PrerenderNotSwappedInPLT", 0);
+ histogram_tester()->ExpectTotalCount(
+ "Prerender.websame_PerceivedPLT", 1);
+ histogram_tester()->ExpectTotalCount(
+ "Prerender.websame_PerceivedPLTMatched", 1);
+ histogram_tester()->ExpectTotalCount(
"Prerender.websame_PerceivedPLTMatchedComplete", 1);
}
@@ -4178,14 +4193,14 @@ IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderPing) {
}
IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderPPLTNormalNavigation) {
- UMAHistogramHelper histograms;
GURL url = test_server()->GetURL("files/prerender/prerender_page.html");
ui_test_utils::NavigateToURL(current_browser(), url);
- histograms.Fetch();
- histograms.ExpectTotalCount("Prerender.none_PerceivedPLT", 1);
- histograms.ExpectTotalCount("Prerender.none_PerceivedPLTMatched", 0);
- histograms.ExpectTotalCount("Prerender.none_PerceivedPLTMatchedComplete", 0);
+ histogram_tester()->ExpectTotalCount("Prerender.none_PerceivedPLT", 1);
+ histogram_tester()->ExpectTotalCount(
+ "Prerender.none_PerceivedPLTMatched", 0);
+ histogram_tester()->ExpectTotalCount(
+ "Prerender.none_PerceivedPLTMatchedComplete", 0);
}
IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest,

Powered by Google App Engine
This is Rietveld 408576698