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

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

Issue 2039363003: FirstMeaningfulPaint UMA (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: review comments Created 4 years, 4 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) 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 "base/macros.h" 5 #include "base/macros.h"
6 #include "base/test/histogram_tester.h" 6 #include "base/test/histogram_tester.h"
7 #include "chrome/browser/page_load_metrics/metrics_web_contents_observer.h" 7 #include "chrome/browser/page_load_metrics/metrics_web_contents_observer.h"
8 #include "chrome/browser/page_load_metrics/observers/aborts_page_load_metrics_ob server.h" 8 #include "chrome/browser/page_load_metrics/observers/aborts_page_load_metrics_ob server.h"
9 #include "chrome/browser/page_load_metrics/observers/core_page_load_metrics_obse rver.h" 9 #include "chrome/browser/page_load_metrics/observers/core_page_load_metrics_obse rver.h"
10 #include "chrome/browser/page_load_metrics/observers/document_write_page_load_me trics_observer.h" 10 #include "chrome/browser/page_load_metrics/observers/document_write_page_load_me trics_observer.h"
(...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after
370 EXPECT_TRUE(content::ExecuteScript( 370 EXPECT_TRUE(content::ExecuteScript(
371 browser()->tab_strip_model()->GetActiveWebContents(), 371 browser()->tab_strip_model()->GetActiveWebContents(),
372 "window.location.reload();")); 372 "window.location.reload();"));
373 } 373 }
374 374
375 manager.WaitForNavigationFinished(); 375 manager.WaitForNavigationFinished();
376 376
377 histogram_tester_.ExpectTotalCount( 377 histogram_tester_.ExpectTotalCount(
378 internal::kHistogramAbortClientRedirectBeforeCommit, 1); 378 internal::kHistogramAbortClientRedirectBeforeCommit, 1);
379 } 379 }
380
381 IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest,
382 FirstMeaningfulPaintRecorded) {
383 ASSERT_TRUE(embedded_test_server()->Start());
384
385 ui_test_utils::NavigateToURL(browser(),
386 embedded_test_server()->GetURL("/title1.html"));
387
388 // Wait until the renderer finishes observing layouts.
389 const int kNetworkIdleTime = 2000;
390 const int kMargin = 500;
391 const std::string javascript = base::StringPrintf(
392 "setTimeout(() => window.domAutomationController.send(true), %d)",
393 kNetworkIdleTime + kMargin);
Kunihiko Sakamoto 2016/08/10 02:33:32 I noticed this test fails about once a ten times f
394 bool result;
395 EXPECT_TRUE(content::ExecuteScriptAndExtractBool(
396 browser()->tab_strip_model()->GetActiveWebContents(),
397 javascript, &result));
398 EXPECT_TRUE(result);
399
400 NavigateToUntrackedUrl();
401 histogram_tester_.ExpectUniqueSample(
402 internal::kHistogramFirstMeaningfulPaintStatus,
403 internal::FMP_RECORDED, 1);
404 histogram_tester_.ExpectTotalCount(
405 internal::kHistogramFirstMeaningfulPaint, 1);
406 histogram_tester_.ExpectTotalCount(
407 internal::kHistogramParseStartToFirstMeaningfulPaint, 1);
408 }
409
410 IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest,
411 FirstMeaningfulPaintNotRecorded) {
412 ASSERT_TRUE(embedded_test_server()->Start());
413
414 ui_test_utils::NavigateToURL(browser(),
415 embedded_test_server()->GetURL("/title1.html"));
416
417 // Navigate away before a FMP is reported.
418 NavigateToUntrackedUrl();
419
420 histogram_tester_.ExpectUniqueSample(
421 internal::kHistogramFirstMeaningfulPaintStatus,
422 internal::FMP_DID_NOT_REACH_NETWORK_STABLE, 1);
423 histogram_tester_.ExpectTotalCount(
424 internal::kHistogramFirstMeaningfulPaint, 0);
425 histogram_tester_.ExpectTotalCount(
426 internal::kHistogramParseStartToFirstMeaningfulPaint, 0);
427 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698