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

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: 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
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 3418 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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
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
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
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
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
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)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698