| Index: chrome/renderer/page_load_metrics/metrics_render_frame_observer.cc
|
| diff --git a/chrome/renderer/page_load_metrics/metrics_render_frame_observer.cc b/chrome/renderer/page_load_metrics/metrics_render_frame_observer.cc
|
| index 65537af9fa9666b28e2266082cab4e8d201be372..febca3a5958aaec7b26a91ea0478096a01a288ca 100644
|
| --- a/chrome/renderer/page_load_metrics/metrics_render_frame_observer.cc
|
| +++ b/chrome/renderer/page_load_metrics/metrics_render_frame_observer.cc
|
| @@ -10,9 +10,9 @@
|
| #include "base/time/time.h"
|
| #include "base/timer/timer.h"
|
| #include "chrome/renderer/page_load_metrics/page_timing_metrics_sender.h"
|
| +#include "chrome/renderer/page_load_metrics/renderer_page_track_decider.h"
|
| #include "chrome/renderer/searchbox/search_bouncer.h"
|
| #include "content/public/renderer/render_frame.h"
|
| -#include "third_party/WebKit/public/platform/WebURLResponse.h"
|
| #include "third_party/WebKit/public/web/WebDataSource.h"
|
| #include "third_party/WebKit/public/web/WebDocument.h"
|
| #include "third_party/WebKit/public/web/WebLocalFrame.h"
|
| @@ -86,33 +86,12 @@ bool MetricsRenderFrameObserver::ShouldSendMetrics() const {
|
| if (HasNoRenderFrame())
|
| return false;
|
| const blink::WebLocalFrame* frame = render_frame()->GetWebFrame();
|
| - // We only generate historgrams for main frames.
|
| + // We only track metrics for main frames.
|
| if (frame->parent())
|
| return false;
|
|
|
| const blink::WebDocument& document = frame->document();
|
| - // Ignore non-HTTP schemes (e.g. chrome://).
|
| - const GURL& url = document.url();
|
| - if (!url.SchemeIsHTTPOrHTTPS())
|
| - return false;
|
| -
|
| - // Ignore NTP loads.
|
| - if (SearchBouncer::GetInstance()->IsNewTabPage(url))
|
| - return false;
|
| -
|
| - // Ignore non-HTML documents (e.g. SVG). Note that images are treated by
|
| - // Blink as HTML documents, so to exclude images, we must perform
|
| - // additional mime type checking below.
|
| - if (!document.isHTMLDocument() && !document.isXHTMLDocument())
|
| - return false;
|
| -
|
| - // Ignore non-HTML mime types (e.g. images).
|
| - const blink::WebURLResponse& url_response = frame->dataSource()->response();
|
| - std::string mime_type = url_response.mimeType().utf8();
|
| - if (mime_type != "text/html" && mime_type != "application/xhtml+xml")
|
| - return false;
|
| -
|
| - return true;
|
| + return RendererPageTrackDecider(&document, frame->dataSource()).ShouldTrack();
|
| }
|
|
|
| PageLoadTiming MetricsRenderFrameObserver::GetTiming() const {
|
|
|