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

Side by Side Diff: chrome/renderer/page_load_metrics/renderer_page_track_decider.cc

Issue 2350473002: [page_load_metrics] Add support for chrome:// urls and add extensions observer (Closed)
Patch Set: fix about:blank check Created 4 years, 3 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 2016 The Chromium Authors. All rights reserved. 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 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 "chrome/renderer/page_load_metrics/renderer_page_track_decider.h" 5 #include "chrome/renderer/page_load_metrics/renderer_page_track_decider.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "chrome/renderer/searchbox/search_bouncer.h" 9 #include "chrome/renderer/searchbox/search_bouncer.h"
10 #include "third_party/WebKit/public/platform/WebURLResponse.h" 10 #include "third_party/WebKit/public/platform/WebURLResponse.h"
11 #include "third_party/WebKit/public/web/WebDataSource.h" 11 #include "third_party/WebKit/public/web/WebDataSource.h"
12 #include "third_party/WebKit/public/web/WebDocument.h" 12 #include "third_party/WebKit/public/web/WebDocument.h"
13 #include "url/gurl.h" 13 #include "url/gurl.h"
14 14
15 namespace page_load_metrics { 15 namespace page_load_metrics {
16 16
17 RendererPageTrackDecider::RendererPageTrackDecider( 17 RendererPageTrackDecider::RendererPageTrackDecider(
18 const blink::WebDocument* document, 18 const blink::WebDocument* document,
19 const blink::WebDataSource* data_source) 19 const blink::WebDataSource* data_source)
20 : document_(document), data_source_(data_source) {} 20 : document_(document), data_source_(data_source) {}
21 21
22 RendererPageTrackDecider::~RendererPageTrackDecider() {} 22 RendererPageTrackDecider::~RendererPageTrackDecider() {}
23 23
24 bool RendererPageTrackDecider::HasCommitted() { 24 bool RendererPageTrackDecider::HasCommitted() {
25 // RendererPageTrackDecider is only instantiated for committed pages. 25 // RendererPageTrackDecider is only instantiated for committed pages.
26 return true; 26 return true;
27 } 27 }
28 28
29 bool RendererPageTrackDecider::IsHttpOrHttpsUrl() {
30 return static_cast<GURL>(document_->url()).SchemeIsHTTPOrHTTPS();
31 }
32
33 bool RendererPageTrackDecider::IsNewTabPageUrl() { 29 bool RendererPageTrackDecider::IsNewTabPageUrl() {
34 return SearchBouncer::GetInstance()->IsNewTabPage(document_->url()); 30 return SearchBouncer::GetInstance()->IsNewTabPage(document_->url());
35 } 31 }
36 32
33 bool RendererPageTrackDecider::IsAboutBlankUrl() {
34 return document_->url().string() == "about:blank";
Bryan McQuade 2016/09/20 18:47:33 can we use https://cs.chromium.org/chromium/src/ur
Charlie Harrison 2016/09/20 22:46:23 Done.
35 }
36
37 bool RendererPageTrackDecider::IsChromeErrorPage() { 37 bool RendererPageTrackDecider::IsChromeErrorPage() {
38 return data_source_->hasUnreachableURL(); 38 return data_source_->hasUnreachableURL();
39 } 39 }
40 40
41 int RendererPageTrackDecider::GetHttpStatusCode() { 41 int RendererPageTrackDecider::GetHttpStatusCode() {
42 return data_source_->response().httpStatusCode(); 42 return data_source_->response().httpStatusCode();
43 } 43 }
44 44
45 bool RendererPageTrackDecider::IsHtmlOrXhtmlPage() { 45 bool RendererPageTrackDecider::IsHtmlOrXhtmlPage() {
46 // Ignore non-HTML documents (e.g. SVG). Note that images are treated by 46 // Ignore non-HTML documents (e.g. SVG). Note that images are treated by
47 // Blink as HTML documents, so to exclude images, we must perform 47 // Blink as HTML documents, so to exclude images, we must perform
48 // additional mime type checking below. 48 // additional mime type checking below.
49 if (!document_->isHTMLDocument() && !document_->isXHTMLDocument()) 49 if (!document_->isHTMLDocument() && !document_->isXHTMLDocument())
50 return false; 50 return false;
51 51
52 // Ignore non-HTML mime types (e.g. images). 52 // Ignore non-HTML mime types (e.g. images).
53 blink::WebString mime_type = data_source_->response().mimeType(); 53 blink::WebString mime_type = data_source_->response().mimeType();
54 return mime_type == "text/html" || mime_type == "application/xhtml+xml"; 54 return mime_type == "text/html" || mime_type == "application/xhtml+xml";
55 } 55 }
56 56
57 } // namespace page_load_metrics 57 } // namespace page_load_metrics
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698