1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5// Functions used internally by filename_util, filename_util_icu and 6// filename_util_unsafe. 7 8#ifndef NET_BASE_FILENAME_UTIL_INTERNAL_H_ 9#define NET_BASE_FILENAME_UTIL_INTERNAL_H_ 10 11#include <string> 12 13#include "base/callback.h" 14#include "base/files/file_path.h" 15#include "base/strings/string16.h" 16 17class GURL; 18 19namespace net { 20 21typedef base::Callback< 22 void(base::FilePath::StringType* file_name, char replace_char)> 23 ReplaceIllegalCharactersCallback; 24 25void SanitizeGeneratedFileName(base::FilePath::StringType* filename, 26 bool replace_trailing); 27 28bool IsShellIntegratedExtension(const base::FilePath::StringType& extension); 29 30bool IsReservedName(const base::FilePath::StringType& filename); 31 32void EnsureSafeExtension(const std::string& mime_type, 33 bool ignore_extension, 34 base::FilePath* file_name); 35 36bool FilePathToString16(const base::FilePath& path, base::string16* converted); 37 38// Similar to GetSuggestedFilename(), but takes callback to replace illegal 39// characters. 40base::string16 GetSuggestedFilenameImpl( 41 const GURL& url, 42 const std::string& content_disposition, 43 const std::string& referrer_charset, 44 const std::string& suggested_name, 45 const std::string& mime_type, 46 const std::string& default_name, 47 ReplaceIllegalCharactersCallback replace_illegal_characters_callback); 48 49// Similar to GenerateFileName(), but takes callback to replace illegal 50// characters. 51base::FilePath GenerateFileNameImpl( 52 const GURL& url, 53 const std::string& content_disposition, 54 const std::string& referrer_charset, 55 const std::string& suggested_name, 56 const std::string& mime_type, 57 const std::string& default_name, 58 ReplaceIllegalCharactersCallback replace_illegal_characters_callback); 59 60} // namespace net 61 62#endif // NET_BASE_FILENAME_UTIL_INTERNAL_H_ 63