| 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 |