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

Side by Side Diff: content/browser/renderer_host/pepper/pepper_file_system_browser_host.cc

Issue 54233002: Make net::DataURL's MIME string check stricter (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Split web_url_loader_impl change Created 6 years, 7 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | net/base/data_url.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/browser/renderer_host/pepper/pepper_file_system_browser_host.h " 5 #include "content/browser/renderer_host/pepper/pepper_file_system_browser_host.h "
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "content/browser/renderer_host/pepper/pepper_file_io_host.h" 9 #include "content/browser/renderer_host/pepper/pepper_file_io_host.h"
10 #include "content/browser/renderer_host/pepper/quota_reservation.h" 10 #include "content/browser/renderer_host/pepper/quota_reservation.h"
(...skipping 466 matching lines...) Expand 10 before | Expand all | Expand 10 after
477 // Use the first element in |info->mime_types| even if several elements exist. 477 // Use the first element in |info->mime_types| even if several elements exist.
478 return info->mime_types[0].mime_type; 478 return info->mime_types[0].mime_type;
479 } 479 }
480 480
481 std::string PepperFileSystemBrowserHost::GeneratePluginId( 481 std::string PepperFileSystemBrowserHost::GeneratePluginId(
482 const std::string& mime_type) const { 482 const std::string& mime_type) const {
483 // TODO(nhiroki): This function is very specialized for specific plugins (MIME 483 // TODO(nhiroki): This function is very specialized for specific plugins (MIME
484 // types). If we bring this API to stable, we might have to make it more 484 // types). If we bring this API to stable, we might have to make it more
485 // general. 485 // general.
486 486
487 if (!net::IsMimeType(mime_type)) 487 std::string top_level_type;
488 std::string subtype;
489 if (!net::ParseMimeTypeWithoutParameter(
490 mime_type, &top_level_type, &subtype) ||
491 !net::IsValidTopLevelMimeType(top_level_type))
488 return std::string(); 492 return std::string();
489 std::string output = mime_type;
490 493
491 // Replace a slash used for type/subtype separator with an underscore. 494 // Replace a slash used for type/subtype separator with an underscore.
492 // NOTE: This assumes there is only one slash in the MIME type. 495 std::string output = top_level_type + "_" + subtype;
493 ReplaceFirstSubstringAfterOffset(&output, 0, "/", "_");
494 496
495 // Verify |output| contains only alphabets, digits, or "._-". 497 // Verify |output| contains only alphabets, digits, or "._-".
496 for (std::string::const_iterator it = output.begin(); it != output.end(); 498 for (std::string::const_iterator it = output.begin(); it != output.end();
497 ++it) { 499 ++it) {
498 if (!IsAsciiAlpha(*it) && !IsAsciiDigit(*it) && *it != '.' && *it != '_' && 500 if (!IsAsciiAlpha(*it) && !IsAsciiDigit(*it) && *it != '.' && *it != '_' &&
499 *it != '-') { 501 *it != '-') {
500 LOG(WARNING) << "Failed to generate a plugin id."; 502 LOG(WARNING) << "Failed to generate a plugin id.";
501 return std::string(); 503 return std::string();
502 } 504 }
503 } 505 }
504 return output; 506 return output;
505 } 507 }
506 508
507 } // namespace content 509 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | net/base/data_url.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698