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

Unified Diff: chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer_unittest.cc

Issue 1837233002: Optional <TimeDelta> since they may be non existent. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: added dcheck when isHighResolution is true. Created 4 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/page_load_metrics/observers/from_gws_page_load_metrics_observer_unittest.cc
diff --git a/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer_unittest.cc
index f8bcb254a53fb7a285715348a25bd80202370dd2..d8cb11170edc491882e9ea597d9e601e4f775e66 100644
--- a/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer_unittest.cc
+++ b/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer_unittest.cc
@@ -7,6 +7,7 @@
#include "base/macros.h"
#include "base/memory/ptr_util.h"
#include "chrome/browser/page_load_metrics/observers/page_load_metrics_observer_test_harness.h"
+#include "components/page_load_metrics/browser/page_load_metrics_util.h"
namespace {
const char kExampleUrl[] = "http://www.example.com/";
@@ -427,16 +428,25 @@ TEST_F(FromGWSPageLoadMetricsObserverTest,
NavigateAndCommit(GURL("https://www.google.com/search#q=test"));
NavigateAndCommit(GURL(kExampleUrl));
- SimulateTimingUpdate(timing);
web_contents()->WasHidden();
+ SimulateTimingUpdate(timing);
- // Navigate again to force logging.
- NavigateAndCommit(GURL("https://www.final.com"));
- histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSFirstTextPaint,
- 1);
- histogram_tester().ExpectBucketCount(
- internal::kHistogramFromGWSFirstTextPaint,
- timing.first_text_paint.InMilliseconds(), 1);
+ page_load_metrics::PageLoadExtraInfo info =
+ GetPageLoadExtraInfoForCommittedLoad();
+
+ // If the system clock is low resolution PageLoadTracker's background_time_
+ // may be < timing.first_text_paint.
+ if (page_load_metrics::WasStartedInForegroundEventInForeground(
+ timing.first_text_paint, info)) {
+ histogram_tester().ExpectTotalCount(
+ internal::kHistogramFromGWSFirstTextPaint, 1);
+ histogram_tester().ExpectBucketCount(
+ internal::kHistogramFromGWSFirstTextPaint,
+ timing.first_text_paint.InMilliseconds(), 1);
+ } else {
+ histogram_tester().ExpectTotalCount(
+ internal::kHistogramFromGWSFirstTextPaint, 0);
+ }
}
TEST_F(FromGWSPageLoadMetricsObserverTest, UnknownNavigationBeforeCommit) {
@@ -599,9 +609,20 @@ TEST_F(FromGWSPageLoadMetricsObserverTest, NoAbortNewNavigationAfterPaint) {
PopulateRequiredTimingFields(&timing);
NavigateAndCommit(GURL("https://example.test"));
SimulateTimingUpdate(timing);
+
+ // The test cannot assume that abort time will be > first_paint
+ // (1 micro-sec). If the system clock is low resolution, PageLoadTracker's
+ // abort time may be <= first_paint. In that case the histogram will be
+ // logged. Thus both 0 and 1 counts of histograms are considered good.
+
NavigateAndCommit(GURL("https://example.test2"));
- histogram_tester().ExpectTotalCount(
- internal::kHistogramFromGWSAbortNewNavigationBeforePaint, 0);
+
+ base::HistogramTester::CountsMap counts_map =
+ histogram_tester().GetTotalCountsForPrefix(
+ internal::kHistogramFromGWSAbortNewNavigationBeforePaint);
+
+ EXPECT_TRUE(counts_map.empty() ||
+ (counts_map.size() == 1 && counts_map.begin()->second == 1));
}
TEST_F(FromGWSPageLoadMetricsObserverTest, NewNavigationBeforeInteraction) {

Powered by Google App Engine
This is Rietveld 408576698