Index: chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc |
diff --git a/chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc b/chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc |
index 57e3b3ea0f6354e84656c09afbaf53552233374f..91aa13f311f444c9f82fce93fb951898afda550d 100644 |
--- a/chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc |
+++ b/chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc |
@@ -6,6 +6,7 @@ |
#include "base/feature_list.h" |
#include "base/files/scoped_temp_dir.h" |
#include "base/macros.h" |
+#include "base/memory/weak_ptr.h" |
#include "base/test/histogram_tester.h" |
#include "base/test/scoped_feature_list.h" |
#include "base/threading/thread_restrictions.h" |
@@ -77,25 +78,34 @@ class PageLoadMetricsWaiter |
}; |
explicit PageLoadMetricsWaiter(content::WebContents* web_contents) |
- : TestingObserver(web_contents) {} |
+ : TestingObserver(web_contents), weak_factory_(this) {} |
- ~PageLoadMetricsWaiter() override { DCHECK_EQ(nullptr, run_loop_.get()); } |
+ ~PageLoadMetricsWaiter() override { |
+ CHECK(did_add_observer_); |
Charlie Harrison
2017/05/25 19:35:33
#include "base/logging"
Charlie Harrison
2017/05/25 19:35:34
Should we ASSERT instead of CHECK here?
Bryan McQuade
2017/05/25 19:54:05
added include
ASSERT macros fail to compile in de
Charlie Harrison
2017/05/25 19:59:44
Weird... fine by me
|
+ CHECK_EQ(nullptr, run_loop_.get()); |
+ } |
- // Add the given expectation to match on. |
- void AddMainFrameExpectation(TimingField field) { |
- main_frame_expected_fields_.Set(field); |
+ // Add a page-level expectation. |
+ void AddPageExpectation(TimingField field) { |
+ page_expected_fields_.Set(field); |
} |
+ |
+ // Add a subframe-level expectation. |
void AddSubFrameExpectation(TimingField field) { |
- child_frame_expected_fields_.Set(field); |
+ subframe_expected_fields_.Set(field); |
+ // If the given field is also a page-level field, then add a page-level |
+ // expectation as well |
+ if (IsPageLevelField(field)) |
+ page_expected_fields_.Set(field); |
} |
- // Whether the given TimingField was observed in the main frame. |
- bool DidObserveInMainFrame(TimingField field) { |
- return observed_main_frame_fields_.IsSet(field); |
+ // Whether the given TimingField was observed in the page. |
+ bool DidObserveInPage(TimingField field) { |
+ return observed_page_fields_.IsSet(field); |
} |
// Waits for a TimingUpdated IPC that matches the fields set by |
- // |AddMainFrameExpectation| and |AddSubFrameExpectation|. All matching fields |
+ // |AddPageExpectation| and |AddSubFrameExpectation|. All matching fields |
// must be set in a TimingUpdated IPC for it to end this wait. |
void Wait() { |
if (expectations_satisfied()) |
@@ -108,7 +118,48 @@ class PageLoadMetricsWaiter |
EXPECT_TRUE(expectations_satisfied()); |
Bryan McQuade
2017/05/25 19:54:06
the codereview site is refusing to show me your co
|
} |
+ void OnTimingUpdate(bool is_subframe, |
+ const page_load_metrics::mojom::PageLoadTiming& timing, |
+ const page_load_metrics::PageLoadExtraInfo& extra_info) { |
+ if (expectations_satisfied()) |
+ return; |
+ |
+ const page_load_metrics::mojom::PageLoadMetadata& metadata = |
+ is_subframe ? extra_info.subframe_metadata |
+ : extra_info.main_frame_metadata; |
+ TimingFieldBitSet matched_bits = GetMatchedBits(timing, metadata); |
+ if (is_subframe) { |
+ subframe_expected_fields_.ClearMatching(matched_bits); |
+ } else { |
+ page_expected_fields_.ClearMatching(matched_bits); |
+ observed_page_fields_.Merge(matched_bits); |
+ } |
+ |
+ if (expectations_satisfied() && run_loop_) |
+ run_loop_->Quit(); |
+ } |
+ |
private: |
+ // PageLoadMetricsObserver used by the PageLoadMetricsWaiter to observe |
+ // metrics updates. |
Charlie Harrison
2017/05/25 19:35:34
Can you explain why you need weak ptrs?
Bryan McQuade
2017/05/25 19:54:06
Done - added comment to constructor.
|
+ class WaiterMetricsObserver |
+ : public page_load_metrics::PageLoadMetricsObserver { |
+ public: |
+ explicit WaiterMetricsObserver(base::WeakPtr<PageLoadMetricsWaiter> waiter) |
+ : waiter_(waiter) {} |
+ |
+ void OnTimingUpdate( |
+ bool is_subframe, |
+ const page_load_metrics::mojom::PageLoadTiming& timing, |
+ const page_load_metrics::PageLoadExtraInfo& extra_info) override { |
+ if (waiter_) |
+ waiter_->OnTimingUpdate(is_subframe, timing, extra_info); |
+ } |
+ |
+ private: |
+ const base::WeakPtr<PageLoadMetricsWaiter> waiter_; |
+ }; |
+ |
// Manages a bitset of TimingFields. |
class TimingFieldBitSet { |
public: |
@@ -137,6 +188,17 @@ class PageLoadMetricsWaiter |
int bitmask_ = 0; |
}; |
+ static bool IsPageLevelField(TimingField field) { |
+ switch (field) { |
+ case TimingField::FIRST_PAINT: |
+ case TimingField::FIRST_CONTENTFUL_PAINT: |
+ case TimingField::FIRST_MEANINGFUL_PAINT: |
+ return true; |
+ default: |
+ return false; |
+ } |
+ } |
+ |
static TimingFieldBitSet GetMatchedBits( |
const page_load_metrics::mojom::PageLoadTiming& timing, |
const page_load_metrics::mojom::PageLoadMetadata& metadata) { |
@@ -161,36 +223,29 @@ class PageLoadMetricsWaiter |
return matched_bits; |
} |
- void OnTimingUpdated( |
- bool is_main_frame, |
- const page_load_metrics::mojom::PageLoadTiming& timing, |
- const page_load_metrics::mojom::PageLoadMetadata& metadata) override { |
- if (expectations_satisfied()) |
- return; |
- |
- TimingFieldBitSet matched_bits = GetMatchedBits(timing, metadata); |
- if (is_main_frame) { |
- main_frame_expected_fields_.ClearMatching(matched_bits); |
- observed_main_frame_fields_.Merge(matched_bits); |
- } else { |
- child_frame_expected_fields_.ClearMatching(matched_bits); |
- } |
- |
- if (expectations_satisfied() && run_loop_) |
- run_loop_->Quit(); |
+ void OnCommit(page_load_metrics::PageLoadTracker* tracker) override { |
+ // A PageLoadMetricsWaiter should only wait for events from a single page |
+ // load. |
+ ASSERT_FALSE(did_add_observer_); |
+ tracker->AddObserver( |
+ base::MakeUnique<WaiterMetricsObserver>(weak_factory_.GetWeakPtr())); |
+ did_add_observer_ = true; |
} |
bool expectations_satisfied() const { |
- return child_frame_expected_fields_.Empty() && |
- main_frame_expected_fields_.Empty(); |
+ return subframe_expected_fields_.Empty() && page_expected_fields_.Empty(); |
} |
std::unique_ptr<base::RunLoop> run_loop_; |
- TimingFieldBitSet child_frame_expected_fields_; |
- TimingFieldBitSet main_frame_expected_fields_; |
+ TimingFieldBitSet page_expected_fields_; |
+ TimingFieldBitSet subframe_expected_fields_; |
+ |
+ TimingFieldBitSet observed_page_fields_; |
+ |
+ bool did_add_observer_ = false; |
- TimingFieldBitSet observed_main_frame_fields_; |
+ base::WeakPtrFactory<PageLoadMetricsWaiter> weak_factory_; |
}; |
using TimingField = PageLoadMetricsWaiter::TimingField; |
@@ -315,7 +370,7 @@ IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, NewPage) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
auto waiter = CreatePageLoadMetricsWaiter(); |
- waiter->AddMainFrameExpectation(TimingField::FIRST_PAINT); |
+ waiter->AddPageExpectation(TimingField::FIRST_PAINT); |
ui_test_utils::NavigateToURL(browser(), |
embedded_test_server()->GetURL("/title1.html")); |
waiter->Wait(); |
@@ -346,12 +401,12 @@ IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, NoPaintForEmptyDocument) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
auto waiter = CreatePageLoadMetricsWaiter(); |
- waiter->AddMainFrameExpectation(TimingField::FIRST_LAYOUT); |
- waiter->AddMainFrameExpectation(TimingField::LOAD_EVENT); |
+ waiter->AddPageExpectation(TimingField::FIRST_LAYOUT); |
+ waiter->AddPageExpectation(TimingField::LOAD_EVENT); |
ui_test_utils::NavigateToURL(browser(), |
embedded_test_server()->GetURL("/empty.html")); |
waiter->Wait(); |
- EXPECT_FALSE(waiter->DidObserveInMainFrame(TimingField::FIRST_PAINT)); |
+ EXPECT_FALSE(waiter->DidObserveInPage(TimingField::FIRST_PAINT)); |
histogram_tester_.ExpectTotalCount(internal::kHistogramFirstLayout, 1); |
histogram_tester_.ExpectTotalCount(internal::kHistogramLoad, 1); |
@@ -368,13 +423,13 @@ IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, |
embedded_test_server()->GetURL("/page_load_metrics/empty_iframe.html")); |
auto waiter = CreatePageLoadMetricsWaiter(); |
- waiter->AddMainFrameExpectation(TimingField::FIRST_LAYOUT); |
- waiter->AddMainFrameExpectation(TimingField::LOAD_EVENT); |
+ waiter->AddPageExpectation(TimingField::FIRST_LAYOUT); |
+ waiter->AddPageExpectation(TimingField::LOAD_EVENT); |
waiter->AddSubFrameExpectation(TimingField::FIRST_LAYOUT); |
waiter->AddSubFrameExpectation(TimingField::LOAD_EVENT); |
ui_test_utils::NavigateToURL(browser(), a_url); |
waiter->Wait(); |
- EXPECT_FALSE(waiter->DidObserveInMainFrame(TimingField::FIRST_PAINT)); |
+ EXPECT_FALSE(waiter->DidObserveInPage(TimingField::FIRST_PAINT)); |
histogram_tester_.ExpectTotalCount(internal::kHistogramFirstLayout, 1); |
histogram_tester_.ExpectTotalCount(internal::kHistogramLoad, 1); |
@@ -388,8 +443,8 @@ IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, PaintInChildFrame) { |
GURL a_url(embedded_test_server()->GetURL("/page_load_metrics/iframe.html")); |
auto waiter = CreatePageLoadMetricsWaiter(); |
- waiter->AddMainFrameExpectation(TimingField::FIRST_LAYOUT); |
- waiter->AddMainFrameExpectation(TimingField::LOAD_EVENT); |
+ waiter->AddPageExpectation(TimingField::FIRST_LAYOUT); |
+ waiter->AddPageExpectation(TimingField::LOAD_EVENT); |
waiter->AddSubFrameExpectation(TimingField::FIRST_PAINT); |
waiter->AddSubFrameExpectation(TimingField::FIRST_CONTENTFUL_PAINT); |
ui_test_utils::NavigateToURL(browser(), a_url); |
@@ -406,8 +461,8 @@ IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, PaintInMultipleChildFrames) { |
GURL a_url(embedded_test_server()->GetURL("/page_load_metrics/iframes.html")); |
auto waiter = CreatePageLoadMetricsWaiter(); |
- waiter->AddMainFrameExpectation(TimingField::FIRST_LAYOUT); |
- waiter->AddMainFrameExpectation(TimingField::LOAD_EVENT); |
+ waiter->AddPageExpectation(TimingField::FIRST_LAYOUT); |
+ waiter->AddPageExpectation(TimingField::LOAD_EVENT); |
waiter->AddSubFrameExpectation(TimingField::FIRST_PAINT); |
waiter->AddSubFrameExpectation(TimingField::FIRST_CONTENTFUL_PAINT); |
ui_test_utils::NavigateToURL(browser(), a_url); |
@@ -425,10 +480,10 @@ IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, PaintInMainAndChildFrame) { |
"/page_load_metrics/main_frame_with_iframe.html")); |
auto waiter = CreatePageLoadMetricsWaiter(); |
- waiter->AddMainFrameExpectation(TimingField::FIRST_LAYOUT); |
- waiter->AddMainFrameExpectation(TimingField::LOAD_EVENT); |
- waiter->AddMainFrameExpectation(TimingField::FIRST_PAINT); |
- waiter->AddMainFrameExpectation(TimingField::FIRST_CONTENTFUL_PAINT); |
+ waiter->AddPageExpectation(TimingField::FIRST_LAYOUT); |
+ waiter->AddPageExpectation(TimingField::LOAD_EVENT); |
+ waiter->AddPageExpectation(TimingField::FIRST_PAINT); |
+ waiter->AddPageExpectation(TimingField::FIRST_CONTENTFUL_PAINT); |
waiter->AddSubFrameExpectation(TimingField::FIRST_PAINT); |
waiter->AddSubFrameExpectation(TimingField::FIRST_CONTENTFUL_PAINT); |
ui_test_utils::NavigateToURL(browser(), a_url); |
@@ -443,8 +498,8 @@ IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, SameDocumentNavigation) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
auto waiter = CreatePageLoadMetricsWaiter(); |
- waiter->AddMainFrameExpectation(TimingField::FIRST_LAYOUT); |
- waiter->AddMainFrameExpectation(TimingField::LOAD_EVENT); |
+ waiter->AddPageExpectation(TimingField::FIRST_LAYOUT); |
+ waiter->AddPageExpectation(TimingField::LOAD_EVENT); |
ui_test_utils::NavigateToURL(browser(), |
embedded_test_server()->GetURL("/title1.html")); |
waiter->Wait(); |
@@ -467,8 +522,8 @@ IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, SameUrlNavigation) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
auto waiter = CreatePageLoadMetricsWaiter(); |
- waiter->AddMainFrameExpectation(TimingField::FIRST_LAYOUT); |
- waiter->AddMainFrameExpectation(TimingField::LOAD_EVENT); |
+ waiter->AddPageExpectation(TimingField::FIRST_LAYOUT); |
+ waiter->AddPageExpectation(TimingField::LOAD_EVENT); |
ui_test_utils::NavigateToURL(browser(), |
embedded_test_server()->GetURL("/title1.html")); |
waiter->Wait(); |
@@ -478,8 +533,8 @@ IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, SameUrlNavigation) { |
histogram_tester_.ExpectTotalCount(internal::kHistogramFirstLayout, 1); |
waiter = CreatePageLoadMetricsWaiter(); |
- waiter->AddMainFrameExpectation(TimingField::FIRST_LAYOUT); |
- waiter->AddMainFrameExpectation(TimingField::LOAD_EVENT); |
+ waiter->AddPageExpectation(TimingField::FIRST_LAYOUT); |
+ waiter->AddPageExpectation(TimingField::LOAD_EVENT); |
ui_test_utils::NavigateToURL(browser(), |
embedded_test_server()->GetURL("/title1.html")); |
waiter->Wait(); |
@@ -574,7 +629,7 @@ IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, PreloadDocumentWrite) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
auto waiter = CreatePageLoadMetricsWaiter(); |
- waiter->AddMainFrameExpectation(TimingField::FIRST_CONTENTFUL_PAINT); |
+ waiter->AddPageExpectation(TimingField::FIRST_CONTENTFUL_PAINT); |
ui_test_utils::NavigateToURL( |
browser(), embedded_test_server()->GetURL( |
@@ -589,7 +644,7 @@ IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, NoPreloadDocumentWrite) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
auto waiter = CreatePageLoadMetricsWaiter(); |
- waiter->AddMainFrameExpectation(TimingField::FIRST_CONTENTFUL_PAINT); |
+ waiter->AddPageExpectation(TimingField::FIRST_CONTENTFUL_PAINT); |
ui_test_utils::NavigateToURL( |
browser(), embedded_test_server()->GetURL( |
"/page_load_metrics/document_write_no_script.html")); |
@@ -605,7 +660,7 @@ IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, NoDocumentWrite) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
auto waiter = CreatePageLoadMetricsWaiter(); |
- waiter->AddMainFrameExpectation(TimingField::FIRST_CONTENTFUL_PAINT); |
+ waiter->AddPageExpectation(TimingField::FIRST_CONTENTFUL_PAINT); |
ui_test_utils::NavigateToURL(browser(), |
embedded_test_server()->GetURL("/title1.html")); |
@@ -624,7 +679,7 @@ IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, DocumentWriteBlock) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
auto waiter = CreatePageLoadMetricsWaiter(); |
- waiter->AddMainFrameExpectation(TimingField::FIRST_CONTENTFUL_PAINT); |
+ waiter->AddPageExpectation(TimingField::FIRST_CONTENTFUL_PAINT); |
ui_test_utils::NavigateToURL( |
browser(), embedded_test_server()->GetURL( |
@@ -640,7 +695,7 @@ IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, DocumentWriteReload) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
auto waiter = CreatePageLoadMetricsWaiter(); |
- waiter->AddMainFrameExpectation(TimingField::FIRST_CONTENTFUL_PAINT); |
+ waiter->AddPageExpectation(TimingField::FIRST_CONTENTFUL_PAINT); |
ui_test_utils::NavigateToURL( |
browser(), embedded_test_server()->GetURL( |
"/page_load_metrics/document_write_script_block.html")); |
@@ -651,26 +706,24 @@ IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, DocumentWriteReload) { |
histogram_tester_.ExpectTotalCount(internal::kHistogramDocWriteBlockCount, 1); |
// Reload should not log the histogram as the script is not blocked. |
- auto reload_waiter = CreatePageLoadMetricsWaiter(); |
- reload_waiter->AddMainFrameExpectation( |
- TimingField::DOCUMENT_WRITE_BLOCK_RELOAD); |
- reload_waiter->AddMainFrameExpectation(TimingField::FIRST_CONTENTFUL_PAINT); |
+ waiter = CreatePageLoadMetricsWaiter(); |
+ waiter->AddPageExpectation(TimingField::DOCUMENT_WRITE_BLOCK_RELOAD); |
+ waiter->AddPageExpectation(TimingField::FIRST_CONTENTFUL_PAINT); |
ui_test_utils::NavigateToURL( |
browser(), embedded_test_server()->GetURL( |
"/page_load_metrics/document_write_script_block.html")); |
- reload_waiter->Wait(); |
+ waiter->Wait(); |
histogram_tester_.ExpectTotalCount( |
internal::kHistogramDocWriteBlockReloadCount, 1); |
- reload_waiter = CreatePageLoadMetricsWaiter(); |
- reload_waiter->AddMainFrameExpectation( |
- TimingField::DOCUMENT_WRITE_BLOCK_RELOAD); |
- reload_waiter->AddMainFrameExpectation(TimingField::FIRST_CONTENTFUL_PAINT); |
+ waiter = CreatePageLoadMetricsWaiter(); |
+ waiter->AddPageExpectation(TimingField::DOCUMENT_WRITE_BLOCK_RELOAD); |
+ waiter->AddPageExpectation(TimingField::FIRST_CONTENTFUL_PAINT); |
ui_test_utils::NavigateToURL( |
browser(), embedded_test_server()->GetURL( |
"/page_load_metrics/document_write_script_block.html")); |
- reload_waiter->Wait(); |
+ waiter->Wait(); |
histogram_tester_.ExpectTotalCount( |
internal::kHistogramDocWriteBlockParseStartToFirstContentfulPaint, 1); |
@@ -684,7 +737,7 @@ IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, DocumentWriteAsync) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
auto waiter = CreatePageLoadMetricsWaiter(); |
- waiter->AddMainFrameExpectation(TimingField::FIRST_CONTENTFUL_PAINT); |
+ waiter->AddPageExpectation(TimingField::FIRST_CONTENTFUL_PAINT); |
ui_test_utils::NavigateToURL( |
browser(), embedded_test_server()->GetURL( |
"/page_load_metrics/document_write_async_script.html")); |
@@ -701,7 +754,7 @@ IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, DocumentWriteSameDomain) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
auto waiter = CreatePageLoadMetricsWaiter(); |
- waiter->AddMainFrameExpectation(TimingField::FIRST_CONTENTFUL_PAINT); |
+ waiter->AddPageExpectation(TimingField::FIRST_CONTENTFUL_PAINT); |
ui_test_utils::NavigateToURL( |
browser(), embedded_test_server()->GetURL( |
"/page_load_metrics/document_write_external_script.html")); |
@@ -718,7 +771,7 @@ IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, NoDocumentWriteScript) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
auto waiter = CreatePageLoadMetricsWaiter(); |
- waiter->AddMainFrameExpectation(TimingField::FIRST_CONTENTFUL_PAINT); |
+ waiter->AddPageExpectation(TimingField::FIRST_CONTENTFUL_PAINT); |
ui_test_utils::NavigateToURL( |
browser(), embedded_test_server()->GetURL( |
"/page_load_metrics/document_write_no_script.html")); |
@@ -740,9 +793,6 @@ IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, NoDocumentWriteScript) { |
IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, MAYBE_BadXhtml) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
- auto waiter = CreatePageLoadMetricsWaiter(); |
- waiter->AddMainFrameExpectation(TimingField::FIRST_PAINT); |
- |
// When an XHTML page contains invalid XML, it causes a paint of the error |
// message without a layout. Page load metrics currently treats this as an |
// error. Eventually, we'll fix this by special casing the handling of |
@@ -751,13 +801,11 @@ IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, MAYBE_BadXhtml) { |
ui_test_utils::NavigateToURL( |
browser(), |
embedded_test_server()->GetURL("/page_load_metrics/badxml.xhtml")); |
- |
- waiter->Wait(); |
+ NavigateToUntrackedUrl(); |
histogram_tester_.ExpectTotalCount(internal::kHistogramFirstLayout, 0); |
histogram_tester_.ExpectTotalCount(internal::kHistogramFirstPaint, 0); |
- histogram_tester_.ExpectTotalCount(page_load_metrics::internal::kErrorEvents, |
- 1); |
+ |
histogram_tester_.ExpectBucketCount( |
page_load_metrics::internal::kErrorEvents, |
page_load_metrics::ERR_BAD_TIMING_IPC_INVALID_TIMING, 1); |
@@ -788,7 +836,7 @@ IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, AbortNewNavigation) { |
ui::PAGE_TRANSITION_FROM_ADDRESS_BAR); |
auto waiter = CreatePageLoadMetricsWaiter(); |
- waiter->AddMainFrameExpectation(TimingField::LOAD_EVENT); |
+ waiter->AddPageExpectation(TimingField::LOAD_EVENT); |
chrome::Navigate(¶ms2); |
waiter->Wait(); |
@@ -810,7 +858,7 @@ IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, AbortReload) { |
chrome::NavigateParams params2(browser(), url, ui::PAGE_TRANSITION_RELOAD); |
auto waiter = CreatePageLoadMetricsWaiter(); |
- waiter->AddMainFrameExpectation(TimingField::LOAD_EVENT); |
+ waiter->AddPageExpectation(TimingField::LOAD_EVENT); |
chrome::Navigate(¶ms2); |
waiter->Wait(); |
@@ -868,7 +916,7 @@ IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, AbortMultiple) { |
chrome::NavigateParams params3(browser(), url3, ui::PAGE_TRANSITION_TYPED); |
auto waiter = CreatePageLoadMetricsWaiter(); |
- waiter->AddMainFrameExpectation(TimingField::LOAD_EVENT); |
+ waiter->AddPageExpectation(TimingField::LOAD_EVENT); |
chrome::Navigate(¶ms3); |
waiter->Wait(); |
@@ -895,9 +943,7 @@ IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, |
{ |
auto waiter = CreatePageLoadMetricsWaiter(); |
- waiter->AddMainFrameExpectation(TimingField::LOAD_EVENT); |
- content::TestNavigationManager reload_manager( |
- browser()->tab_strip_model()->GetActiveWebContents(), first_url); |
+ waiter->AddPageExpectation(TimingField::LOAD_EVENT); |
EXPECT_TRUE(content::ExecuteScript( |
browser()->tab_strip_model()->GetActiveWebContents(), |
"window.location.reload();")); |
@@ -916,7 +962,7 @@ IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, |
ASSERT_TRUE(embedded_test_server()->Start()); |
auto waiter = CreatePageLoadMetricsWaiter(); |
- waiter->AddMainFrameExpectation(TimingField::FIRST_MEANINGFUL_PAINT); |
+ waiter->AddPageExpectation(TimingField::FIRST_MEANINGFUL_PAINT); |
ui_test_utils::NavigateToURL(browser(), |
embedded_test_server()->GetURL("/title1.html")); |
waiter->Wait(); |
@@ -935,7 +981,7 @@ IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, |
ASSERT_TRUE(embedded_test_server()->Start()); |
auto waiter = CreatePageLoadMetricsWaiter(); |
- waiter->AddMainFrameExpectation(TimingField::FIRST_CONTENTFUL_PAINT); |
+ waiter->AddPageExpectation(TimingField::FIRST_CONTENTFUL_PAINT); |
ui_test_utils::NavigateToURL( |
browser(), embedded_test_server()->GetURL( |
@@ -961,7 +1007,7 @@ IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, |
ASSERT_TRUE(embedded_test_server()->Start()); |
auto waiter = CreatePageLoadMetricsWaiter(); |
- waiter->AddMainFrameExpectation(TimingField::FIRST_CONTENTFUL_PAINT); |
+ waiter->AddPageExpectation(TimingField::FIRST_CONTENTFUL_PAINT); |
ui_test_utils::NavigateToURL(browser(), |
embedded_test_server()->GetURL("/title1.html")); |
@@ -979,7 +1025,7 @@ IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, |
ASSERT_TRUE(embedded_test_server()->Start()); |
auto waiter = CreatePageLoadMetricsWaiter(); |
- waiter->AddMainFrameExpectation(TimingField::FIRST_CONTENTFUL_PAINT); |
+ waiter->AddPageExpectation(TimingField::FIRST_CONTENTFUL_PAINT); |
ui_test_utils::NavigateToURL(browser(), |
embedded_test_server()->GetURL("/nostore.html")); |
@@ -996,7 +1042,7 @@ IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, CSSTiming) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
auto waiter = CreatePageLoadMetricsWaiter(); |
- waiter->AddMainFrameExpectation(TimingField::STYLE_UPDATE_BEFORE_FCP); |
+ waiter->AddPageExpectation(TimingField::STYLE_UPDATE_BEFORE_FCP); |
// Careful: Blink code clamps timestamps to 5us, so any CSS parsing we do here |
// must take >> 5us, otherwise we'll log 0 for the value and it will remain |
@@ -1020,7 +1066,7 @@ IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, PayloadSize) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
auto waiter = CreatePageLoadMetricsWaiter(); |
- waiter->AddMainFrameExpectation(TimingField::LOAD_EVENT); |
+ waiter->AddPageExpectation(TimingField::LOAD_EVENT); |
ui_test_utils::NavigateToURL(browser(), embedded_test_server()->GetURL( |
"/page_load_metrics/large.html")); |
waiter->Wait(); |