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

Side by Side Diff: content/child/site_isolation_policy.cc

Issue 1172753003: Move LowerCaseEqualsASCII to base namespace (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@string_util
Patch Set: Created 5 years, 6 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
« no previous file with comments | « content/child/npapi/webplugin_delegate_impl.cc ('k') | content/child/web_url_request_util.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "content/child/site_isolation_policy.h" 5 #include "content/child/site_isolation_policy.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/lazy_instance.h" 9 #include "base/lazy_instance.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 59
60 data.remove_prefix(offset); 60 data.remove_prefix(offset);
61 size_t length = data.length(); 61 size_t length = data.length();
62 62
63 for (size_t sig_index = 0; sig_index < arr_size; ++sig_index) { 63 for (size_t sig_index = 0; sig_index < arr_size; ++sig_index) {
64 const StringPiece& signature = signatures[sig_index]; 64 const StringPiece& signature = signatures[sig_index];
65 size_t signature_length = signature.length(); 65 size_t signature_length = signature.length();
66 if (length < signature_length) 66 if (length < signature_length)
67 continue; 67 continue;
68 68
69 if (LowerCaseEqualsASCII(data.begin(), data.begin() + signature_length, 69 if (base::LowerCaseEqualsASCII(data.begin(),
70 signature.data())) 70 data.begin() + signature_length,
71 signature.data()))
71 return true; 72 return true;
72 } 73 }
73 return false; 74 return false;
74 } 75 }
75 76
76 void IncrementHistogramCount(const std::string& name) { 77 void IncrementHistogramCount(const std::string& name) {
77 // The default value of min, max, bucket_count are copied from histogram.h. 78 // The default value of min, max, bucket_count are copied from histogram.h.
78 base::HistogramBase* histogram_pointer = base::Histogram::FactoryGet( 79 base::HistogramBase* histogram_pointer = base::Histogram::FactoryGet(
79 name, 1, 100000, 50, base::HistogramBase::kUmaTargetedHistogramFlag); 80 name, 1, 100000, 50, base::HistogramBase::kUmaTargetedHistogramFlag);
80 histogram_pointer->Add(1); 81 histogram_pointer->Add(1);
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
187 std::string no_sniff; 188 std::string no_sniff;
188 info.headers->EnumerateHeader(NULL, "x-content-type-options", &no_sniff); 189 info.headers->EnumerateHeader(NULL, "x-content-type-options", &no_sniff);
189 190
190 linked_ptr<SiteIsolationResponseMetaData> resp_data( 191 linked_ptr<SiteIsolationResponseMetaData> resp_data(
191 new SiteIsolationResponseMetaData); 192 new SiteIsolationResponseMetaData);
192 resp_data->frame_origin = frame_origin.spec(); 193 resp_data->frame_origin = frame_origin.spec();
193 resp_data->response_url = response_url; 194 resp_data->response_url = response_url;
194 resp_data->resource_type = resource_type; 195 resp_data->resource_type = resource_type;
195 resp_data->canonical_mime_type = canonical_mime_type; 196 resp_data->canonical_mime_type = canonical_mime_type;
196 resp_data->http_status_code = info.headers->response_code(); 197 resp_data->http_status_code = info.headers->response_code();
197 resp_data->no_sniff = LowerCaseEqualsASCII(no_sniff, "nosniff"); 198 resp_data->no_sniff = base::LowerCaseEqualsASCII(no_sniff, "nosniff");
198 199
199 return resp_data; 200 return resp_data;
200 } 201 }
201 202
202 bool SiteIsolationPolicy::ShouldBlockResponse( 203 bool SiteIsolationPolicy::ShouldBlockResponse(
203 const linked_ptr<SiteIsolationResponseMetaData>& resp_data, 204 const linked_ptr<SiteIsolationResponseMetaData>& resp_data,
204 const char* raw_data, 205 const char* raw_data,
205 int raw_length, 206 int raw_length,
206 std::string* alternative_data) { 207 std::string* alternative_data) {
207 if (!g_policy_enabled) 208 if (!g_policy_enabled)
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 alternative_data->insert(0, " "); 293 alternative_data->insert(0, " ");
293 LOG(ERROR) << resp_data->response_url 294 LOG(ERROR) << resp_data->response_url
294 << " is blocked as an illegal cross-site document from " 295 << " is blocked as an illegal cross-site document from "
295 << resp_data->frame_origin; 296 << resp_data->frame_origin;
296 } 297 }
297 return is_blocked; 298 return is_blocked;
298 } 299 }
299 300
300 SiteIsolationResponseMetaData::CanonicalMimeType 301 SiteIsolationResponseMetaData::CanonicalMimeType
301 SiteIsolationPolicy::GetCanonicalMimeType(const std::string& mime_type) { 302 SiteIsolationPolicy::GetCanonicalMimeType(const std::string& mime_type) {
302 if (LowerCaseEqualsASCII(mime_type, kTextHtml)) { 303 if (base::LowerCaseEqualsASCII(mime_type, kTextHtml)) {
303 return SiteIsolationResponseMetaData::HTML; 304 return SiteIsolationResponseMetaData::HTML;
304 } 305 }
305 306
306 if (LowerCaseEqualsASCII(mime_type, kTextPlain)) { 307 if (base::LowerCaseEqualsASCII(mime_type, kTextPlain)) {
307 return SiteIsolationResponseMetaData::Plain; 308 return SiteIsolationResponseMetaData::Plain;
308 } 309 }
309 310
310 if (LowerCaseEqualsASCII(mime_type, kAppJson) || 311 if (base::LowerCaseEqualsASCII(mime_type, kAppJson) ||
311 LowerCaseEqualsASCII(mime_type, kTextJson) || 312 base::LowerCaseEqualsASCII(mime_type, kTextJson) ||
312 LowerCaseEqualsASCII(mime_type, kTextXjson)) { 313 base::LowerCaseEqualsASCII(mime_type, kTextXjson)) {
313 return SiteIsolationResponseMetaData::JSON; 314 return SiteIsolationResponseMetaData::JSON;
314 } 315 }
315 316
316 if (LowerCaseEqualsASCII(mime_type, kTextXml) || 317 if (base::LowerCaseEqualsASCII(mime_type, kTextXml) ||
317 LowerCaseEqualsASCII(mime_type, xAppRssXml) || 318 base::LowerCaseEqualsASCII(mime_type, xAppRssXml) ||
318 LowerCaseEqualsASCII(mime_type, kAppXml)) { 319 base::LowerCaseEqualsASCII(mime_type, kAppXml)) {
319 return SiteIsolationResponseMetaData::XML; 320 return SiteIsolationResponseMetaData::XML;
320 } 321 }
321 322
322 return SiteIsolationResponseMetaData::Others; 323 return SiteIsolationResponseMetaData::Others;
323 } 324 }
324 325
325 bool SiteIsolationPolicy::IsBlockableScheme(const GURL& url) { 326 bool SiteIsolationPolicy::IsBlockableScheme(const GURL& url) {
326 // We exclude ftp:// from here. FTP doesn't provide a Content-Type 327 // We exclude ftp:// from here. FTP doesn't provide a Content-Type
327 // header which our policy depends on, so we cannot protect any 328 // header which our policy depends on, so we cannot protect any
328 // document from FTP servers. 329 // document from FTP servers.
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
494 // TODO(dsjang): This is a real hack. The only purpose of this function is to 495 // TODO(dsjang): This is a real hack. The only purpose of this function is to
495 // try to see if there's any possibility that this data can be JavaScript 496 // try to see if there's any possibility that this data can be JavaScript
496 // (superset of JS). This function will be removed once UMA stats are 497 // (superset of JS). This function will be removed once UMA stats are
497 // gathered. 498 // gathered.
498 499
499 // Search for "var " for JS detection. 500 // Search for "var " for JS detection.
500 return data.find("var ") != base::StringPiece::npos; 501 return data.find("var ") != base::StringPiece::npos;
501 } 502 }
502 503
503 } // namespace content 504 } // namespace content
OLDNEW
« no previous file with comments | « content/child/npapi/webplugin_delegate_impl.cc ('k') | content/child/web_url_request_util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698