| 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 22 matching lines...) Expand all Loading... |
| 33 #include "chrome/browser/browsing_data/browsing_data_helper.h" | 33 #include "chrome/browser/browsing_data/browsing_data_helper.h" |
| 34 | 34 |
| 35 #include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h" | 35 #include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h" |
| 36 #include "chrome/browser/chrome_content_browser_client.h" | 36 #include "chrome/browser/chrome_content_browser_client.h" |
| 37 #include "chrome/browser/chrome_notification_types.h" | 37 #include "chrome/browser/chrome_notification_types.h" |
| 38 #include "chrome/browser/content_settings/host_content_settings_map_factory.h" | 38 #include "chrome/browser/content_settings/host_content_settings_map_factory.h" |
| 39 #include "chrome/browser/extensions/api/web_navigation/web_navigation_api.h" | 39 #include "chrome/browser/extensions/api/web_navigation/web_navigation_api.h" |
| 40 #include "chrome/browser/extensions/extension_apitest.h" | 40 #include "chrome/browser/extensions/extension_apitest.h" |
| 41 #include "chrome/browser/external_protocol/external_protocol_handler.h" | 41 #include "chrome/browser/external_protocol/external_protocol_handler.h" |
| 42 #include "chrome/browser/net/prediction_options.h" | 42 #include "chrome/browser/net/prediction_options.h" |
| 43 #include "chrome/browser/page_load_metrics/observers/page_load_metrics_observer_
test_harness.h" | |
| 44 #include "chrome/browser/page_load_metrics/observers/prerender_page_load_metrics
_observer.h" | 43 #include "chrome/browser/page_load_metrics/observers/prerender_page_load_metrics
_observer.h" |
| 45 #include "chrome/browser/password_manager/password_store_factory.h" | 44 #include "chrome/browser/password_manager/password_store_factory.h" |
| 46 #include "chrome/browser/predictors/autocomplete_action_predictor.h" | 45 #include "chrome/browser/predictors/autocomplete_action_predictor.h" |
| 47 #include "chrome/browser/predictors/autocomplete_action_predictor_factory.h" | 46 #include "chrome/browser/predictors/autocomplete_action_predictor_factory.h" |
| 48 #include "chrome/browser/prerender/prerender_contents.h" | 47 #include "chrome/browser/prerender/prerender_contents.h" |
| 49 #include "chrome/browser/prerender/prerender_field_trial.h" | 48 #include "chrome/browser/prerender/prerender_field_trial.h" |
| 50 #include "chrome/browser/prerender/prerender_handle.h" | 49 #include "chrome/browser/prerender/prerender_handle.h" |
| 51 #include "chrome/browser/prerender/prerender_link_manager.h" | 50 #include "chrome/browser/prerender/prerender_link_manager.h" |
| 52 #include "chrome/browser/prerender/prerender_link_manager_factory.h" | 51 #include "chrome/browser/prerender/prerender_link_manager_factory.h" |
| 53 #include "chrome/browser/prerender/prerender_manager.h" | 52 #include "chrome/browser/prerender/prerender_manager.h" |
| (...skipping 10 matching lines...) Expand all Loading... |
| 64 #include "chrome/browser/ui/browser.h" | 63 #include "chrome/browser/ui/browser.h" |
| 65 #include "chrome/browser/ui/browser_commands.h" | 64 #include "chrome/browser/ui/browser_commands.h" |
| 66 #include "chrome/browser/ui/browser_finder.h" | 65 #include "chrome/browser/ui/browser_finder.h" |
| 67 #include "chrome/browser/ui/browser_window.h" | 66 #include "chrome/browser/ui/browser_window.h" |
| 68 #include "chrome/browser/ui/location_bar/location_bar.h" | 67 #include "chrome/browser/ui/location_bar/location_bar.h" |
| 69 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 68 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| 70 #include "chrome/browser/ui/tabs/tab_strip_model_observer.h" | 69 #include "chrome/browser/ui/tabs/tab_strip_model_observer.h" |
| 71 #include "chrome/common/chrome_features.h" | 70 #include "chrome/common/chrome_features.h" |
| 72 #include "chrome/common/chrome_paths.h" | 71 #include "chrome/common/chrome_paths.h" |
| 73 #include "chrome/common/chrome_switches.h" | 72 #include "chrome/common/chrome_switches.h" |
| 73 #include "chrome/common/page_load_metrics/test/page_load_metrics_test_util.h" |
| 74 #include "chrome/test/base/ui_test_utils.h" | 74 #include "chrome/test/base/ui_test_utils.h" |
| 75 #include "components/content_settings/core/browser/host_content_settings_map.h" | 75 #include "components/content_settings/core/browser/host_content_settings_map.h" |
| 76 #include "components/favicon/content/content_favicon_driver.h" | 76 #include "components/favicon/content/content_favicon_driver.h" |
| 77 #include "components/favicon/core/favicon_driver_observer.h" | 77 #include "components/favicon/core/favicon_driver_observer.h" |
| 78 #include "components/omnibox/browser/omnibox_edit_model.h" | 78 #include "components/omnibox/browser/omnibox_edit_model.h" |
| 79 #include "components/omnibox/browser/omnibox_popup_model.h" | 79 #include "components/omnibox/browser/omnibox_popup_model.h" |
| 80 #include "components/omnibox/browser/omnibox_view.h" | 80 #include "components/omnibox/browser/omnibox_view.h" |
| 81 #include "components/password_manager/core/browser/password_bubble_experiment.h" | 81 #include "components/password_manager/core/browser/password_bubble_experiment.h" |
| 82 #include "components/password_manager/core/browser/password_manager_test_utils.h
" | 82 #include "components/password_manager/core/browser/password_manager_test_utils.h
" |
| 83 #include "components/password_manager/core/browser/test_password_store.h" | 83 #include "components/password_manager/core/browser/test_password_store.h" |
| (...skipping 3348 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 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::mojom::PageLoadTiming timing; | 3437 page_load_metrics::mojom::PageLoadTiming timing; |
| 3438 page_load_metrics::InitPageLoadTimingForTest(&timing); | 3438 page_load_metrics::InitPageLoadTimingForTest(&timing); |
| 3439 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. | 3439 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. |
| 3440 timing.paint_timing->first_contentful_paint = | 3440 timing.paint_timing->first_contentful_paint = |
| 3441 base::TimeDelta::FromMilliseconds(2654); | 3441 base::TimeDelta::FromMilliseconds(2654); |
| 3442 page_load_metrics::PageLoadMetricsObserverTestHarness:: | 3442 PopulateRequiredTimingFields(&timing); |
| 3443 PopulateRequiredTimingFields(&timing); | |
| 3444 observer.OnFirstContentfulPaintInPage(timing, | 3443 observer.OnFirstContentfulPaintInPage(timing, |
| 3445 GenericPageLoadExtraInfo(dest_url())); | 3444 GenericPageLoadExtraInfo(dest_url())); |
| 3446 | 3445 |
| 3447 histogram_tester().ExpectTotalCount( | 3446 histogram_tester().ExpectTotalCount( |
| 3448 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1); | 3447 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1); |
| 3449 histogram_tester().ExpectUniqueSample( | 3448 histogram_tester().ExpectUniqueSample( |
| 3450 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1654, 1); | 3449 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1654, 1); |
| 3451 } | 3450 } |
| 3452 | 3451 |
| 3453 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, FirstContentfulPaintTimingReuse) { | 3452 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, FirstContentfulPaintTimingReuse) { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 3475 NavigateToDestURL(); | 3474 NavigateToDestURL(); |
| 3476 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(), | 3475 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(), |
| 3477 GetActiveWebContents()); | 3476 GetActiveWebContents()); |
| 3478 observer.SetNavigationStartTicksForTesting(load_start); | 3477 observer.SetNavigationStartTicksForTesting(load_start); |
| 3479 | 3478 |
| 3480 page_load_metrics::mojom::PageLoadTiming timing; | 3479 page_load_metrics::mojom::PageLoadTiming timing; |
| 3481 page_load_metrics::InitPageLoadTimingForTest(&timing); | 3480 page_load_metrics::InitPageLoadTimingForTest(&timing); |
| 3482 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. | 3481 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. |
| 3483 timing.paint_timing->first_contentful_paint = | 3482 timing.paint_timing->first_contentful_paint = |
| 3484 base::TimeDelta::FromMilliseconds(2361); | 3483 base::TimeDelta::FromMilliseconds(2361); |
| 3485 page_load_metrics::PageLoadMetricsObserverTestHarness:: | 3484 PopulateRequiredTimingFields(&timing); |
| 3486 PopulateRequiredTimingFields(&timing); | |
| 3487 observer.OnFirstContentfulPaintInPage(timing, | 3485 observer.OnFirstContentfulPaintInPage(timing, |
| 3488 GenericPageLoadExtraInfo(dest_url())); | 3486 GenericPageLoadExtraInfo(dest_url())); |
| 3489 | 3487 |
| 3490 histogram_tester().ExpectTotalCount( | 3488 histogram_tester().ExpectTotalCount( |
| 3491 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1); | 3489 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1); |
| 3492 // 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 |
| 3493 // under a second: 2362ms - 2 sec worth of Advance(). | 3491 // under a second: 2362ms - 2 sec worth of Advance(). |
| 3494 histogram_tester().ExpectUniqueSample( | 3492 histogram_tester().ExpectUniqueSample( |
| 3495 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1361, 1); | 3493 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1361, 1); |
| 3496 } | 3494 } |
| (...skipping 21 matching lines...) Expand all Loading... |
| 3518 | 3516 |
| 3519 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(), | 3517 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(), |
| 3520 GetActiveWebContents()); | 3518 GetActiveWebContents()); |
| 3521 observer.SetNavigationStartTicksForTesting(load_start); | 3519 observer.SetNavigationStartTicksForTesting(load_start); |
| 3522 | 3520 |
| 3523 page_load_metrics::mojom::PageLoadTiming timing; | 3521 page_load_metrics::mojom::PageLoadTiming timing; |
| 3524 page_load_metrics::InitPageLoadTimingForTest(&timing); | 3522 page_load_metrics::InitPageLoadTimingForTest(&timing); |
| 3525 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. | 3523 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. |
| 3526 timing.paint_timing->first_contentful_paint = | 3524 timing.paint_timing->first_contentful_paint = |
| 3527 base::TimeDelta::FromMilliseconds(2361); | 3525 base::TimeDelta::FromMilliseconds(2361); |
| 3528 page_load_metrics::PageLoadMetricsObserverTestHarness:: | 3526 PopulateRequiredTimingFields(&timing); |
| 3529 PopulateRequiredTimingFields(&timing); | |
| 3530 observer.OnFirstContentfulPaintInPage(timing, | 3527 observer.OnFirstContentfulPaintInPage(timing, |
| 3531 GenericPageLoadExtraInfo(dest_url())); | 3528 GenericPageLoadExtraInfo(dest_url())); |
| 3532 | 3529 |
| 3533 histogram_tester().ExpectTotalCount( | 3530 histogram_tester().ExpectTotalCount( |
| 3534 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1); | 3531 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1); |
| 3535 // 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 |
| 3536 // negative. | 3533 // negative. |
| 3537 histogram_tester().ExpectUniqueSample( | 3534 histogram_tester().ExpectUniqueSample( |
| 3538 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1361, 1); | 3535 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1361, 1); |
| 3539 } | 3536 } |
| (...skipping 23 matching lines...) Expand all Loading... |
| 3563 | 3560 |
| 3564 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(), | 3561 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(), |
| 3565 GetActiveWebContents()); | 3562 GetActiveWebContents()); |
| 3566 observer.SetNavigationStartTicksForTesting(clock->NowTicks()); | 3563 observer.SetNavigationStartTicksForTesting(clock->NowTicks()); |
| 3567 | 3564 |
| 3568 page_load_metrics::mojom::PageLoadTiming timing; | 3565 page_load_metrics::mojom::PageLoadTiming timing; |
| 3569 page_load_metrics::InitPageLoadTimingForTest(&timing); | 3566 page_load_metrics::InitPageLoadTimingForTest(&timing); |
| 3570 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. | 3567 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. |
| 3571 timing.paint_timing->first_contentful_paint = | 3568 timing.paint_timing->first_contentful_paint = |
| 3572 base::TimeDelta::FromMilliseconds(2362); | 3569 base::TimeDelta::FromMilliseconds(2362); |
| 3573 page_load_metrics::PageLoadMetricsObserverTestHarness:: | 3570 PopulateRequiredTimingFields(&timing); |
| 3574 PopulateRequiredTimingFields(&timing); | |
| 3575 observer.OnFirstContentfulPaintInPage(timing, | 3571 observer.OnFirstContentfulPaintInPage(timing, |
| 3576 GenericPageLoadExtraInfo(dest_url())); | 3572 GenericPageLoadExtraInfo(dest_url())); |
| 3577 | 3573 |
| 3578 histogram_tester().ExpectTotalCount( | 3574 histogram_tester().ExpectTotalCount( |
| 3579 "Prerender.none_PrefetchTTFCP.Warm.Cacheable.Visible", 0); | 3575 "Prerender.none_PrefetchTTFCP.Warm.Cacheable.Visible", 0); |
| 3580 histogram_tester().ExpectTotalCount( | 3576 histogram_tester().ExpectTotalCount( |
| 3581 "Prerender.none_PerceivedTTFCPRecorded.Visible", 1); | 3577 "Prerender.none_PerceivedTTFCPRecorded.Visible", 1); |
| 3582 | 3578 |
| 3583 // Check that the prerender didn't happen with a defined origin. | 3579 // Check that the prerender didn't happen with a defined origin. |
| 3584 histogram_tester().ExpectTotalCount( | 3580 histogram_tester().ExpectTotalCount( |
| (...skipping 30 matching lines...) Expand all Loading... |
| 3615 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(), | 3611 PrerenderPageLoadMetricsObserver observer(GetPrerenderManager(), |
| 3616 GetActiveWebContents()); | 3612 GetActiveWebContents()); |
| 3617 observer.SetNavigationStartTicksForTesting(load_start); | 3613 observer.SetNavigationStartTicksForTesting(load_start); |
| 3618 | 3614 |
| 3619 page_load_metrics::mojom::PageLoadTiming timing; | 3615 page_load_metrics::mojom::PageLoadTiming timing; |
| 3620 page_load_metrics::InitPageLoadTimingForTest(&timing); | 3616 page_load_metrics::InitPageLoadTimingForTest(&timing); |
| 3621 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. | 3617 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. |
| 3622 // The FCP time should end up on the edge of the bucket. | 3618 // The FCP time should end up on the edge of the bucket. |
| 3623 timing.paint_timing->first_contentful_paint = | 3619 timing.paint_timing->first_contentful_paint = |
| 3624 base::TimeDelta::FromMilliseconds(2654); | 3620 base::TimeDelta::FromMilliseconds(2654); |
| 3625 page_load_metrics::PageLoadMetricsObserverTestHarness:: | 3621 PopulateRequiredTimingFields(&timing); |
| 3626 PopulateRequiredTimingFields(&timing); | |
| 3627 observer.OnFirstContentfulPaintInPage(timing, | 3622 observer.OnFirstContentfulPaintInPage(timing, |
| 3628 GenericPageLoadExtraInfo(dest_url())); | 3623 GenericPageLoadExtraInfo(dest_url())); |
| 3629 | 3624 |
| 3630 histogram_tester().ExpectTotalCount( | 3625 histogram_tester().ExpectTotalCount( |
| 3631 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1); | 3626 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1); |
| 3632 histogram_tester().ExpectUniqueSample( | 3627 histogram_tester().ExpectUniqueSample( |
| 3633 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1654, 1); | 3628 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Visible", 1654, 1); |
| 3634 } | 3629 } |
| 3635 | 3630 |
| 3636 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, FirstContentfulPaintHidden) { | 3631 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, FirstContentfulPaintHidden) { |
| (...skipping 11 matching lines...) Expand all Loading... |
| 3648 | 3643 |
| 3649 EXPECT_EQ(page_load_metrics::PageLoadMetricsObserver::CONTINUE_OBSERVING, | 3644 EXPECT_EQ(page_load_metrics::PageLoadMetricsObserver::CONTINUE_OBSERVING, |
| 3650 observer.OnHidden(page_load_metrics::mojom::PageLoadTiming(), | 3645 observer.OnHidden(page_load_metrics::mojom::PageLoadTiming(), |
| 3651 GenericPageLoadExtraInfo(dest_url()))); | 3646 GenericPageLoadExtraInfo(dest_url()))); |
| 3652 | 3647 |
| 3653 page_load_metrics::mojom::PageLoadTiming timing; | 3648 page_load_metrics::mojom::PageLoadTiming timing; |
| 3654 page_load_metrics::InitPageLoadTimingForTest(&timing); | 3649 page_load_metrics::InitPageLoadTimingForTest(&timing); |
| 3655 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. | 3650 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. |
| 3656 timing.paint_timing->first_contentful_paint = | 3651 timing.paint_timing->first_contentful_paint = |
| 3657 base::TimeDelta::FromMilliseconds(2654); | 3652 base::TimeDelta::FromMilliseconds(2654); |
| 3658 page_load_metrics::PageLoadMetricsObserverTestHarness:: | 3653 PopulateRequiredTimingFields(&timing); |
| 3659 PopulateRequiredTimingFields(&timing); | |
| 3660 observer.OnFirstContentfulPaintInPage(timing, | 3654 observer.OnFirstContentfulPaintInPage(timing, |
| 3661 GenericPageLoadExtraInfo(dest_url())); | 3655 GenericPageLoadExtraInfo(dest_url())); |
| 3662 | 3656 |
| 3663 histogram_tester().ExpectTotalCount( | 3657 histogram_tester().ExpectTotalCount( |
| 3664 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Hidden", 1); | 3658 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Hidden", 1); |
| 3665 histogram_tester().ExpectUniqueSample( | 3659 histogram_tester().ExpectUniqueSample( |
| 3666 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Hidden", 1654, 1); | 3660 "Prerender.websame_PrefetchTTFCP.Warm.Cacheable.Hidden", 1654, 1); |
| 3667 } | 3661 } |
| 3668 | 3662 |
| 3669 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | 3663 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, |
| (...skipping 25 matching lines...) Expand all Loading... |
| 3695 | 3689 |
| 3696 EXPECT_EQ(page_load_metrics::PageLoadMetricsObserver::CONTINUE_OBSERVING, | 3690 EXPECT_EQ(page_load_metrics::PageLoadMetricsObserver::CONTINUE_OBSERVING, |
| 3697 observer.OnHidden(page_load_metrics::mojom::PageLoadTiming(), | 3691 observer.OnHidden(page_load_metrics::mojom::PageLoadTiming(), |
| 3698 GenericPageLoadExtraInfo(dest_url()))); | 3692 GenericPageLoadExtraInfo(dest_url()))); |
| 3699 | 3693 |
| 3700 page_load_metrics::mojom::PageLoadTiming timing; | 3694 page_load_metrics::mojom::PageLoadTiming timing; |
| 3701 page_load_metrics::InitPageLoadTimingForTest(&timing); | 3695 page_load_metrics::InitPageLoadTimingForTest(&timing); |
| 3702 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. | 3696 timing.navigation_start = base::Time::FromDoubleT(1); // Non-null time. |
| 3703 timing.paint_timing->first_contentful_paint = | 3697 timing.paint_timing->first_contentful_paint = |
| 3704 base::TimeDelta::FromMilliseconds(2362); | 3698 base::TimeDelta::FromMilliseconds(2362); |
| 3705 page_load_metrics::PageLoadMetricsObserverTestHarness:: | 3699 PopulateRequiredTimingFields(&timing); |
| 3706 PopulateRequiredTimingFields(&timing); | |
| 3707 observer.OnFirstContentfulPaintInPage(timing, | 3700 observer.OnFirstContentfulPaintInPage(timing, |
| 3708 GenericPageLoadExtraInfo(dest_url())); | 3701 GenericPageLoadExtraInfo(dest_url())); |
| 3709 | 3702 |
| 3710 histogram_tester().ExpectTotalCount( | 3703 histogram_tester().ExpectTotalCount( |
| 3711 "Prerender.none_PrefetchTTFCP.Warm.Cacheable.Hidden", 0); | 3704 "Prerender.none_PrefetchTTFCP.Warm.Cacheable.Hidden", 0); |
| 3712 histogram_tester().ExpectTotalCount( | 3705 histogram_tester().ExpectTotalCount( |
| 3713 "Prerender.none_PerceivedTTFCPRecorded.Hidden", 1); | 3706 "Prerender.none_PerceivedTTFCPRecorded.Hidden", 1); |
| 3714 | 3707 |
| 3715 // Check that the prerender didn't happen with a defined origin. | 3708 // Check that the prerender didn't happen with a defined origin. |
| 3716 histogram_tester().ExpectTotalCount( | 3709 histogram_tester().ExpectTotalCount( |
| (...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3935 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(web_contents, | 3928 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(web_contents, |
| 3936 "DidDisplayReallyPass()", | 3929 "DidDisplayReallyPass()", |
| 3937 &display_test_result)); | 3930 &display_test_result)); |
| 3938 ASSERT_TRUE(display_test_result); | 3931 ASSERT_TRUE(display_test_result); |
| 3939 } | 3932 } |
| 3940 #endif // !defined(DISABLE_NACL) | 3933 #endif // !defined(DISABLE_NACL) |
| 3941 | 3934 |
| 3942 } // namespace prerender | 3935 } // namespace prerender |
| 3943 | 3936 |
| 3944 #endif // !defined(OS_MACOSX) || !defined(ADDRESS_SANITIZER) | 3937 #endif // !defined(OS_MACOSX) || !defined(ADDRESS_SANITIZER) |
| OLD | NEW |