1 // Copyright (c) 2022 Marshall A. Greenblatt. All rights reserved. 2 // 3 // Redistribution and use in source and binary forms, with or without 4 // modification, are permitted provided that the following conditions are 5 // met: 6 // 7 // * Redistributions of source code must retain the above copyright 8 // notice, this list of conditions and the following disclaimer. 9 // * Redistributions in binary form must reproduce the above 10 // copyright notice, this list of conditions and the following disclaimer 11 // in the documentation and/or other materials provided with the 12 // distribution. 13 // * Neither the name of Google Inc. nor the name Chromium Embedded 14 // Framework nor the names of its contributors may be used to endorse 15 // or promote products derived from this software without specific prior 16 // written permission. 17 // 18 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 // 30 // --------------------------------------------------------------------------- 31 // 32 // This file was generated by the CEF translator tool and should not edited 33 // by hand. See the translator.README.txt file in the tools directory for 34 // more information. 35 // 36 // $hash=e76fa23e9682bf0865319d93e4009752ac8f854f$ 37 // 38 39 #ifndef CEF_INCLUDE_CAPI_CEF_FILE_UTIL_CAPI_H_ 40 #define CEF_INCLUDE_CAPI_CEF_FILE_UTIL_CAPI_H_ 41 #pragma once 42 43 #include "include/capi/cef_base_capi.h" 44 45 #ifdef __cplusplus 46 extern "C" { 47 #endif 48 49 /// 50 // Creates a directory and all parent directories if they don't already exist. 51 // Returns true (1) on successful creation or if the directory already exists. 52 // The directory is only readable by the current user. Calling this function on 53 // the browser process UI or IO threads is not allowed. 54 /// 55 CEF_EXPORT int cef_create_directory(const cef_string_t* full_path); 56 57 /// 58 // Get the temporary directory provided by the system. 59 // 60 // WARNING: In general, you should use the temp directory variants below instead 61 // of this function. Those variants will ensure that the proper permissions are 62 // set so that other users on the system can't edit them while they're open 63 // (which could lead to security issues). 64 /// 65 CEF_EXPORT int cef_get_temp_directory(cef_string_t* temp_dir); 66 67 /// 68 // Creates a new directory. On Windows if |prefix| is provided the new directory 69 // name is in the format of "prefixyyyy". Returns true (1) on success and sets 70 // |new_temp_path| to the full path of the directory that was created. The 71 // directory is only readable by the current user. Calling this function on the 72 // browser process UI or IO threads is not allowed. 73 /// 74 CEF_EXPORT int cef_create_new_temp_directory(const cef_string_t* prefix, 75 cef_string_t* new_temp_path); 76 77 /// 78 // Creates a directory within another directory. Extra characters will be 79 // appended to |prefix| to ensure that the new directory does not have the same 80 // name as an existing directory. Returns true (1) on success and sets |new_dir| 81 // to the full path of the directory that was created. The directory is only 82 // readable by the current user. Calling this function on the browser process UI 83 // or IO threads is not allowed. 84 /// 85 CEF_EXPORT int cef_create_temp_directory_in_directory( 86 const cef_string_t* base_dir, 87 const cef_string_t* prefix, 88 cef_string_t* new_dir); 89 90 /// 91 // Returns true (1) if the given path exists and is a directory. Calling this 92 // function on the browser process UI or IO threads is not allowed. 93 /// 94 CEF_EXPORT int cef_directory_exists(const cef_string_t* path); 95 96 /// 97 // Deletes the given path whether it's a file or a directory. If |path| is a 98 // directory all contents will be deleted. If |recursive| is true (1) any sub- 99 // directories and their contents will also be deleted (equivalent to executing 100 // "rm -rf", so use with caution). On POSIX environments if |path| is a symbolic 101 // link then only the symlink will be deleted. Returns true (1) on successful 102 // deletion or if |path| does not exist. Calling this function on the browser 103 // process UI or IO threads is not allowed. 104 /// 105 CEF_EXPORT int cef_delete_file(const cef_string_t* path, int recursive); 106 107 /// 108 // Writes the contents of |src_dir| into a zip archive at |dest_file|. If 109 // |include_hidden_files| is true (1) files starting with "." will be included. 110 // Returns true (1) on success. Calling this function on the browser process UI 111 // or IO threads is not allowed. 112 /// 113 CEF_EXPORT int cef_zip_directory(const cef_string_t* src_dir, 114 const cef_string_t* dest_file, 115 int include_hidden_files); 116 117 /// 118 // Loads the existing "Certificate Revocation Lists" file that is managed by 119 // Google Chrome. This file can generally be found in Chrome's User Data 120 // directory (e.g. "C:\Users\[User]\AppData\Local\Google\Chrome\User Data\" on 121 // Windows) and is updated periodically by Chrome's component updater service. 122 // Must be called in the browser process after the context has been initialized. 123 // See https://dev.chromium.org/Home/chromium-security/crlsets for background. 124 /// 125 CEF_EXPORT void cef_load_crlsets_file(const cef_string_t* path); 126 127 #ifdef __cplusplus 128 } 129 #endif 130 131 #endif // CEF_INCLUDE_CAPI_CEF_FILE_UTIL_CAPI_H_ 132