OLD | NEW |
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 3422 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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::PageLoadTiming timing; |
3438 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. | 3438 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. |
3439 timing.paint_timing.first_contentful_paint = | 3439 timing.paint_timing.first_contentful_paint = |
3440 base::TimeDelta::FromMilliseconds(2654); | 3440 base::TimeDelta::FromMilliseconds(2654); |
3441 page_load_metrics::PageLoadMetricsObserverTestHarness:: | 3441 page_load_metrics::PageLoadMetricsObserverTestHarness:: |
3442 PopulateRequiredTimingFields(&timing); | 3442 PopulateRequiredTimingFields(&timing); |
3443 observer.OnFirstContentfulPaint(timing, GenericPageLoadExtraInfo(dest_url())); | 3443 observer.OnFirstContentfulPaintInPage(timing, |
| 3444 GenericPageLoadExtraInfo(dest_url())); |
3444 | 3445 |
3445 histogram_tester().ExpectTotalCount( | 3446 histogram_tester().ExpectTotalCount( |
3446 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1); | 3447 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1); |
3447 histogram_tester().ExpectUniqueSample( | 3448 histogram_tester().ExpectUniqueSample( |
3448 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1654, 1); | 3449 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1654, 1); |
3449 } | 3450 } |
3450 | 3451 |
3451 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, FirstContentfulPaintTimingReuse) { | 3452 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, FirstContentfulPaintTimingReuse) { |
3452 GetPrerenderManager()->DisablePageLoadMetricsObserverForTesting(); | 3453 GetPrerenderManager()->DisablePageLoadMetricsObserverForTesting(); |
3453 base::SimpleTestTickClock* clock = OverridePrerenderManagerTimeTicks(); | 3454 base::SimpleTestTickClock* clock = OverridePrerenderManagerTimeTicks(); |
(...skipping 20 matching lines...) Expand all Loading... |
3474 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(), | 3475 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(), |
3475 GetActiveWebContents()); | 3476 GetActiveWebContents()); |
3476 observer.SetNavigationStartTicksForTesting(load_start); | 3477 observer.SetNavigationStartTicksForTesting(load_start); |
3477 | 3478 |
3478 page_load_metrics::PageLoadTiming timing; | 3479 page_load_metrics::PageLoadTiming timing; |
3479 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. | 3480 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. |
3480 timing.paint_timing.first_contentful_paint = | 3481 timing.paint_timing.first_contentful_paint = |
3481 base::TimeDelta::FromMilliseconds(2361); | 3482 base::TimeDelta::FromMilliseconds(2361); |
3482 page_load_metrics::PageLoadMetricsObserverTestHarness:: | 3483 page_load_metrics::PageLoadMetricsObserverTestHarness:: |
3483 PopulateRequiredTimingFields(&timing); | 3484 PopulateRequiredTimingFields(&timing); |
3484 observer.OnFirstContentfulPaint(timing, GenericPageLoadExtraInfo(dest_url())); | 3485 observer.OnFirstContentfulPaintInPage(timing, |
| 3486 GenericPageLoadExtraInfo(dest_url())); |
3485 | 3487 |
3486 histogram_tester().ExpectTotalCount( | 3488 histogram_tester().ExpectTotalCount( |
3487 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1); | 3489 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1); |
3488 // If the first prerender had been used, the perceived TTFCP would have been | 3490 // If the first prerender had been used, the perceived TTFCP would have been |
3489 // under a second: 2362ms - 2 sec worth of Advance(). | 3491 // under a second: 2362ms - 2 sec worth of Advance(). |
3490 histogram_tester().ExpectUniqueSample( | 3492 histogram_tester().ExpectUniqueSample( |
3491 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1361, 1); | 3493 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1361, 1); |
3492 } | 3494 } |
3493 | 3495 |
3494 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | 3496 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
(...skipping 20 matching lines...) Expand all Loading... |
3515 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(), | 3517 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(), |
3516 GetActiveWebContents()); | 3518 GetActiveWebContents()); |
3517 observer.SetNavigationStartTicksForTesting(load_start); | 3519 observer.SetNavigationStartTicksForTesting(load_start); |
3518 | 3520 |
3519 page_load_metrics::PageLoadTiming timing; | 3521 page_load_metrics::PageLoadTiming timing; |
3520 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. | 3522 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. |
3521 timing.paint_timing.first_contentful_paint = | 3523 timing.paint_timing.first_contentful_paint = |
3522 base::TimeDelta::FromMilliseconds(2361); | 3524 base::TimeDelta::FromMilliseconds(2361); |
3523 page_load_metrics::PageLoadMetricsObserverTestHarness:: | 3525 page_load_metrics::PageLoadMetricsObserverTestHarness:: |
3524 PopulateRequiredTimingFields(&timing); | 3526 PopulateRequiredTimingFields(&timing); |
3525 observer.OnFirstContentfulPaint(timing, GenericPageLoadExtraInfo(dest_url())); | 3527 observer.OnFirstContentfulPaintInPage(timing, |
| 3528 GenericPageLoadExtraInfo(dest_url())); |
3526 | 3529 |
3527 histogram_tester().ExpectTotalCount( | 3530 histogram_tester().ExpectTotalCount( |
3528 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1); | 3531 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1); |
3529 // If the timed out had been used, the perceived TTFCP would have been | 3532 // If the timed out had been used, the perceived TTFCP would have been |
3530 // negative. | 3533 // negative. |
3531 histogram_tester().ExpectUniqueSample( | 3534 histogram_tester().ExpectUniqueSample( |
3532 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1361, 1); | 3535 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1361, 1); |
3533 } | 3536 } |
3534 | 3537 |
3535 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | 3538 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
(...skipping 22 matching lines...) Expand all Loading... |
3558 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(), | 3561 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(), |
3559 GetActiveWebContents()); | 3562 GetActiveWebContents()); |
3560 observer.SetNavigationStartTicksForTesting(clock->NowTicks()); | 3563 observer.SetNavigationStartTicksForTesting(clock->NowTicks()); |
3561 | 3564 |
3562 page_load_metrics::PageLoadTiming timing; | 3565 page_load_metrics::PageLoadTiming timing; |
3563 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. | 3566 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. |
3564 timing.paint_timing.first_contentful_paint = | 3567 timing.paint_timing.first_contentful_paint = |
3565 base::TimeDelta::FromMilliseconds(2362); | 3568 base::TimeDelta::FromMilliseconds(2362); |
3566 page_load_metrics::PageLoadMetricsObserverTestHarness:: | 3569 page_load_metrics::PageLoadMetricsObserverTestHarness:: |
3567 PopulateRequiredTimingFields(&timing); | 3570 PopulateRequiredTimingFields(&timing); |
3568 observer.OnFirstContentfulPaint(timing, GenericPageLoadExtraInfo(dest_url())); | 3571 observer.OnFirstContentfulPaintInPage(timing, |
| 3572 GenericPageLoadExtraInfo(dest_url())); |
3569 | 3573 |
3570 histogram_tester().ExpectTotalCount( | 3574 histogram_tester().ExpectTotalCount( |
3571 "Prerender.none_PrefetchTTFCP.Warm.Cacheable.Visible", 0); | 3575 "Prerender.none_PrefetchTTFCP.Warm.Cacheable.Visible", 0); |
3572 histogram_tester().ExpectTotalCount( | 3576 histogram_tester().ExpectTotalCount( |
3573 "Prerender.none_PerceivedTTFCPRecorded.Visible", 1); | 3577 "Prerender.none_PerceivedTTFCPRecorded.Visible", 1); |
3574 | 3578 |
3575 // Check that the prerender didn't happen with a defined origin. | 3579 // Check that the prerender didn't happen with a defined origin. |
3576 histogram_tester().ExpectTotalCount( | 3580 histogram_tester().ExpectTotalCount( |
3577 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 0); | 3581 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 0); |
3578 histogram_tester().ExpectTotalCount( | 3582 histogram_tester().ExpectTotalCount( |
(...skipping 29 matching lines...) Expand all Loading... |
3608 GetActiveWebContents()); | 3612 GetActiveWebContents()); |
3609 observer.SetNavigationStartTicksForTesting(load_start); | 3613 observer.SetNavigationStartTicksForTesting(load_start); |
3610 | 3614 |
3611 page_load_metrics::PageLoadTiming timing; | 3615 page_load_metrics::PageLoadTiming timing; |
3612 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. | 3616 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. |
3613 // The FCP time should end up on the edge of the bucket. | 3617 // The FCP time should end up on the edge of the bucket. |
3614 timing.paint_timing.first_contentful_paint = | 3618 timing.paint_timing.first_contentful_paint = |
3615 base::TimeDelta::FromMilliseconds(2654); | 3619 base::TimeDelta::FromMilliseconds(2654); |
3616 page_load_metrics::PageLoadMetricsObserverTestHarness:: | 3620 page_load_metrics::PageLoadMetricsObserverTestHarness:: |
3617 PopulateRequiredTimingFields(&timing); | 3621 PopulateRequiredTimingFields(&timing); |
3618 observer.OnFirstContentfulPaint(timing, GenericPageLoadExtraInfo(dest_url())); | 3622 observer.OnFirstContentfulPaintInPage(timing, |
| 3623 GenericPageLoadExtraInfo(dest_url())); |
3619 | 3624 |
3620 histogram_tester().ExpectTotalCount( | 3625 histogram_tester().ExpectTotalCount( |
3621 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1); | 3626 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1); |
3622 histogram_tester().ExpectUniqueSample( | 3627 histogram_tester().ExpectUniqueSample( |
3623 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1654, 1); | 3628 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1654, 1); |
3624 } | 3629 } |
3625 | 3630 |
3626 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, FirstContentfulPaintHidden) { | 3631 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, FirstContentfulPaintHidden) { |
3627 GetPrerenderManager()->DisablePageLoadMetricsObserverForTesting(); | 3632 GetPrerenderManager()->DisablePageLoadMetricsObserverForTesting(); |
3628 base::SimpleTestTickClock* clock = OverridePrerenderManagerTimeTicks(); | 3633 base::SimpleTestTickClock* clock = OverridePrerenderManagerTimeTicks(); |
(...skipping 10 matching lines...) Expand all Loading... |
3639 EXPECT_EQ(page_load_metrics::PageLoadMetricsObserver::CONTINUE_OBSERVING, | 3644 EXPECT_EQ(page_load_metrics::PageLoadMetricsObserver::CONTINUE_OBSERVING, |
3640 observer.OnHidden(page_load_metrics::PageLoadTiming(), | 3645 observer.OnHidden(page_load_metrics::PageLoadTiming(), |
3641 GenericPageLoadExtraInfo(dest_url()))); | 3646 GenericPageLoadExtraInfo(dest_url()))); |
3642 | 3647 |
3643 page_load_metrics::PageLoadTiming timing; | 3648 page_load_metrics::PageLoadTiming timing; |
3644 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. | 3649 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. |
3645 timing.paint_timing.first_contentful_paint = | 3650 timing.paint_timing.first_contentful_paint = |
3646 base::TimeDelta::FromMilliseconds(2654); | 3651 base::TimeDelta::FromMilliseconds(2654); |
3647 page_load_metrics::PageLoadMetricsObserverTestHarness:: | 3652 page_load_metrics::PageLoadMetricsObserverTestHarness:: |
3648 PopulateRequiredTimingFields(&timing); | 3653 PopulateRequiredTimingFields(&timing); |
3649 observer.OnFirstContentfulPaint(timing, GenericPageLoadExtraInfo(dest_url())); | 3654 observer.OnFirstContentfulPaintInPage(timing, |
| 3655 GenericPageLoadExtraInfo(dest_url())); |
3650 | 3656 |
3651 histogram_tester().ExpectTotalCount( | 3657 histogram_tester().ExpectTotalCount( |
3652 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Hidden", 1); | 3658 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Hidden", 1); |
3653 histogram_tester().ExpectUniqueSample( | 3659 histogram_tester().ExpectUniqueSample( |
3654 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Hidden", 1654, 1); | 3660 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Hidden", 1654, 1); |
3655 } | 3661 } |
3656 | 3662 |
3657 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | 3663 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
3658 FirstContentfulPaintHiddenNoCommit) { | 3664 FirstContentfulPaintHiddenNoCommit) { |
3659 GetPrerenderManager()->DisablePageLoadMetricsObserverForTesting(); | 3665 GetPrerenderManager()->DisablePageLoadMetricsObserverForTesting(); |
(...skipping 24 matching lines...) Expand all Loading... |
3684 EXPECT_EQ(page_load_metrics::PageLoadMetricsObserver::CONTINUE_OBSERVING, | 3690 EXPECT_EQ(page_load_metrics::PageLoadMetricsObserver::CONTINUE_OBSERVING, |
3685 observer.OnHidden(page_load_metrics::PageLoadTiming(), | 3691 observer.OnHidden(page_load_metrics::PageLoadTiming(), |
3686 GenericPageLoadExtraInfo(dest_url()))); | 3692 GenericPageLoadExtraInfo(dest_url()))); |
3687 | 3693 |
3688 page_load_metrics::PageLoadTiming timing; | 3694 page_load_metrics::PageLoadTiming timing; |
3689 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. | 3695 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. |
3690 timing.paint_timing.first_contentful_paint = | 3696 timing.paint_timing.first_contentful_paint = |
3691 base::TimeDelta::FromMilliseconds(2362); | 3697 base::TimeDelta::FromMilliseconds(2362); |
3692 page_load_metrics::PageLoadMetricsObserverTestHarness:: | 3698 page_load_metrics::PageLoadMetricsObserverTestHarness:: |
3693 PopulateRequiredTimingFields(&timing); | 3699 PopulateRequiredTimingFields(&timing); |
3694 observer.OnFirstContentfulPaint(timing, GenericPageLoadExtraInfo(dest_url())); | 3700 observer.OnFirstContentfulPaintInPage(timing, |
| 3701 GenericPageLoadExtraInfo(dest_url())); |
3695 | 3702 |
3696 histogram_tester().ExpectTotalCount( | 3703 histogram_tester().ExpectTotalCount( |
3697 "Prerender.none_PrefetchTTFCP.Warm.Cacheable.Hidden", 0); | 3704 "Prerender.none_PrefetchTTFCP.Warm.Cacheable.Hidden", 0); |
3698 histogram_tester().ExpectTotalCount( | 3705 histogram_tester().ExpectTotalCount( |
3699 "Prerender.none_PerceivedTTFCPRecorded.Hidden", 1); | 3706 "Prerender.none_PerceivedTTFCPRecorded.Hidden", 1); |
3700 | 3707 |
3701 // Check that the prerender didn't happen with a defined origin. | 3708 // Check that the prerender didn't happen with a defined origin. |
3702 histogram_tester().ExpectTotalCount( | 3709 histogram_tester().ExpectTotalCount( |
3703 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Hidden", 0); | 3710 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Hidden", 0); |
3704 histogram_tester().ExpectTotalCount( | 3711 histogram_tester().ExpectTotalCount( |
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3921 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(web_contents, | 3928 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(web_contents, |
3922 "DidDisplayReallyPass()", | 3929 "DidDisplayReallyPass()", |
3923 &display_test_result)); | 3930 &display_test_result)); |
3924 ASSERT_TRUE(display_test_result); | 3931 ASSERT_TRUE(display_test_result); |
3925 } | 3932 } |
3926 #endif // !defined(DISABLE_NACL) | 3933 #endif // !defined(DISABLE_NACL) |
3927 | 3934 |
3928 } // namespace prerender | 3935 } // namespace prerender |
3929 | 3936 |
3930 #endif // !defined(OS_MACOSX) || !defined(ADDRESS_SANITIZER) | 3937 #endif // !defined(OS_MACOSX) || !defined(ADDRESS_SANITIZER) |
OLD | NEW |