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

Side by Side Diff: components/page_load_metrics/browser/metrics_web_contents_observer_unittest.cc

Issue 1433533007: [page_load_metrics] Get navigation_start from NavigationHandle (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@change-names-refactor
Patch Set: navigation_start => NavigationStart Created 5 years, 1 month 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) 2015 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2015 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 "components/page_load_metrics/browser/metrics_web_contents_observer.h" 5 #include "components/page_load_metrics/browser/metrics_web_contents_observer.h"
6 6
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "base/process/kill.h" 8 #include "base/process/kill.h"
9 #include "base/test/histogram_tester.h" 9 #include "base/test/histogram_tester.h"
10 #include "base/time/time.h" 10 #include "base/time/time.h"
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after
295 dom_content.InMilliseconds(), 1); 295 dom_content.InMilliseconds(), 1);
296 296
297 histogram_tester_.ExpectTotalCount(kHistogramLoad, 1); 297 histogram_tester_.ExpectTotalCount(kHistogramLoad, 1);
298 histogram_tester_.ExpectBucketCount(kHistogramLoad, load.InMilliseconds(), 1); 298 histogram_tester_.ExpectBucketCount(kHistogramLoad, load.InMilliseconds(), 1);
299 } 299 }
300 300
301 TEST_F(MetricsWebContentsObserverTest, BackgroundDifferentHistogram) { 301 TEST_F(MetricsWebContentsObserverTest, BackgroundDifferentHistogram) {
302 base::TimeDelta first_layout = base::TimeDelta::FromSeconds(2); 302 base::TimeDelta first_layout = base::TimeDelta::FromSeconds(2);
303 303
304 PageLoadTiming timing; 304 PageLoadTiming timing;
305 timing.navigation_start = base::Time::FromDoubleT( 305 timing.navigation_start = base::Time::FromDoubleT(1);
306 (base::TimeTicks::Now() - base::TimeTicks::UnixEpoch()).InSecondsF());
307 timing.first_layout = first_layout; 306 timing.first_layout = first_layout;
308 307
309 content::WebContentsTester* web_contents_tester = 308 content::WebContentsTester* web_contents_tester =
310 content::WebContentsTester::For(web_contents()); 309 content::WebContentsTester::For(web_contents());
311 310
312 // Simulate "Open link in new tab." 311 // Simulate "Open link in new tab."
313 observer_->WasHidden(); 312 observer_->WasHidden();
314 web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl)); 313 web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl));
315 314
316 observer_->OnMessageReceived( 315 observer_->OnMessageReceived(
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
349 observer_->OnMessageReceived( 348 observer_->OnMessageReceived(
350 PageLoadMetricsMsg_TimingUpdated(observer_->routing_id(), timing), 349 PageLoadMetricsMsg_TimingUpdated(observer_->routing_id(), timing),
351 web_contents()->GetMainFrame()); 350 web_contents()->GetMainFrame());
352 351
353 web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl2)); 352 web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl2));
354 AssertNoHistogramsLogged(); 353 AssertNoHistogramsLogged();
355 } 354 }
356 355
357 TEST_F(MetricsWebContentsObserverTest, OnlyBackgroundLaterEvents) { 356 TEST_F(MetricsWebContentsObserverTest, OnlyBackgroundLaterEvents) {
358 PageLoadTiming timing; 357 PageLoadTiming timing;
359 timing.navigation_start = base::Time::FromDoubleT( 358 timing.navigation_start = base::Time::FromDoubleT(1);
360 (base::TimeTicks::Now() - base::TimeTicks::UnixEpoch()).InSecondsF() - 1); 359 // Set these events at 1 microsecond so they are definitely occur before we
361 360 // background the tab later in the test.
362 timing.response_start = base::TimeDelta::FromMilliseconds(1); 361 timing.response_start = base::TimeDelta::FromMicroseconds(1);
363 timing.dom_content_loaded_event_start = base::TimeDelta::FromMilliseconds(1); 362 timing.dom_content_loaded_event_start = base::TimeDelta::FromMicroseconds(1);
364 363
365 content::WebContentsTester* web_contents_tester = 364 content::WebContentsTester* web_contents_tester =
366 content::WebContentsTester::For(web_contents()); 365 content::WebContentsTester::For(web_contents());
367 366
368 web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl)); 367 web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl));
369 observer_->OnMessageReceived( 368 observer_->OnMessageReceived(
370 PageLoadMetricsMsg_TimingUpdated(observer_->routing_id(), timing), 369 PageLoadMetricsMsg_TimingUpdated(observer_->routing_id(), timing),
371 web_contents()->GetMainFrame()); 370 web_contents()->GetMainFrame());
372 371
373 // Background the tab, then forground it. 372 // Background the tab, then forground it.
(...skipping 21 matching lines...) Expand all
395 histogram_tester_.ExpectTotalCount(kHistogramDomContentLoaded, 1); 394 histogram_tester_.ExpectTotalCount(kHistogramDomContentLoaded, 1);
396 histogram_tester_.ExpectBucketCount( 395 histogram_tester_.ExpectBucketCount(
397 kHistogramDomContentLoaded, 396 kHistogramDomContentLoaded,
398 timing.dom_content_loaded_event_start.InMilliseconds(), 1); 397 timing.dom_content_loaded_event_start.InMilliseconds(), 1);
399 histogram_tester_.ExpectTotalCount(kHistogramLoad, 0); 398 histogram_tester_.ExpectTotalCount(kHistogramLoad, 0);
400 histogram_tester_.ExpectTotalCount(kHistogramFirstLayout, 0); 399 histogram_tester_.ExpectTotalCount(kHistogramFirstLayout, 0);
401 histogram_tester_.ExpectTotalCount(kHistogramFirstTextPaint, 0); 400 histogram_tester_.ExpectTotalCount(kHistogramFirstTextPaint, 0);
402 } 401 }
403 402
404 TEST_F(MetricsWebContentsObserverTest, DontBackgroundQuickerLoad) { 403 TEST_F(MetricsWebContentsObserverTest, DontBackgroundQuickerLoad) {
405 base::TimeDelta first_layout = base::TimeDelta::FromMilliseconds(1); 404 // Set this event at 1 microsecond so it occurs before we foreground later in
405 // the test.
406 base::TimeDelta first_layout = base::TimeDelta::FromMicroseconds(1);
406 407
407 PageLoadTiming timing; 408 PageLoadTiming timing;
408 timing.navigation_start = base::Time::FromDoubleT(1); 409 timing.navigation_start = base::Time::FromDoubleT(1);
409 timing.first_layout = first_layout; 410 timing.first_layout = first_layout;
410 411
411 observer_->WasHidden(); 412 observer_->WasHidden();
412 413
413 // Open in new tab 414 // Open in new tab
414 content::WebContentsTester* web_contents_tester = 415 content::WebContentsTester* web_contents_tester =
415 content::WebContentsTester::For(web_contents()); 416 content::WebContentsTester::For(web_contents());
416 417
417 web_contents_tester->StartNavigation(GURL(kDefaultTestUrl)); 418 web_contents_tester->StartNavigation(GURL(kDefaultTestUrl));
418 419
419 content::RenderFrameHostTester* rfh_tester = 420 content::RenderFrameHostTester* rfh_tester =
420 content::RenderFrameHostTester::For(main_rfh()); 421 content::RenderFrameHostTester::For(main_rfh());
421 422
422 // Switch to the tab 423 // Switch to the tab
423 observer_->WasShown(); 424 observer_->WasShown();
424 425
425 // Start another provisional load 426 // Start another provisional load
426 web_contents_tester->StartNavigation(GURL(kDefaultTestUrl2)); 427 web_contents_tester->StartNavigation(GURL(kDefaultTestUrl2));
427 rfh_tester->SimulateNavigationCommit(GURL(kDefaultTestUrl2)); 428 rfh_tester->SimulateNavigationCommit(GURL(kDefaultTestUrl2));
428 observer_->OnMessageReceived( 429 observer_->OnMessageReceived(
429 PageLoadMetricsMsg_TimingUpdated(observer_->routing_id(), timing), 430 PageLoadMetricsMsg_TimingUpdated(observer_->routing_id(), timing),
430 main_rfh()); 431 main_rfh());
431 rfh_tester->SimulateNavigationStop(); 432 rfh_tester->SimulateNavigationStop();
432 433
433 // Navigate again to see if the timing updated for a subframe message. 434 // Navigate again to see if the timing updated for the foregrounded load.
434 web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl)); 435 web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl));
435 436
436 histogram_tester_.ExpectTotalCount(kHistogramDomContentLoaded, 0); 437 histogram_tester_.ExpectTotalCount(kHistogramDomContentLoaded, 0);
437 histogram_tester_.ExpectTotalCount(kHistogramLoad, 0); 438 histogram_tester_.ExpectTotalCount(kHistogramLoad, 0);
438 histogram_tester_.ExpectTotalCount(kHistogramFirstLayout, 1); 439 histogram_tester_.ExpectTotalCount(kHistogramFirstLayout, 1);
439 histogram_tester_.ExpectBucketCount(kHistogramFirstLayout, 440 histogram_tester_.ExpectBucketCount(kHistogramFirstLayout,
440 first_layout.InMilliseconds(), 1); 441 first_layout.InMilliseconds(), 1);
441 histogram_tester_.ExpectTotalCount(kHistogramFirstTextPaint, 0); 442 histogram_tester_.ExpectTotalCount(kHistogramFirstTextPaint, 0);
442 } 443 }
443 444
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
571 572
572 CheckProvisionalEvent(PROVISIONAL_LOAD_COMMITTED, 2, false); 573 CheckProvisionalEvent(PROVISIONAL_LOAD_COMMITTED, 2, false);
573 CheckCommittedEvent(COMMITTED_LOAD_STARTED, 2, false); 574 CheckCommittedEvent(COMMITTED_LOAD_STARTED, 2, false);
574 CheckCommittedEvent(COMMITTED_LOAD_SUCCESSFUL_FIRST_LAYOUT, 1, false); 575 CheckCommittedEvent(COMMITTED_LOAD_SUCCESSFUL_FIRST_LAYOUT, 1, false);
575 CheckTotalEvents(); 576 CheckTotalEvents();
576 } 577 }
577 578
578 TEST_F(MetricsWebContentsObserverTest, 579 TEST_F(MetricsWebContentsObserverTest,
579 SuccessfulFirstLayoutInBackgroundEvent) { 580 SuccessfulFirstLayoutInBackgroundEvent) {
580 PageLoadTiming timing; 581 PageLoadTiming timing;
581 timing.navigation_start = base::Time::FromDoubleT( 582 timing.navigation_start = base::Time::FromDoubleT(1);
582 (base::TimeTicks::Now() - base::TimeTicks::UnixEpoch()).InSecondsF() - 1);
583
584 timing.first_layout = base::TimeDelta::FromSeconds(30); 583 timing.first_layout = base::TimeDelta::FromSeconds(30);
585 584
586 content::WebContentsTester* web_contents_tester = 585 content::WebContentsTester* web_contents_tester =
587 content::WebContentsTester::For(web_contents()); 586 content::WebContentsTester::For(web_contents());
588 // Background the tab. 587 // Background the tab.
589 observer_->WasHidden(); 588 observer_->WasHidden();
590 web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl)); 589 web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl));
591 590
592 observer_->OnMessageReceived( 591 observer_->OnMessageReceived(
593 PageLoadMetricsMsg_TimingUpdated(observer_->routing_id(), timing), 592 PageLoadMetricsMsg_TimingUpdated(observer_->routing_id(), timing),
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
711 EXPECT_NE(string_it, sample_obj->string_fields.end()); 710 EXPECT_NE(string_it, sample_obj->string_fields.end());
712 EXPECT_EQ(rappor::GetDomainAndRegistrySampleFromGURL(GURL(kDefaultTestUrl)), 711 EXPECT_EQ(rappor::GetDomainAndRegistrySampleFromGURL(GURL(kDefaultTestUrl)),
713 string_it->second); 712 string_it->second);
714 713
715 const auto& flag_it = sample_obj->flag_fields.find("IsSlow"); 714 const auto& flag_it = sample_obj->flag_fields.find("IsSlow");
716 EXPECT_NE(flag_it, sample_obj->flag_fields.end()); 715 EXPECT_NE(flag_it, sample_obj->flag_fields.end());
717 EXPECT_EQ(0u, flag_it->second); 716 EXPECT_EQ(0u, flag_it->second);
718 } 717 }
719 718
720 } // namespace page_load_metrics 719 } // namespace page_load_metrics
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698