// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // Functions used internally by filename_util, filename_util_icu and // filename_util_unsafe. #ifndef NET_BASE_FILENAME_UTIL_INTERNAL_H_ #define NET_BASE_FILENAME_UTIL_INTERNAL_H_ #include #include "base/callback.h" #include "base/files/file_path.h" #include "base/strings/string16.h" class GURL; namespace net { typedef base::Callback< void(base::FilePath::StringType* file_name, char replace_char)> ReplaceIllegalCharactersCallback; void SanitizeGeneratedFileName(base::FilePath::StringType* filename, bool replace_trailing); bool IsShellIntegratedExtension(const base::FilePath::StringType& extension); bool IsReservedName(const base::FilePath::StringType& filename); void EnsureSafeExtension(const std::string& mime_type, bool ignore_extension, base::FilePath* file_name); bool FilePathToString16(const base::FilePath& path, base::string16* converted); // Similar to GetSuggestedFilename(), but takes callback to replace illegal // characters. base::string16 GetSuggestedFilenameImpl( const GURL& url, const std::string& content_disposition, const std::string& referrer_charset, const std::string& suggested_name, const std::string& mime_type, const std::string& default_name, ReplaceIllegalCharactersCallback replace_illegal_characters_callback); // Similar to GenerateFileName(), but takes callback to replace illegal // characters. base::FilePath GenerateFileNameImpl( const GURL& url, const std::string& content_disposition, const std::string& referrer_charset, const std::string& suggested_name, const std::string& mime_type, const std::string& default_name, ReplaceIllegalCharactersCallback replace_illegal_characters_callback); } // namespace net #endif // NET_BASE_FILENAME_UTIL_INTERNAL_H_