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

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

Issue 2823523003: [Page Load Metrics] PageLoadMetrics Mojofication. (Closed)
Patch Set: Update Created 3 years, 8 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 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 "chrome/browser/page_load_metrics/metrics_web_contents_observer.h" 5 #include "chrome/browser/page_load_metrics/metrics_web_contents_observer.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/macros.h" 10 #include "base/macros.h"
11 #include "base/memory/ptr_util.h" 11 #include "base/memory/ptr_util.h"
12 #include "base/process/kill.h" 12 #include "base/process/kill.h"
13 #include "base/run_loop.h"
13 #include "base/test/histogram_tester.h" 14 #include "base/test/histogram_tester.h"
14 #include "base/time/time.h" 15 #include "base/time/time.h"
15 #include "chrome/browser/page_load_metrics/metrics_navigation_throttle.h" 16 #include "chrome/browser/page_load_metrics/metrics_navigation_throttle.h"
16 #include "chrome/browser/page_load_metrics/page_load_metrics_embedder_interface. h" 17 #include "chrome/browser/page_load_metrics/page_load_metrics_embedder_interface. h"
17 #include "chrome/browser/page_load_metrics/page_load_metrics_observer.h" 18 #include "chrome/browser/page_load_metrics/page_load_metrics_observer.h"
18 #include "chrome/browser/page_load_metrics/page_load_tracker.h" 19 #include "chrome/browser/page_load_metrics/page_load_tracker.h"
19 #include "chrome/common/page_load_metrics/page_load_metrics_messages.h" 20 #include "chrome/common/page_load_metrics/page_load_metrics_messages.h"
20 #include "chrome/common/url_constants.h" 21 #include "chrome/common/url_constants.h"
21 #include "chrome/test/base/chrome_render_view_host_test_harness.h" 22 #include "chrome/test/base/chrome_render_view_host_test_harness.h"
22 #include "content/public/browser/navigation_handle.h" 23 #include "content/public/browser/navigation_handle.h"
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
164 void SimulateTimingUpdate(const PageLoadTiming& timing) { 165 void SimulateTimingUpdate(const PageLoadTiming& timing) {
165 SimulateTimingUpdate(timing, web_contents()->GetMainFrame()); 166 SimulateTimingUpdate(timing, web_contents()->GetMainFrame());
166 } 167 }
167 168
168 void SimulateTimingUpdate(const PageLoadTiming& timing, 169 void SimulateTimingUpdate(const PageLoadTiming& timing,
169 content::RenderFrameHost* render_frame_host) { 170 content::RenderFrameHost* render_frame_host) {
170 ASSERT_TRUE(observer_->OnMessageReceived( 171 ASSERT_TRUE(observer_->OnMessageReceived(
171 PageLoadMetricsMsg_TimingUpdated(observer_->routing_id(), timing, 172 PageLoadMetricsMsg_TimingUpdated(observer_->routing_id(), timing,
172 PageLoadMetadata()), 173 PageLoadMetadata()),
173 render_frame_host)); 174 render_frame_host));
175
176 observer_->page_load_metrics_binding_for_testing()
177 .SetCurrentTargetFrameForTesting(render_frame_host);
178 mojo::Binding<page_load_metrics::mojom::PageLoadMetrics> binding(observer_);
179 mojom::PageLoadMetricsPtr ptr;
180 mojom::PageLoadMetricsRequest request = MakeRequest(&ptr);
181 binding.Bind(std::move(request));
182 ptr->UpdateTiming(timing, PageLoadMetadata());
Zhen Wang 2017/04/19 21:52:47 Should this and the above IPC one be controlled by
183 base::RunLoop().RunUntilIdle();
174 } 184 }
175 185
176 void AttachObserver() { 186 void AttachObserver() {
177 embedder_interface_ = new TestPageLoadMetricsEmbedderInterface(); 187 embedder_interface_ = new TestPageLoadMetricsEmbedderInterface();
178 // Owned by the web_contents. Tests must be careful not to call 188 // Owned by the web_contents. Tests must be careful not to call
179 // SimulateTimingUpdate after they call DeleteContents() without also 189 // SimulateTimingUpdate after they call DeleteContents() without also
180 // calling AttachObserver() again. Otherwise they will use-after-free the 190 // calling AttachObserver() again. Otherwise they will use-after-free the
181 // observer_. 191 // observer_.
182 observer_ = MetricsWebContentsObserver::CreateForWebContents( 192 observer_ = MetricsWebContentsObserver::CreateForWebContents(
183 web_contents(), base::WrapUnique(embedder_interface_)); 193 web_contents(), base::WrapUnique(embedder_interface_));
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
278 subframe_tester->SimulateNavigationCommit(GURL(kDefaultTestUrl2)); 288 subframe_tester->SimulateNavigationCommit(GURL(kDefaultTestUrl2));
279 SimulateTimingUpdate(timing, subframe); 289 SimulateTimingUpdate(timing, subframe);
280 subframe_tester->SimulateNavigationStop(); 290 subframe_tester->SimulateNavigationStop();
281 291
282 // Navigate again to see if the timing updated for a subframe message. 292 // Navigate again to see if the timing updated for a subframe message.
283 web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl2)); 293 web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl2));
284 294
285 ASSERT_EQ(0, CountUpdatedTimingReported()); 295 ASSERT_EQ(0, CountUpdatedTimingReported());
286 ASSERT_EQ(1, CountCompleteTimingReported()); 296 ASSERT_EQ(1, CountCompleteTimingReported());
287 ASSERT_EQ(1, CountEmptyCompleteTimingReported()); 297 ASSERT_EQ(1, CountEmptyCompleteTimingReported());
288 CheckErrorEvent(ERR_TIMING_IPC_FROM_SUBFRAME, 1); 298 CheckErrorEvent(ERR_TIMING_IPC_FROM_SUBFRAME, 2);
289 CheckErrorEvent(ERR_NO_IPCS_RECEIVED, 1); 299 CheckErrorEvent(ERR_NO_IPCS_RECEIVED, 1);
290 CheckTotalErrorEvents(); 300 CheckTotalErrorEvents();
291 } 301 }
292 302
293 TEST_F(MetricsWebContentsObserverTest, SameDocumentNoTrigger) { 303 TEST_F(MetricsWebContentsObserverTest, SameDocumentNoTrigger) {
294 PageLoadTiming timing; 304 PageLoadTiming timing;
295 timing.navigation_start = base::Time::FromDoubleT(1); 305 timing.navigation_start = base::Time::FromDoubleT(1);
296 306
297 content::WebContentsTester* web_contents_tester = 307 content::WebContentsTester* web_contents_tester =
298 content::WebContentsTester::For(web_contents()); 308 content::WebContentsTester::For(web_contents());
(...skipping 27 matching lines...) Expand all
326 336
327 content::WebContentsTester* web_contents_tester = 337 content::WebContentsTester* web_contents_tester =
328 content::WebContentsTester::For(web_contents()); 338 content::WebContentsTester::For(web_contents());
329 embedder_interface_->set_is_ntp(true); 339 embedder_interface_->set_is_ntp(true);
330 340
331 web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl)); 341 web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl));
332 SimulateTimingUpdate(timing); 342 SimulateTimingUpdate(timing);
333 web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl2)); 343 web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl2));
334 ASSERT_EQ(0, CountUpdatedTimingReported()); 344 ASSERT_EQ(0, CountUpdatedTimingReported());
335 ASSERT_EQ(0, CountCompleteTimingReported()); 345 ASSERT_EQ(0, CountCompleteTimingReported());
336 CheckErrorEvent(ERR_IPC_WITH_NO_RELEVANT_LOAD, 1); 346 CheckErrorEvent(ERR_IPC_WITH_NO_RELEVANT_LOAD, 2);
337 CheckTotalErrorEvents(); 347 CheckTotalErrorEvents();
338 } 348 }
339 349
340 TEST_F(MetricsWebContentsObserverTest, DontLogIrrelevantNavigation) { 350 TEST_F(MetricsWebContentsObserverTest, DontLogIrrelevantNavigation) {
341 PageLoadTiming timing; 351 PageLoadTiming timing;
342 timing.navigation_start = base::Time::FromDoubleT(10); 352 timing.navigation_start = base::Time::FromDoubleT(10);
343 353
344 content::WebContentsTester* web_contents_tester = 354 content::WebContentsTester* web_contents_tester =
345 content::WebContentsTester::For(web_contents()); 355 content::WebContentsTester::For(web_contents());
346 356
347 GURL about_blank_url = GURL("about:blank"); 357 GURL about_blank_url = GURL("about:blank");
348 web_contents_tester->NavigateAndCommit(about_blank_url); 358 web_contents_tester->NavigateAndCommit(about_blank_url);
349 SimulateTimingUpdate(timing); 359 SimulateTimingUpdate(timing);
350 ASSERT_EQ(0, CountUpdatedTimingReported()); 360 ASSERT_EQ(0, CountUpdatedTimingReported());
351 web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl)); 361 web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl));
352 ASSERT_EQ(0, CountUpdatedTimingReported()); 362 ASSERT_EQ(0, CountUpdatedTimingReported());
353 ASSERT_EQ(0, CountCompleteTimingReported()); 363 ASSERT_EQ(0, CountCompleteTimingReported());
354 364
355 CheckErrorEvent(ERR_IPC_FROM_BAD_URL_SCHEME, 1); 365 CheckErrorEvent(ERR_IPC_FROM_BAD_URL_SCHEME, 2);
356 CheckErrorEvent(ERR_IPC_WITH_NO_RELEVANT_LOAD, 1); 366 CheckErrorEvent(ERR_IPC_WITH_NO_RELEVANT_LOAD, 2);
357 CheckTotalErrorEvents(); 367 CheckTotalErrorEvents();
358 } 368 }
359 369
360 TEST_F(MetricsWebContentsObserverTest, EmptyTimingError) { 370 TEST_F(MetricsWebContentsObserverTest, EmptyTimingError) {
361 PageLoadTiming timing; 371 PageLoadTiming timing;
362 372
363 content::WebContentsTester* web_contents_tester = 373 content::WebContentsTester* web_contents_tester =
364 content::WebContentsTester::For(web_contents()); 374 content::WebContentsTester::For(web_contents());
365 375
366 web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl)); 376 web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl));
367 SimulateTimingUpdate(timing); 377 SimulateTimingUpdate(timing);
368 ASSERT_EQ(0, CountUpdatedTimingReported()); 378 ASSERT_EQ(0, CountUpdatedTimingReported());
369 NavigateToUntrackedUrl(); 379 NavigateToUntrackedUrl();
370 ASSERT_EQ(0, CountUpdatedTimingReported()); 380 ASSERT_EQ(0, CountUpdatedTimingReported());
371 ASSERT_EQ(1, CountCompleteTimingReported()); 381 ASSERT_EQ(1, CountCompleteTimingReported());
372 382
373 CheckErrorEvent(ERR_BAD_TIMING_IPC_INVALID_TIMING, 1); 383 CheckErrorEvent(ERR_BAD_TIMING_IPC_INVALID_TIMING, 2);
374 CheckErrorEvent(ERR_NO_IPCS_RECEIVED, 1); 384 CheckErrorEvent(ERR_NO_IPCS_RECEIVED, 1);
375 CheckTotalErrorEvents(); 385 CheckTotalErrorEvents();
376 386
377 histogram_tester_.ExpectTotalCount( 387 histogram_tester_.ExpectTotalCount(
378 page_load_metrics::internal::kPageLoadTimingStatus, 1); 388 page_load_metrics::internal::kPageLoadTimingStatus, 2);
379 histogram_tester_.ExpectBucketCount( 389 histogram_tester_.ExpectBucketCount(
380 page_load_metrics::internal::kPageLoadTimingStatus, 390 page_load_metrics::internal::kPageLoadTimingStatus,
381 page_load_metrics::internal::INVALID_EMPTY_TIMING, 1); 391 page_load_metrics::internal::INVALID_EMPTY_TIMING, 2);
382 } 392 }
383 393
384 TEST_F(MetricsWebContentsObserverTest, NullNavigationStartError) { 394 TEST_F(MetricsWebContentsObserverTest, NullNavigationStartError) {
385 PageLoadTiming timing; 395 PageLoadTiming timing;
386 timing.parse_timing.parse_start = base::TimeDelta::FromMilliseconds(1); 396 timing.parse_timing.parse_start = base::TimeDelta::FromMilliseconds(1);
387 397
388 content::WebContentsTester* web_contents_tester = 398 content::WebContentsTester* web_contents_tester =
389 content::WebContentsTester::For(web_contents()); 399 content::WebContentsTester::For(web_contents());
390 400
391 web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl)); 401 web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl));
392 SimulateTimingUpdate(timing); 402 SimulateTimingUpdate(timing);
393 ASSERT_EQ(0, CountUpdatedTimingReported()); 403 ASSERT_EQ(0, CountUpdatedTimingReported());
394 NavigateToUntrackedUrl(); 404 NavigateToUntrackedUrl();
395 ASSERT_EQ(0, CountUpdatedTimingReported()); 405 ASSERT_EQ(0, CountUpdatedTimingReported());
396 ASSERT_EQ(1, CountCompleteTimingReported()); 406 ASSERT_EQ(1, CountCompleteTimingReported());
397 407
398 CheckErrorEvent(ERR_BAD_TIMING_IPC_INVALID_TIMING, 1); 408 CheckErrorEvent(ERR_BAD_TIMING_IPC_INVALID_TIMING, 2);
399 CheckErrorEvent(ERR_NO_IPCS_RECEIVED, 1); 409 CheckErrorEvent(ERR_NO_IPCS_RECEIVED, 1);
400 CheckTotalErrorEvents(); 410 CheckTotalErrorEvents();
401 411
402 histogram_tester_.ExpectTotalCount( 412 histogram_tester_.ExpectTotalCount(
403 page_load_metrics::internal::kPageLoadTimingStatus, 1); 413 page_load_metrics::internal::kPageLoadTimingStatus, 2);
404 histogram_tester_.ExpectBucketCount( 414 histogram_tester_.ExpectBucketCount(
405 page_load_metrics::internal::kPageLoadTimingStatus, 415 page_load_metrics::internal::kPageLoadTimingStatus,
406 page_load_metrics::internal::INVALID_NULL_NAVIGATION_START, 1); 416 page_load_metrics::internal::INVALID_NULL_NAVIGATION_START, 2);
407 } 417 }
408 418
409 TEST_F(MetricsWebContentsObserverTest, TimingOrderError) { 419 TEST_F(MetricsWebContentsObserverTest, TimingOrderError) {
410 PageLoadTiming timing; 420 PageLoadTiming timing;
411 timing.navigation_start = base::Time::FromDoubleT(1); 421 timing.navigation_start = base::Time::FromDoubleT(1);
412 timing.parse_timing.parse_stop = base::TimeDelta::FromMilliseconds(1); 422 timing.parse_timing.parse_stop = base::TimeDelta::FromMilliseconds(1);
413 423
414 content::WebContentsTester* web_contents_tester = 424 content::WebContentsTester* web_contents_tester =
415 content::WebContentsTester::For(web_contents()); 425 content::WebContentsTester::For(web_contents());
416 426
417 web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl)); 427 web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl));
418 SimulateTimingUpdate(timing); 428 SimulateTimingUpdate(timing);
419 ASSERT_EQ(0, CountUpdatedTimingReported()); 429 ASSERT_EQ(0, CountUpdatedTimingReported());
420 NavigateToUntrackedUrl(); 430 NavigateToUntrackedUrl();
421 ASSERT_EQ(0, CountUpdatedTimingReported()); 431 ASSERT_EQ(0, CountUpdatedTimingReported());
422 ASSERT_EQ(1, CountCompleteTimingReported()); 432 ASSERT_EQ(1, CountCompleteTimingReported());
423 433
424 CheckErrorEvent(ERR_BAD_TIMING_IPC_INVALID_TIMING, 1); 434 CheckErrorEvent(ERR_BAD_TIMING_IPC_INVALID_TIMING, 2);
425 CheckErrorEvent(ERR_NO_IPCS_RECEIVED, 1); 435 CheckErrorEvent(ERR_NO_IPCS_RECEIVED, 1);
426 CheckTotalErrorEvents(); 436 CheckTotalErrorEvents();
427 437
428 histogram_tester_.ExpectTotalCount( 438 histogram_tester_.ExpectTotalCount(
429 page_load_metrics::internal::kPageLoadTimingStatus, 1); 439 page_load_metrics::internal::kPageLoadTimingStatus, 2);
430 histogram_tester_.ExpectBucketCount( 440 histogram_tester_.ExpectBucketCount(
431 page_load_metrics::internal::kPageLoadTimingStatus, 441 page_load_metrics::internal::kPageLoadTimingStatus,
432 page_load_metrics::internal::INVALID_ORDER_PARSE_START_PARSE_STOP, 1); 442 page_load_metrics::internal::INVALID_ORDER_PARSE_START_PARSE_STOP, 2);
433 } 443 }
434 444
435 TEST_F(MetricsWebContentsObserverTest, NotInMainError) { 445 TEST_F(MetricsWebContentsObserverTest, NotInMainError) {
436 PageLoadTiming timing; 446 PageLoadTiming timing;
437 timing.navigation_start = base::Time::FromDoubleT(1); 447 timing.navigation_start = base::Time::FromDoubleT(1);
438 448
439 content::WebContentsTester* web_contents_tester = 449 content::WebContentsTester* web_contents_tester =
440 content::WebContentsTester::For(web_contents()); 450 content::WebContentsTester::For(web_contents());
441 web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl)); 451 web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl));
442 452
443 content::RenderFrameHostTester* rfh_tester = 453 content::RenderFrameHostTester* rfh_tester =
444 content::RenderFrameHostTester::For(main_rfh()); 454 content::RenderFrameHostTester::For(main_rfh());
445 content::RenderFrameHost* subframe = rfh_tester->AppendChild("subframe"); 455 content::RenderFrameHost* subframe = rfh_tester->AppendChild("subframe");
446 456
447 content::RenderFrameHostTester* subframe_tester = 457 content::RenderFrameHostTester* subframe_tester =
448 content::RenderFrameHostTester::For(subframe); 458 content::RenderFrameHostTester::For(subframe);
449 subframe_tester->SimulateNavigationStart(GURL(kDefaultTestUrl2)); 459 subframe_tester->SimulateNavigationStart(GURL(kDefaultTestUrl2));
450 subframe_tester->SimulateNavigationCommit(GURL(kDefaultTestUrl2)); 460 subframe_tester->SimulateNavigationCommit(GURL(kDefaultTestUrl2));
451 SimulateTimingUpdate(timing, subframe); 461 SimulateTimingUpdate(timing, subframe);
452 CheckErrorEvent(ERR_TIMING_IPC_FROM_SUBFRAME, 1); 462 CheckErrorEvent(ERR_TIMING_IPC_FROM_SUBFRAME, 2);
453 CheckTotalErrorEvents(); 463 CheckTotalErrorEvents();
454 ASSERT_EQ(0, CountUpdatedTimingReported()); 464 ASSERT_EQ(0, CountUpdatedTimingReported());
455 ASSERT_EQ(0, CountCompleteTimingReported()); 465 ASSERT_EQ(0, CountCompleteTimingReported());
456 } 466 }
457 467
458 TEST_F(MetricsWebContentsObserverTest, BadIPC) { 468 TEST_F(MetricsWebContentsObserverTest, BadIPC) {
459 PageLoadTiming timing; 469 PageLoadTiming timing;
460 timing.navigation_start = base::Time::FromDoubleT(10); 470 timing.navigation_start = base::Time::FromDoubleT(10);
461 PageLoadTiming timing2; 471 PageLoadTiming timing2;
462 timing2.navigation_start = base::Time::FromDoubleT(100); 472 timing2.navigation_start = base::Time::FromDoubleT(100);
463 473
464 content::WebContentsTester* web_contents_tester = 474 content::WebContentsTester* web_contents_tester =
465 content::WebContentsTester::For(web_contents()); 475 content::WebContentsTester::For(web_contents());
466 web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl)); 476 web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl));
467 477
468 SimulateTimingUpdate(timing); 478 SimulateTimingUpdate(timing);
469 ASSERT_EQ(1, CountUpdatedTimingReported()); 479 ASSERT_EQ(1, CountUpdatedTimingReported());
470 SimulateTimingUpdate(timing2); 480 SimulateTimingUpdate(timing2);
471 ASSERT_EQ(1, CountUpdatedTimingReported()); 481 ASSERT_EQ(1, CountUpdatedTimingReported());
472 482
473 CheckErrorEvent(ERR_BAD_TIMING_IPC_INVALID_TIMING_DESCENDENT, 1); 483 CheckErrorEvent(ERR_BAD_TIMING_IPC_INVALID_TIMING_DESCENDENT, 2);
474 CheckTotalErrorEvents(); 484 CheckTotalErrorEvents();
475 } 485 }
476 486
477 TEST_F(MetricsWebContentsObserverTest, ObservePartialNavigation) { 487 TEST_F(MetricsWebContentsObserverTest, ObservePartialNavigation) {
478 // Reset the state of the tests, and attach the MetricsWebContentsObserver in 488 // Reset the state of the tests, and attach the MetricsWebContentsObserver in
479 // the middle of a navigation. This tests that the class is robust to only 489 // the middle of a navigation. This tests that the class is robust to only
480 // observing some of a navigation. 490 // observing some of a navigation.
481 DeleteContents(); 491 DeleteContents();
482 SetContents(CreateTestWebContents()); 492 SetContents(CreateTestWebContents());
483 493
(...skipping 10 matching lines...) Expand all
494 web_contents_tester->StartNavigation(GURL(kDefaultTestUrl)); 504 web_contents_tester->StartNavigation(GURL(kDefaultTestUrl));
495 AttachObserver(); 505 AttachObserver();
496 rfh_tester->SimulateNavigationCommit(GURL(kDefaultTestUrl)); 506 rfh_tester->SimulateNavigationCommit(GURL(kDefaultTestUrl));
497 507
498 SimulateTimingUpdate(timing); 508 SimulateTimingUpdate(timing);
499 509
500 // Navigate again to force histogram logging. 510 // Navigate again to force histogram logging.
501 web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl2)); 511 web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl2));
502 ASSERT_EQ(0, CountCompleteTimingReported()); 512 ASSERT_EQ(0, CountCompleteTimingReported());
503 ASSERT_EQ(0, CountUpdatedTimingReported()); 513 ASSERT_EQ(0, CountUpdatedTimingReported());
504 CheckErrorEvent(ERR_IPC_WITH_NO_RELEVANT_LOAD, 1); 514 CheckErrorEvent(ERR_IPC_WITH_NO_RELEVANT_LOAD, 2);
505 CheckTotalErrorEvents(); 515 CheckTotalErrorEvents();
506 } 516 }
507 517
508 TEST_F(MetricsWebContentsObserverTest, DontLogAbortChains) { 518 TEST_F(MetricsWebContentsObserverTest, DontLogAbortChains) {
509 NavigateAndCommit(GURL(kDefaultTestUrl)); 519 NavigateAndCommit(GURL(kDefaultTestUrl));
510 NavigateAndCommit(GURL(kDefaultTestUrl2)); 520 NavigateAndCommit(GURL(kDefaultTestUrl2));
511 NavigateAndCommit(GURL(kDefaultTestUrl)); 521 NavigateAndCommit(GURL(kDefaultTestUrl));
512 histogram_tester_.ExpectTotalCount(internal::kAbortChainSizeNewNavigation, 0); 522 histogram_tester_.ExpectTotalCount(internal::kAbortChainSizeNewNavigation, 0);
513 CheckErrorEvent(ERR_NO_IPCS_RECEIVED, 2); 523 CheckErrorEvent(ERR_NO_IPCS_RECEIVED, 2);
514 CheckTotalErrorEvents(); 524 CheckTotalErrorEvents();
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
666 web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl2)); 676 web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl2));
667 ASSERT_EQ(std::vector<GURL>({GURL(kDefaultTestUrl)}), 677 ASSERT_EQ(std::vector<GURL>({GURL(kDefaultTestUrl)}),
668 completed_filtered_urls()); 678 completed_filtered_urls());
669 679
670 web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl)); 680 web_contents_tester->NavigateAndCommit(GURL(kDefaultTestUrl));
671 ASSERT_EQ(std::vector<GURL>({GURL(kDefaultTestUrl), GURL(kDefaultTestUrl2)}), 681 ASSERT_EQ(std::vector<GURL>({GURL(kDefaultTestUrl), GURL(kDefaultTestUrl2)}),
672 completed_filtered_urls()); 682 completed_filtered_urls());
673 } 683 }
674 684
675 } // namespace page_load_metrics 685 } // namespace page_load_metrics
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698