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

Unified Diff: components/data_use_measurement/content/content_url_request_classifier.cc

Issue 2595503002: Record the data use by content type (Closed)
Patch Set: Add enum Created 4 years 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 side-by-side diff with in-line comments
Download patch
Index: components/data_use_measurement/content/content_url_request_classifier.cc
diff --git a/components/data_use_measurement/content/content_url_request_classifier.cc b/components/data_use_measurement/content/content_url_request_classifier.cc
index 23bbd8baa9624a0515bfab3b4bf2026ab5e4243a..9164e12b008adfef5fe67b0712f5183d6da3183f 100644
--- a/components/data_use_measurement/content/content_url_request_classifier.cc
+++ b/components/data_use_measurement/content/content_url_request_classifier.cc
@@ -4,7 +4,10 @@
#include "components/data_use_measurement/content/content_url_request_classifier.h"
+#include "base/strings/string_util.h"
#include "content/public/browser/resource_request_info.h"
+#include "net/base/load_flags.h"
+#include "net/http/http_response_headers.h"
#include "net/url_request/url_request.h"
namespace data_use_measurement {
@@ -26,4 +29,38 @@ bool ContentURLRequestClassifier::IsUserRequest(
return data_use_measurement::IsUserRequest(request);
}
+DataUseUserData::ContentType ContentURLRequestClassifier::GetContentType(
+ const net::URLRequest& request,
+ const net::HttpResponseHeaders& response_headers) const {
+ std::string mime_type;
+ if (response_headers.GetMimeType(&mime_type)) {
+ if (mime_type == "text/html" &&
+ (request.load_flags() & net::LOAD_MAIN_FRAME_DEPRECATED)) {
RyanSturm 2016/12/20 19:37:52 Don't use the deprecated flag. Use ResourceRequest
Raj 2016/12/22 18:44:37 Thanks for pointing to ResourceType. In my test of
RyanSturm 2016/12/22 20:00:42 Thanks for looking into it.
+ return DataUseUserData::ContentType::MAIN_FRAME_HTML;
+ ;
+ } else if (mime_type == "text/html") {
+ return DataUseUserData::ContentType::NON_MAIN_FRAME_HTML;
+ } else if (mime_type == "text/css") {
+ return DataUseUserData::ContentType::CSS;
+ } else if (base::StartsWith(mime_type, "image/",
+ base::CompareCase::SENSITIVE)) {
+ return DataUseUserData::ContentType::IMAGE;
+ } else if (base::EndsWith(mime_type, "javascript",
+ base::CompareCase::SENSITIVE) ||
+ base::EndsWith(mime_type, "ecmascript",
+ base::CompareCase::SENSITIVE)) {
+ return DataUseUserData::ContentType::JAVASCRIPT;
+ } else if (mime_type.find("font") != std::string::npos) {
+ return DataUseUserData::ContentType::FONT;
+ } else if (base::StartsWith(mime_type, "audio/",
+ base::CompareCase::SENSITIVE)) {
+ return DataUseUserData::ContentType::AUDIO;
+ } else if (base::StartsWith(mime_type, "video/",
+ base::CompareCase::SENSITIVE)) {
+ return DataUseUserData::ContentType::VIDEO;
+ }
+ }
+ return DataUseUserData::ContentType::OTHER;
+}
+
} // namespace data_use_measurement

Powered by Google App Engine
This is Rietveld 408576698