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 3418 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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::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.OnFirstContentfulPaint(timing, GenericPageLoadExtraInfo(dest_url())); |
3444 | 3444 |
3445 histogram_tester().ExpectTotalCount( | 3445 histogram_tester().ExpectTotalCount( |
3446 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1); | 3446 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1); |
3447 histogram_tester().ExpectUniqueSample( | 3447 histogram_tester().ExpectUniqueSample( |
3448 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1654, 1); | 3448 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1654, 1); |
3449 } | 3449 } |
(...skipping 20 matching lines...) Expand all Loading... |
3470 PrerenderTestURL(url, FINAL_STATUS_USED, 1); | 3470 PrerenderTestURL(url, FINAL_STATUS_USED, 1); |
3471 clock->Advance(base::TimeDelta::FromSeconds(1)); | 3471 clock->Advance(base::TimeDelta::FromSeconds(1)); |
3472 | 3472 |
3473 NavigateToDestURL(); | 3473 NavigateToDestURL(); |
3474 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(), | 3474 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(), |
3475 GetActiveWebContents()); | 3475 GetActiveWebContents()); |
3476 observer.SetNavigationStartTicksForTesting(load_start); | 3476 observer.SetNavigationStartTicksForTesting(load_start); |
3477 | 3477 |
3478 page_load_metrics::PageLoadTiming timing; | 3478 page_load_metrics::PageLoadTiming timing; |
3479 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. | 3479 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. |
3480 timing.paint_timing.first_contentful_paint = | 3480 timing.paint_timing->first_contentful_paint = |
3481 base::TimeDelta::FromMilliseconds(2361); | 3481 base::TimeDelta::FromMilliseconds(2361); |
3482 page_load_metrics::PageLoadMetricsObserverTestHarness:: | 3482 page_load_metrics::PageLoadMetricsObserverTestHarness:: |
3483 PopulateRequiredTimingFields(&timing); | 3483 PopulateRequiredTimingFields(&timing); |
3484 observer.OnFirstContentfulPaint(timing, GenericPageLoadExtraInfo(dest_url())); | 3484 observer.OnFirstContentfulPaint(timing, GenericPageLoadExtraInfo(dest_url())); |
3485 | 3485 |
3486 histogram_tester().ExpectTotalCount( | 3486 histogram_tester().ExpectTotalCount( |
3487 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1); | 3487 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1); |
3488 // If the first prerender had been used, the perceived TTFCP would have been | 3488 // If the first prerender had been used, the perceived TTFCP would have been |
3489 // under a second: 2362ms - 2 sec worth of Advance(). | 3489 // under a second: 2362ms - 2 sec worth of Advance(). |
3490 histogram_tester().ExpectUniqueSample( | 3490 histogram_tester().ExpectUniqueSample( |
(...skipping 20 matching lines...) Expand all Loading... |
3511 | 3511 |
3512 clock->Advance(base::TimeDelta::FromSeconds(1)); | 3512 clock->Advance(base::TimeDelta::FromSeconds(1)); |
3513 NavigateToDestURL(); | 3513 NavigateToDestURL(); |
3514 | 3514 |
3515 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(), | 3515 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(), |
3516 GetActiveWebContents()); | 3516 GetActiveWebContents()); |
3517 observer.SetNavigationStartTicksForTesting(load_start); | 3517 observer.SetNavigationStartTicksForTesting(load_start); |
3518 | 3518 |
3519 page_load_metrics::PageLoadTiming timing; | 3519 page_load_metrics::PageLoadTiming timing; |
3520 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. | 3520 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. |
3521 timing.paint_timing.first_contentful_paint = | 3521 timing.paint_timing->first_contentful_paint = |
3522 base::TimeDelta::FromMilliseconds(2361); | 3522 base::TimeDelta::FromMilliseconds(2361); |
3523 page_load_metrics::PageLoadMetricsObserverTestHarness:: | 3523 page_load_metrics::PageLoadMetricsObserverTestHarness:: |
3524 PopulateRequiredTimingFields(&timing); | 3524 PopulateRequiredTimingFields(&timing); |
3525 observer.OnFirstContentfulPaint(timing, GenericPageLoadExtraInfo(dest_url())); | 3525 observer.OnFirstContentfulPaint(timing, GenericPageLoadExtraInfo(dest_url())); |
3526 | 3526 |
3527 histogram_tester().ExpectTotalCount( | 3527 histogram_tester().ExpectTotalCount( |
3528 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1); | 3528 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1); |
3529 // If the timed out had been used, the perceived TTFCP would have been | 3529 // If the timed out had been used, the perceived TTFCP would have been |
3530 // negative. | 3530 // negative. |
3531 histogram_tester().ExpectUniqueSample( | 3531 histogram_tester().ExpectUniqueSample( |
(...skipping 22 matching lines...) Expand all Loading... |
3554 | 3554 |
3555 clock->Advance(base::TimeDelta::FromSeconds(1)); | 3555 clock->Advance(base::TimeDelta::FromSeconds(1)); |
3556 NavigateToDestURLWithDisposition(WindowOpenDisposition::CURRENT_TAB, false); | 3556 NavigateToDestURLWithDisposition(WindowOpenDisposition::CURRENT_TAB, false); |
3557 | 3557 |
3558 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(), | 3558 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(), |
3559 GetActiveWebContents()); | 3559 GetActiveWebContents()); |
3560 observer.SetNavigationStartTicksForTesting(clock->NowTicks()); | 3560 observer.SetNavigationStartTicksForTesting(clock->NowTicks()); |
3561 | 3561 |
3562 page_load_metrics::PageLoadTiming timing; | 3562 page_load_metrics::PageLoadTiming timing; |
3563 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. | 3563 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. |
3564 timing.paint_timing.first_contentful_paint = | 3564 timing.paint_timing->first_contentful_paint = |
3565 base::TimeDelta::FromMilliseconds(2362); | 3565 base::TimeDelta::FromMilliseconds(2362); |
3566 page_load_metrics::PageLoadMetricsObserverTestHarness:: | 3566 page_load_metrics::PageLoadMetricsObserverTestHarness:: |
3567 PopulateRequiredTimingFields(&timing); | 3567 PopulateRequiredTimingFields(&timing); |
3568 observer.OnFirstContentfulPaint(timing, GenericPageLoadExtraInfo(dest_url())); | 3568 observer.OnFirstContentfulPaint(timing, GenericPageLoadExtraInfo(dest_url())); |
3569 | 3569 |
3570 histogram_tester().ExpectTotalCount( | 3570 histogram_tester().ExpectTotalCount( |
3571 "Prerender.none_PrefetchTTFCP.Warm.Cacheable.Visible", 0); | 3571 "Prerender.none_PrefetchTTFCP.Warm.Cacheable.Visible", 0); |
3572 histogram_tester().ExpectTotalCount( | 3572 histogram_tester().ExpectTotalCount( |
3573 "Prerender.none_PerceivedTTFCPRecorded.Visible", 1); | 3573 "Prerender.none_PerceivedTTFCPRecorded.Visible", 1); |
3574 | 3574 |
(...skipping 29 matching lines...) Expand all Loading... |
3604 clock->Advance(base::TimeDelta::FromSeconds(1)); | 3604 clock->Advance(base::TimeDelta::FromSeconds(1)); |
3605 NavigateToDestURL(); | 3605 NavigateToDestURL(); |
3606 | 3606 |
3607 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(), | 3607 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(), |
3608 GetActiveWebContents()); | 3608 GetActiveWebContents()); |
3609 observer.SetNavigationStartTicksForTesting(load_start); | 3609 observer.SetNavigationStartTicksForTesting(load_start); |
3610 | 3610 |
3611 page_load_metrics::PageLoadTiming timing; | 3611 page_load_metrics::PageLoadTiming timing; |
3612 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. | 3612 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. |
3613 // The FCP time should end up on the edge of the bucket. | 3613 // The FCP time should end up on the edge of the bucket. |
3614 timing.paint_timing.first_contentful_paint = | 3614 timing.paint_timing->first_contentful_paint = |
3615 base::TimeDelta::FromMilliseconds(2654); | 3615 base::TimeDelta::FromMilliseconds(2654); |
3616 page_load_metrics::PageLoadMetricsObserverTestHarness:: | 3616 page_load_metrics::PageLoadMetricsObserverTestHarness:: |
3617 PopulateRequiredTimingFields(&timing); | 3617 PopulateRequiredTimingFields(&timing); |
3618 observer.OnFirstContentfulPaint(timing, GenericPageLoadExtraInfo(dest_url())); | 3618 observer.OnFirstContentfulPaint(timing, GenericPageLoadExtraInfo(dest_url())); |
3619 | 3619 |
3620 histogram_tester().ExpectTotalCount( | 3620 histogram_tester().ExpectTotalCount( |
3621 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1); | 3621 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1); |
3622 histogram_tester().ExpectUniqueSample( | 3622 histogram_tester().ExpectUniqueSample( |
3623 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1654, 1); | 3623 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1654, 1); |
3624 } | 3624 } |
(...skipping 10 matching lines...) Expand all Loading... |
3635 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(), | 3635 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(), |
3636 GetActiveWebContents()); | 3636 GetActiveWebContents()); |
3637 observer.SetNavigationStartTicksForTesting(load_start); | 3637 observer.SetNavigationStartTicksForTesting(load_start); |
3638 | 3638 |
3639 EXPECT_EQ(page_load_metrics::PageLoadMetricsObserver::CONTINUE_OBSERVING, | 3639 EXPECT_EQ(page_load_metrics::PageLoadMetricsObserver::CONTINUE_OBSERVING, |
3640 observer.OnHidden(page_load_metrics::PageLoadTiming(), | 3640 observer.OnHidden(page_load_metrics::PageLoadTiming(), |
3641 GenericPageLoadExtraInfo(dest_url()))); | 3641 GenericPageLoadExtraInfo(dest_url()))); |
3642 | 3642 |
3643 page_load_metrics::PageLoadTiming timing; | 3643 page_load_metrics::PageLoadTiming timing; |
3644 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. | 3644 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. |
3645 timing.paint_timing.first_contentful_paint = | 3645 timing.paint_timing->first_contentful_paint = |
3646 base::TimeDelta::FromMilliseconds(2654); | 3646 base::TimeDelta::FromMilliseconds(2654); |
3647 page_load_metrics::PageLoadMetricsObserverTestHarness:: | 3647 page_load_metrics::PageLoadMetricsObserverTestHarness:: |
3648 PopulateRequiredTimingFields(&timing); | 3648 PopulateRequiredTimingFields(&timing); |
3649 observer.OnFirstContentfulPaint(timing, GenericPageLoadExtraInfo(dest_url())); | 3649 observer.OnFirstContentfulPaint(timing, GenericPageLoadExtraInfo(dest_url())); |
3650 | 3650 |
3651 histogram_tester().ExpectTotalCount( | 3651 histogram_tester().ExpectTotalCount( |
3652 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Hidden", 1); | 3652 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Hidden", 1); |
3653 histogram_tester().ExpectUniqueSample( | 3653 histogram_tester().ExpectUniqueSample( |
3654 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Hidden", 1654, 1); | 3654 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Hidden", 1654, 1); |
3655 } | 3655 } |
(...skipping 24 matching lines...) Expand all Loading... |
3680 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(), | 3680 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(), |
3681 GetActiveWebContents()); | 3681 GetActiveWebContents()); |
3682 observer.SetNavigationStartTicksForTesting(clock->NowTicks()); | 3682 observer.SetNavigationStartTicksForTesting(clock->NowTicks()); |
3683 | 3683 |
3684 EXPECT_EQ(page_load_metrics::PageLoadMetricsObserver::CONTINUE_OBSERVING, | 3684 EXPECT_EQ(page_load_metrics::PageLoadMetricsObserver::CONTINUE_OBSERVING, |
3685 observer.OnHidden(page_load_metrics::PageLoadTiming(), | 3685 observer.OnHidden(page_load_metrics::PageLoadTiming(), |
3686 GenericPageLoadExtraInfo(dest_url()))); | 3686 GenericPageLoadExtraInfo(dest_url()))); |
3687 | 3687 |
3688 page_load_metrics::PageLoadTiming timing; | 3688 page_load_metrics::PageLoadTiming timing; |
3689 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. | 3689 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. |
3690 timing.paint_timing.first_contentful_paint = | 3690 timing.paint_timing->first_contentful_paint = |
3691 base::TimeDelta::FromMilliseconds(2362); | 3691 base::TimeDelta::FromMilliseconds(2362); |
3692 page_load_metrics::PageLoadMetricsObserverTestHarness:: | 3692 page_load_metrics::PageLoadMetricsObserverTestHarness:: |
3693 PopulateRequiredTimingFields(&timing); | 3693 PopulateRequiredTimingFields(&timing); |
3694 observer.OnFirstContentfulPaint(timing, GenericPageLoadExtraInfo(dest_url())); | 3694 observer.OnFirstContentfulPaint(timing, GenericPageLoadExtraInfo(dest_url())); |
3695 | 3695 |
3696 histogram_tester().ExpectTotalCount( | 3696 histogram_tester().ExpectTotalCount( |
3697 "Prerender.none_PrefetchTTFCP.Warm.Cacheable.Hidden", 0); | 3697 "Prerender.none_PrefetchTTFCP.Warm.Cacheable.Hidden", 0); |
3698 histogram_tester().ExpectTotalCount( | 3698 histogram_tester().ExpectTotalCount( |
3699 "Prerender.none_PerceivedTTFCPRecorded.Hidden", 1); | 3699 "Prerender.none_PerceivedTTFCPRecorded.Hidden", 1); |
3700 | 3700 |
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3921 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(web_contents, | 3921 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(web_contents, |
3922 "DidDisplayReallyPass()", | 3922 "DidDisplayReallyPass()", |
3923 &display_test_result)); | 3923 &display_test_result)); |
3924 ASSERT_TRUE(display_test_result); | 3924 ASSERT_TRUE(display_test_result); |
3925 } | 3925 } |
3926 #endif // !defined(DISABLE_NACL) | 3926 #endif // !defined(DISABLE_NACL) |
3927 | 3927 |
3928 } // namespace prerender | 3928 } // namespace prerender |
3929 | 3929 |
3930 #endif // !defined(OS_MACOSX) || !defined(ADDRESS_SANITIZER) | 3930 #endif // !defined(OS_MACOSX) || !defined(ADDRESS_SANITIZER) |
OLD | NEW |