| 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..2c723b6968498b4b395e022a950f4b39d58fde34 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,12 @@
|
|
|
| #include "components/data_use_measurement/content/content_url_request_classifier.h"
|
|
|
| +#include <string>
|
| +
|
| +#include "base/strings/string_util.h"
|
| #include "content/public/browser/resource_request_info.h"
|
| +#include "content/public/common/resource_type.h"
|
| +#include "net/http/http_response_headers.h"
|
| #include "net/url_request/url_request.h"
|
|
|
| namespace data_use_measurement {
|
| @@ -26,4 +31,40 @@ bool ContentURLRequestClassifier::IsUserRequest(
|
| return data_use_measurement::IsUserRequest(request);
|
| }
|
|
|
| +DataUseUserData::DataUseContentType ContentURLRequestClassifier::GetContentType(
|
| + const net::URLRequest& request,
|
| + const net::HttpResponseHeaders& response_headers) const {
|
| + const content::ResourceRequestInfo* request_info =
|
| + content::ResourceRequestInfo::ForRequest(&request);
|
| + std::string mime_type;
|
| + if (response_headers.GetMimeType(&mime_type)) {
|
| + if (mime_type == "text/html" && request_info &&
|
| + request_info->GetResourceType() ==
|
| + content::ResourceType::RESOURCE_TYPE_MAIN_FRAME) {
|
| + return DataUseUserData::MAIN_FRAME_HTML;
|
| + } else if (mime_type == "text/html") {
|
| + return DataUseUserData::NON_MAIN_FRAME_HTML;
|
| + } else if (mime_type == "text/css") {
|
| + return DataUseUserData::CSS;
|
| + } else if (base::StartsWith(mime_type, "image/",
|
| + base::CompareCase::SENSITIVE)) {
|
| + return DataUseUserData::IMAGE;
|
| + } else if (base::EndsWith(mime_type, "javascript",
|
| + base::CompareCase::SENSITIVE) ||
|
| + base::EndsWith(mime_type, "ecmascript",
|
| + base::CompareCase::SENSITIVE)) {
|
| + return DataUseUserData::JAVASCRIPT;
|
| + } else if (mime_type.find("font") != std::string::npos) {
|
| + return DataUseUserData::FONT;
|
| + } else if (base::StartsWith(mime_type, "audio/",
|
| + base::CompareCase::SENSITIVE)) {
|
| + return DataUseUserData::AUDIO;
|
| + } else if (base::StartsWith(mime_type, "video/",
|
| + base::CompareCase::SENSITIVE)) {
|
| + return DataUseUserData::VIDEO;
|
| + }
|
| + }
|
| + return DataUseUserData::OTHER;
|
| +}
|
| +
|
| } // namespace data_use_measurement
|
|
|