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

Unified Diff: chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc

Issue 2903693004: Make PageLoadMetricsWaiter more resilient (Closed)
Patch Set: rebase Created 3 years, 7 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/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(&params2);
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(&params2);
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(&params3);
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();

Powered by Google App Engine
This is Rietveld 408576698