OLD | NEW |
(Empty) | |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 #include "chrome/browser/page_load_metrics/browser_page_track_decider.h" |
| 6 |
| 7 #include <string> |
| 8 |
| 9 #include "chrome/browser/page_load_metrics/metrics_web_contents_observer.h" |
| 10 #include "content/public/browser/navigation_handle.h" |
| 11 #include "content/public/browser/web_contents.h" |
| 12 #include "net/http/http_response_headers.h" |
| 13 |
| 14 namespace page_load_metrics { |
| 15 |
| 16 BrowserPageTrackDecider::BrowserPageTrackDecider( |
| 17 PageLoadMetricsEmbedderInterface* embedder_interface, |
| 18 content::WebContents* web_contents, |
| 19 content::NavigationHandle* navigation_handle) |
| 20 : embedder_interface_(embedder_interface), |
| 21 web_contents_(web_contents), |
| 22 navigation_handle_(navigation_handle) {} |
| 23 |
| 24 BrowserPageTrackDecider::~BrowserPageTrackDecider() {} |
| 25 |
| 26 bool BrowserPageTrackDecider::HasCommitted() { |
| 27 return navigation_handle_->HasCommitted(); |
| 28 } |
| 29 |
| 30 bool BrowserPageTrackDecider::IsHttpOrHttpsUrl() { |
| 31 return navigation_handle_->GetURL().SchemeIsHTTPOrHTTPS(); |
| 32 } |
| 33 |
| 34 bool BrowserPageTrackDecider::IsNewTabPageUrl() { |
| 35 return embedder_interface_->IsNewTabPageUrl(navigation_handle_->GetURL()); |
| 36 } |
| 37 |
| 38 bool BrowserPageTrackDecider::IsChromeErrorPage() { |
| 39 DCHECK(HasCommitted()); |
| 40 return navigation_handle_->IsErrorPage(); |
| 41 } |
| 42 |
| 43 int BrowserPageTrackDecider::GetHttpStatusCode() { |
| 44 DCHECK(HasCommitted()); |
| 45 const net::HttpResponseHeaders* response_headers = |
| 46 navigation_handle_->GetResponseHeaders(); |
| 47 if (!response_headers) |
| 48 return -1; |
| 49 return response_headers->response_code(); |
| 50 } |
| 51 |
| 52 bool BrowserPageTrackDecider::IsHtmlOrXhtmlPage() { |
| 53 DCHECK(HasCommitted()); |
| 54 const std::string& mime_type = web_contents_->GetContentsMimeType(); |
| 55 return mime_type == "text/html" || mime_type == "application/xhtml+xml"; |
| 56 } |
| 57 |
| 58 } // namespace page_load_metrics |
OLD | NEW |