Commit e0c18ae2 authored by bmcquade's avatar bmcquade Committed by Commit bot

Remove NOTREACHED that gets hit for non well formed xhtml.

BUG=627607

Review-Url: https://codereview.chromium.org/2194893003
Cr-Commit-Position: refs/heads/master@{#408766}
parent 76198210
...@@ -158,8 +158,10 @@ bool IsValidPageLoadTiming(const PageLoadTiming& timing) { ...@@ -158,8 +158,10 @@ bool IsValidPageLoadTiming(const PageLoadTiming& timing) {
} }
if (!EventsInOrder(timing.first_layout, timing.first_paint)) { if (!EventsInOrder(timing.first_layout, timing.first_paint)) {
NOTREACHED() << "Invalid first_layout " << timing.first_layout // This can happen when we process an XHTML document that doesn't contain
<< " for first_paint " << timing.first_paint; // well formed XML. See crbug.com/627607.
DLOG(ERROR) << "Invalid first_layout " << timing.first_layout
<< " for first_paint " << timing.first_paint;
return false; return false;
} }
......
...@@ -15,6 +15,7 @@ namespace internal { ...@@ -15,6 +15,7 @@ namespace internal {
// navigation start to the event in question. // navigation start to the event in question.
extern const char kHistogramCommit[]; extern const char kHistogramCommit[];
extern const char kHistogramFirstLayout[]; extern const char kHistogramFirstLayout[];
extern const char kHistogramFirstPaint[];
extern const char kHistogramFirstTextPaint[]; extern const char kHistogramFirstTextPaint[];
extern const char kHistogramDomContentLoaded[]; extern const char kHistogramDomContentLoaded[];
extern const char kHistogramLoad[]; extern const char kHistogramLoad[];
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
#include "base/macros.h" #include "base/macros.h"
#include "base/test/histogram_tester.h" #include "base/test/histogram_tester.h"
#include "chrome/browser/page_load_metrics/metrics_web_contents_observer.h"
#include "chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.h" #include "chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.h"
#include "chrome/browser/page_load_metrics/observers/document_write_page_load_metrics_observer.h" #include "chrome/browser/page_load_metrics/observers/document_write_page_load_metrics_observer.h"
#include "chrome/common/url_constants.h" #include "chrome/common/url_constants.h"
...@@ -221,3 +222,22 @@ IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest, ...@@ -221,3 +222,22 @@ IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest,
histogram_tester_.ExpectTotalCount( histogram_tester_.ExpectTotalCount(
internal::kHistogramDocWriteBlockParseStartToFirstContentfulPaint, 0); internal::kHistogramDocWriteBlockParseStartToFirstContentfulPaint, 0);
} }
IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest, BadXhtml) {
ASSERT_TRUE(embedded_test_server()->Start());
// When an XHTML page contains invalid XML, it causes a paint of the error
// message without a layout. Page load metrics currently treats this as an
// error. Eventually, we'll fix this by special casing the handling of
// documents with non-well-formed XML on the blink side. See crbug.com/627607
// for more.
ui_test_utils::NavigateToURL(
browser(),
embedded_test_server()->GetURL("/page_load_metrics/badxml.xhtml"));
NavigateToUntrackedUrl();
histogram_tester_.ExpectTotalCount(internal::kHistogramFirstLayout, 0);
histogram_tester_.ExpectTotalCount(internal::kHistogramFirstPaint, 0);
histogram_tester_.ExpectBucketCount(page_load_metrics::internal::kErrorEvents,
page_load_metrics::ERR_BAD_TIMING_IPC, 1);
}
<html xmlns="http://www.w3.org/1999/xhtml" xlink="http://www.w3.org/1999/xlink"><head>
HTTP/1.0 200 OK
Content-Type: application/xhtml+xml
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment