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

Side by Side Diff: chrome/browser/prerender/prerender_browsertest.cc

Issue 2874663005: [Page Load Metrics] Add mojom file to page load metrics. (Closed)
Patch Set: Remove unnecessary variable 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 unified diff | Download patch
« no previous file with comments | « chrome/browser/page_load_metrics/page_load_tracker.cc ('k') | chrome/common/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <stddef.h> 5 #include <stddef.h>
6 #include <deque> 6 #include <deque>
7 #include <set> 7 #include <set>
8 #include <string> 8 #include <string>
9 #include <unordered_map> 9 #include <unordered_map>
10 #include <utility> 10 #include <utility>
(...skipping 3416 matching lines...) Expand 10 before | Expand all | Expand 10 after
3427 PrerenderTestURL("/prerender/prerender_page.html", FINAL_STATUS_USED, 1); 3427 PrerenderTestURL("/prerender/prerender_page.html", FINAL_STATUS_USED, 1);
3428 3428
3429 base::TimeTicks load_start = clock->NowTicks(); 3429 base::TimeTicks load_start = clock->NowTicks();
3430 clock->Advance(base::TimeDelta::FromSeconds(1)); 3430 clock->Advance(base::TimeDelta::FromSeconds(1));
3431 NavigateToDestURL(); 3431 NavigateToDestURL();
3432 3432
3433 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(), 3433 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(),
3434 GetActiveWebContents()); 3434 GetActiveWebContents());
3435 observer.SetNavigationStartTicksForTesting(load_start); 3435 observer.SetNavigationStartTicksForTesting(load_start);
3436 3436
3437 page_load_metrics::PageLoadTiming timing; 3437 page_load_metrics::mojom::PageLoadTiming timing;
3438 page_load_metrics::InitPageLoadTimingForTest(&timing);
3438 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. 3439 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time.
3439 timing.paint_timing.first_contentful_paint = 3440 timing.paint_timing->first_contentful_paint =
3440 base::TimeDelta::FromMilliseconds(2654); 3441 base::TimeDelta::FromMilliseconds(2654);
3441 page_load_metrics::PageLoadMetricsObserverTestHarness:: 3442 page_load_metrics::PageLoadMetricsObserverTestHarness::
3442 PopulateRequiredTimingFields(&timing); 3443 PopulateRequiredTimingFields(&timing);
3443 observer.OnFirstContentfulPaintInPage(timing, 3444 observer.OnFirstContentfulPaintInPage(timing,
3444 GenericPageLoadExtraInfo(dest_url())); 3445 GenericPageLoadExtraInfo(dest_url()));
3445 3446
3446 histogram_tester().ExpectTotalCount( 3447 histogram_tester().ExpectTotalCount(
3447 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1); 3448 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1);
3448 histogram_tester().ExpectUniqueSample( 3449 histogram_tester().ExpectUniqueSample(
3449 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1654, 1); 3450 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1654, 1);
(...skipping 19 matching lines...) Expand all
3469 base::TimeTicks load_start = clock->NowTicks(); 3470 base::TimeTicks load_start = clock->NowTicks();
3470 EnableJavascriptCalls(); 3471 EnableJavascriptCalls();
3471 PrerenderTestURL(url, FINAL_STATUS_USED, 1); 3472 PrerenderTestURL(url, FINAL_STATUS_USED, 1);
3472 clock->Advance(base::TimeDelta::FromSeconds(1)); 3473 clock->Advance(base::TimeDelta::FromSeconds(1));
3473 3474
3474 NavigateToDestURL(); 3475 NavigateToDestURL();
3475 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(), 3476 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(),
3476 GetActiveWebContents()); 3477 GetActiveWebContents());
3477 observer.SetNavigationStartTicksForTesting(load_start); 3478 observer.SetNavigationStartTicksForTesting(load_start);
3478 3479
3479 page_load_metrics::PageLoadTiming timing; 3480 page_load_metrics::mojom::PageLoadTiming timing;
3481 page_load_metrics::InitPageLoadTimingForTest(&timing);
3480 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. 3482 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time.
3481 timing.paint_timing.first_contentful_paint = 3483 timing.paint_timing->first_contentful_paint =
3482 base::TimeDelta::FromMilliseconds(2361); 3484 base::TimeDelta::FromMilliseconds(2361);
3483 page_load_metrics::PageLoadMetricsObserverTestHarness:: 3485 page_load_metrics::PageLoadMetricsObserverTestHarness::
3484 PopulateRequiredTimingFields(&timing); 3486 PopulateRequiredTimingFields(&timing);
3485 observer.OnFirstContentfulPaintInPage(timing, 3487 observer.OnFirstContentfulPaintInPage(timing,
3486 GenericPageLoadExtraInfo(dest_url())); 3488 GenericPageLoadExtraInfo(dest_url()));
3487 3489
3488 histogram_tester().ExpectTotalCount( 3490 histogram_tester().ExpectTotalCount(
3489 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1); 3491 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1);
3490 // If the first prerender had been used, the perceived TTFCP would have been 3492 // If the first prerender had been used, the perceived TTFCP would have been
3491 // under a second: 2362ms - 2 sec worth of Advance(). 3493 // under a second: 2362ms - 2 sec worth of Advance().
(...skipping 19 matching lines...) Expand all
3511 base::TimeTicks load_start = clock->NowTicks(); 3513 base::TimeTicks load_start = clock->NowTicks();
3512 PrerenderTestURL(url, FINAL_STATUS_USED, 1); 3514 PrerenderTestURL(url, FINAL_STATUS_USED, 1);
3513 3515
3514 clock->Advance(base::TimeDelta::FromSeconds(1)); 3516 clock->Advance(base::TimeDelta::FromSeconds(1));
3515 NavigateToDestURL(); 3517 NavigateToDestURL();
3516 3518
3517 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(), 3519 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(),
3518 GetActiveWebContents()); 3520 GetActiveWebContents());
3519 observer.SetNavigationStartTicksForTesting(load_start); 3521 observer.SetNavigationStartTicksForTesting(load_start);
3520 3522
3521 page_load_metrics::PageLoadTiming timing; 3523 page_load_metrics::mojom::PageLoadTiming timing;
3524 page_load_metrics::InitPageLoadTimingForTest(&timing);
3522 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. 3525 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time.
3523 timing.paint_timing.first_contentful_paint = 3526 timing.paint_timing->first_contentful_paint =
3524 base::TimeDelta::FromMilliseconds(2361); 3527 base::TimeDelta::FromMilliseconds(2361);
3525 page_load_metrics::PageLoadMetricsObserverTestHarness:: 3528 page_load_metrics::PageLoadMetricsObserverTestHarness::
3526 PopulateRequiredTimingFields(&timing); 3529 PopulateRequiredTimingFields(&timing);
3527 observer.OnFirstContentfulPaintInPage(timing, 3530 observer.OnFirstContentfulPaintInPage(timing,
3528 GenericPageLoadExtraInfo(dest_url())); 3531 GenericPageLoadExtraInfo(dest_url()));
3529 3532
3530 histogram_tester().ExpectTotalCount( 3533 histogram_tester().ExpectTotalCount(
3531 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1); 3534 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1);
3532 // If the timed out had been used, the perceived TTFCP would have been 3535 // If the timed out had been used, the perceived TTFCP would have been
3533 // negative. 3536 // negative.
(...skipping 21 matching lines...) Expand all
3555 PrerenderTestURL(url, FINAL_STATUS_NAVIGATION_UNCOMMITTED, 0); 3558 PrerenderTestURL(url, FINAL_STATUS_NAVIGATION_UNCOMMITTED, 0);
3556 prerender_start_loop.Run(); 3559 prerender_start_loop.Run();
3557 3560
3558 clock->Advance(base::TimeDelta::FromSeconds(1)); 3561 clock->Advance(base::TimeDelta::FromSeconds(1));
3559 NavigateToDestURLWithDisposition(WindowOpenDisposition::CURRENT_TAB, false); 3562 NavigateToDestURLWithDisposition(WindowOpenDisposition::CURRENT_TAB, false);
3560 3563
3561 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(), 3564 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(),
3562 GetActiveWebContents()); 3565 GetActiveWebContents());
3563 observer.SetNavigationStartTicksForTesting(clock->NowTicks()); 3566 observer.SetNavigationStartTicksForTesting(clock->NowTicks());
3564 3567
3565 page_load_metrics::PageLoadTiming timing; 3568 page_load_metrics::mojom::PageLoadTiming timing;
3569 page_load_metrics::InitPageLoadTimingForTest(&timing);
3566 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. 3570 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time.
3567 timing.paint_timing.first_contentful_paint = 3571 timing.paint_timing->first_contentful_paint =
3568 base::TimeDelta::FromMilliseconds(2362); 3572 base::TimeDelta::FromMilliseconds(2362);
3569 page_load_metrics::PageLoadMetricsObserverTestHarness:: 3573 page_load_metrics::PageLoadMetricsObserverTestHarness::
3570 PopulateRequiredTimingFields(&timing); 3574 PopulateRequiredTimingFields(&timing);
3571 observer.OnFirstContentfulPaintInPage(timing, 3575 observer.OnFirstContentfulPaintInPage(timing,
3572 GenericPageLoadExtraInfo(dest_url())); 3576 GenericPageLoadExtraInfo(dest_url()));
3573 3577
3574 histogram_tester().ExpectTotalCount( 3578 histogram_tester().ExpectTotalCount(
3575 "Prerender.none_PrefetchTTFCP.Warm.Cacheable.Visible", 0); 3579 "Prerender.none_PrefetchTTFCP.Warm.Cacheable.Visible", 0);
3576 histogram_tester().ExpectTotalCount( 3580 histogram_tester().ExpectTotalCount(
3577 "Prerender.none_PerceivedTTFCPRecorded.Visible", 1); 3581 "Prerender.none_PerceivedTTFCPRecorded.Visible", 1);
(...skipping 27 matching lines...) Expand all
3605 EnableJavascriptCalls(); 3609 EnableJavascriptCalls();
3606 PrerenderTestURL("/prerender/prerender_page.html", FINAL_STATUS_USED, 1); 3610 PrerenderTestURL("/prerender/prerender_page.html", FINAL_STATUS_USED, 1);
3607 3611
3608 clock->Advance(base::TimeDelta::FromSeconds(1)); 3612 clock->Advance(base::TimeDelta::FromSeconds(1));
3609 NavigateToDestURL(); 3613 NavigateToDestURL();
3610 3614
3611 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(), 3615 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(),
3612 GetActiveWebContents()); 3616 GetActiveWebContents());
3613 observer.SetNavigationStartTicksForTesting(load_start); 3617 observer.SetNavigationStartTicksForTesting(load_start);
3614 3618
3615 page_load_metrics::PageLoadTiming timing; 3619 page_load_metrics::mojom::PageLoadTiming timing;
3620 page_load_metrics::InitPageLoadTimingForTest(&timing);
3616 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. 3621 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time.
3617 // The FCP time should end up on the edge of the bucket. 3622 // The FCP time should end up on the edge of the bucket.
3618 timing.paint_timing.first_contentful_paint = 3623 timing.paint_timing->first_contentful_paint =
3619 base::TimeDelta::FromMilliseconds(2654); 3624 base::TimeDelta::FromMilliseconds(2654);
3620 page_load_metrics::PageLoadMetricsObserverTestHarness:: 3625 page_load_metrics::PageLoadMetricsObserverTestHarness::
3621 PopulateRequiredTimingFields(&timing); 3626 PopulateRequiredTimingFields(&timing);
3622 observer.OnFirstContentfulPaintInPage(timing, 3627 observer.OnFirstContentfulPaintInPage(timing,
3623 GenericPageLoadExtraInfo(dest_url())); 3628 GenericPageLoadExtraInfo(dest_url()));
3624 3629
3625 histogram_tester().ExpectTotalCount( 3630 histogram_tester().ExpectTotalCount(
3626 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1); 3631 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1);
3627 histogram_tester().ExpectUniqueSample( 3632 histogram_tester().ExpectUniqueSample(
3628 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1654, 1); 3633 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1654, 1);
3629 } 3634 }
3630 3635
3631 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, FirstContentfulPaintHidden) { 3636 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, FirstContentfulPaintHidden) {
3632 GetPrerenderManager()->DisablePageLoadMetricsObserverForTesting(); 3637 GetPrerenderManager()->DisablePageLoadMetricsObserverForTesting();
3633 base::SimpleTestTickClock* clock = OverridePrerenderManagerTimeTicks(); 3638 base::SimpleTestTickClock* clock = OverridePrerenderManagerTimeTicks();
3634 base::TimeTicks load_start = clock->NowTicks(); 3639 base::TimeTicks load_start = clock->NowTicks();
3635 PrerenderTestURL("/prerender/prerender_page.html", FINAL_STATUS_USED, 1); 3640 PrerenderTestURL("/prerender/prerender_page.html", FINAL_STATUS_USED, 1);
3636 3641
3637 clock->Advance(base::TimeDelta::FromSeconds(1)); 3642 clock->Advance(base::TimeDelta::FromSeconds(1));
3638 NavigateToDestURL(); 3643 NavigateToDestURL();
3639 3644
3640 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(), 3645 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(),
3641 GetActiveWebContents()); 3646 GetActiveWebContents());
3642 observer.SetNavigationStartTicksForTesting(load_start); 3647 observer.SetNavigationStartTicksForTesting(load_start);
3643 3648
3644 EXPECT_EQ(page_load_metrics::PageLoadMetricsObserver::CONTINUE_OBSERVING, 3649 EXPECT_EQ(page_load_metrics::PageLoadMetricsObserver::CONTINUE_OBSERVING,
3645 observer.OnHidden(page_load_metrics::PageLoadTiming(), 3650 observer.OnHidden(page_load_metrics::mojom::PageLoadTiming(),
3646 GenericPageLoadExtraInfo(dest_url()))); 3651 GenericPageLoadExtraInfo(dest_url())));
3647 3652
3648 page_load_metrics::PageLoadTiming timing; 3653 page_load_metrics::mojom::PageLoadTiming timing;
3654 page_load_metrics::InitPageLoadTimingForTest(&timing);
3649 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. 3655 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time.
3650 timing.paint_timing.first_contentful_paint = 3656 timing.paint_timing->first_contentful_paint =
3651 base::TimeDelta::FromMilliseconds(2654); 3657 base::TimeDelta::FromMilliseconds(2654);
3652 page_load_metrics::PageLoadMetricsObserverTestHarness:: 3658 page_load_metrics::PageLoadMetricsObserverTestHarness::
3653 PopulateRequiredTimingFields(&timing); 3659 PopulateRequiredTimingFields(&timing);
3654 observer.OnFirstContentfulPaintInPage(timing, 3660 observer.OnFirstContentfulPaintInPage(timing,
3655 GenericPageLoadExtraInfo(dest_url())); 3661 GenericPageLoadExtraInfo(dest_url()));
3656 3662
3657 histogram_tester().ExpectTotalCount( 3663 histogram_tester().ExpectTotalCount(
3658 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Hidden", 1); 3664 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Hidden", 1);
3659 histogram_tester().ExpectUniqueSample( 3665 histogram_tester().ExpectUniqueSample(
3660 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Hidden", 1654, 1); 3666 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Hidden", 1654, 1);
(...skipping 20 matching lines...) Expand all
3681 prerender_start_loop.Run(); 3687 prerender_start_loop.Run();
3682 3688
3683 clock->Advance(base::TimeDelta::FromSeconds(1)); 3689 clock->Advance(base::TimeDelta::FromSeconds(1));
3684 NavigateToDestURLWithDisposition(WindowOpenDisposition::CURRENT_TAB, false); 3690 NavigateToDestURLWithDisposition(WindowOpenDisposition::CURRENT_TAB, false);
3685 3691
3686 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(), 3692 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(),
3687 GetActiveWebContents()); 3693 GetActiveWebContents());
3688 observer.SetNavigationStartTicksForTesting(clock->NowTicks()); 3694 observer.SetNavigationStartTicksForTesting(clock->NowTicks());
3689 3695
3690 EXPECT_EQ(page_load_metrics::PageLoadMetricsObserver::CONTINUE_OBSERVING, 3696 EXPECT_EQ(page_load_metrics::PageLoadMetricsObserver::CONTINUE_OBSERVING,
3691 observer.OnHidden(page_load_metrics::PageLoadTiming(), 3697 observer.OnHidden(page_load_metrics::mojom::PageLoadTiming(),
3692 GenericPageLoadExtraInfo(dest_url()))); 3698 GenericPageLoadExtraInfo(dest_url())));
3693 3699
3694 page_load_metrics::PageLoadTiming timing; 3700 page_load_metrics::mojom::PageLoadTiming timing;
3701 page_load_metrics::InitPageLoadTimingForTest(&timing);
3695 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. 3702 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time.
3696 timing.paint_timing.first_contentful_paint = 3703 timing.paint_timing->first_contentful_paint =
3697 base::TimeDelta::FromMilliseconds(2362); 3704 base::TimeDelta::FromMilliseconds(2362);
3698 page_load_metrics::PageLoadMetricsObserverTestHarness:: 3705 page_load_metrics::PageLoadMetricsObserverTestHarness::
3699 PopulateRequiredTimingFields(&timing); 3706 PopulateRequiredTimingFields(&timing);
3700 observer.OnFirstContentfulPaintInPage(timing, 3707 observer.OnFirstContentfulPaintInPage(timing,
3701 GenericPageLoadExtraInfo(dest_url())); 3708 GenericPageLoadExtraInfo(dest_url()));
3702 3709
3703 histogram_tester().ExpectTotalCount( 3710 histogram_tester().ExpectTotalCount(
3704 "Prerender.none_PrefetchTTFCP.Warm.Cacheable.Hidden", 0); 3711 "Prerender.none_PrefetchTTFCP.Warm.Cacheable.Hidden", 0);
3705 histogram_tester().ExpectTotalCount( 3712 histogram_tester().ExpectTotalCount(
3706 "Prerender.none_PerceivedTTFCPRecorded.Hidden", 1); 3713 "Prerender.none_PerceivedTTFCPRecorded.Hidden", 1);
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
3928 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(web_contents, 3935 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(web_contents,
3929 "DidDisplayReallyPass()", 3936 "DidDisplayReallyPass()",
3930 &display_test_result)); 3937 &display_test_result));
3931 ASSERT_TRUE(display_test_result); 3938 ASSERT_TRUE(display_test_result);
3932 } 3939 }
3933 #endif // !defined(DISABLE_NACL) 3940 #endif // !defined(DISABLE_NACL)
3934 3941
3935 } // namespace prerender 3942 } // namespace prerender
3936 3943
3937 #endif // !defined(OS_MACOSX) || !defined(ADDRESS_SANITIZER) 3944 #endif // !defined(OS_MACOSX) || !defined(ADDRESS_SANITIZER)
OLDNEW
« no previous file with comments | « chrome/browser/page_load_metrics/page_load_tracker.cc ('k') | chrome/common/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698