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

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: CONTENT_EXPORT Created 6 years, 8 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 | content/child/web_url_loader_impl.h » ('j') | net/base/data_url.cc » ('J')
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 467 matching lines...) Expand 10 before | Expand all | Expand 10 after
478 // Use the first element in |info->mime_types| even if several elements exist. 478 // Use the first element in |info->mime_types| even if several elements exist.
479 return info->mime_types[0].mime_type; 479 return info->mime_types[0].mime_type;
480 } 480 }
481 481
482 std::string PepperFileSystemBrowserHost::GeneratePluginId( 482 std::string PepperFileSystemBrowserHost::GeneratePluginId(
483 const std::string& mime_type) const { 483 const std::string& mime_type) const {
484 // TODO(nhiroki): This function is very specialized for specific plugins (MIME 484 // TODO(nhiroki): This function is very specialized for specific plugins (MIME
485 // types). If we bring this API to stable, we might have to make it more 485 // types). If we bring this API to stable, we might have to make it more
486 // general. 486 // general.
487 487
488 if (!net::IsMimeType(mime_type)) 488 std::string top_level_type;
489 std::string subtype;
490 if (!net::ParseMimeTypeWithoutParameter(
491 mime_type, &top_level_type, &subtype) ||
492 !net::IsValidTopLevelMimeType(top_level_type))
489 return std::string(); 493 return std::string();
490 std::string output = mime_type;
491 494
492 // Replace a slash used for type/subtype separator with an underscore. 495 // Replace a slash used for type/subtype separator with an underscore.
493 // NOTE: This assumes there is only one slash in the MIME type. 496 std::string output = top_level_type + "_" + subtype;
494 ReplaceFirstSubstringAfterOffset(&output, 0, "/", "_");
495 497
496 // Verify |output| contains only alphabets, digits, or "._-". 498 // Verify |output| contains only alphabets, digits, or "._-".
497 for (std::string::const_iterator it = output.begin(); 499 for (std::string::const_iterator it = output.begin();
498 it != output.end(); ++it) { 500 it != output.end(); ++it) {
499 if (!IsAsciiAlpha(*it) && !IsAsciiDigit(*it) && 501 if (!IsAsciiAlpha(*it) && !IsAsciiDigit(*it) &&
500 *it != '.' && *it != '_' && *it != '-') { 502 *it != '.' && *it != '_' && *it != '-') {
501 LOG(WARNING) << "Failed to generate a plugin id."; 503 LOG(WARNING) << "Failed to generate a plugin id.";
502 return std::string(); 504 return std::string();
503 } 505 }
504 } 506 }
505 return output; 507 return output;
506 } 508 }
507 509
508 } // namespace content 510 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | content/child/web_url_loader_impl.h » ('j') | net/base/data_url.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698