Index: chrome/browser/page_load_metrics/metrics_web_contents_observer.cc |
diff --git a/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc b/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc |
index 86a76e25c8ed3f35079a4c580c73489dbca8cff0..cd71a94875b29899f47dfe4112b9330b0fabdfa9 100644 |
--- a/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc |
+++ b/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc |
@@ -14,6 +14,7 @@ |
#include "base/memory/ptr_util.h" |
#include "base/metrics/histogram_macros.h" |
#include "base/metrics/user_metrics.h" |
+#include "chrome/browser/page_load_metrics/browser_page_track_decider.h" |
#include "chrome/browser/page_load_metrics/page_load_metrics_util.h" |
#include "chrome/common/page_load_metrics/page_load_metrics_messages.h" |
#include "chrome/common/page_load_metrics/page_load_timing.h" |
@@ -27,6 +28,7 @@ |
#include "content/public/browser/web_contents_user_data.h" |
#include "ipc/ipc_message.h" |
#include "ipc/ipc_message_macros.h" |
+#include "net/http/http_response_headers.h" |
#include "ui/base/page_transition_types.h" |
DEFINE_WEB_CONTENTS_USER_DATA_KEY( |
@@ -1061,18 +1063,13 @@ void MetricsWebContentsObserver::OnTimingUpdated( |
bool MetricsWebContentsObserver::ShouldTrackNavigation( |
content::NavigationHandle* navigation_handle) const { |
DCHECK(navigation_handle->IsInMainFrame()); |
- if (!navigation_handle->GetURL().SchemeIsHTTPOrHTTPS()) |
- return false; |
- if (embedder_interface_->IsNewTabPageUrl(navigation_handle->GetURL())) |
+ |
+ // Ignore same-page navigations. |
+ if (navigation_handle->HasCommitted() && navigation_handle->IsSamePage()) |
Charlie Harrison
2016/09/14 13:20:05
Why can't this go into the tracker?
Bryan McQuade
2016/09/14 15:10:58
Good question. I decided that the concept of a sam
Charlie Harrison
2016/09/14 16:27:32
Great explanation, I just wonder if we want to be
Bryan McQuade
2016/09/15 22:28:10
Sure, we have code in place in the renderer to blo
|
return false; |
- if (navigation_handle->HasCommitted()) { |
- if (navigation_handle->IsSamePage() || navigation_handle->IsErrorPage()) |
- return false; |
- const std::string& mime_type = web_contents()->GetContentsMimeType(); |
- if (mime_type != "text/html" && mime_type != "application/xhtml+xml") |
- return false; |
- } |
- return true; |
+ |
+ return BrowserPageTrackDecider(embedder_interface_.get(), web_contents(), |
+ navigation_handle).ShouldTrack(); |
} |
} // namespace page_load_metrics |