// Copyright (c) 2016 Marshall A. Greenblatt. Portions copyright (c) 2012 // Google Inc. All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the name Chromium Embedded // Framework nor the names of its contributors may be used to endorse // or promote products derived from this software without specific prior // written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // // --------------------------------------------------------------------------- // // The contents of this file must follow a specific format in order to // support the CEF translator tool. See the translator.README.txt file in the // tools directory for more information. // #ifndef CEF_INCLUDE_CEF_FILE_UTIL_H_ #define CEF_INCLUDE_CEF_FILE_UTIL_H_ #pragma once #include "include/cef_base.h" /// /// Creates a directory and all parent directories if they don't already exist. /// Returns true on successful creation or if the directory already exists. The /// directory is only readable by the current user. Calling this function on the /// browser process UI or IO threads is not allowed. /// /*--cef()--*/ bool CefCreateDirectory(const CefString& full_path); /// /// Get the temporary directory provided by the system. /// /// WARNING: In general, you should use the temp directory variants below /// instead of this function. Those variants will ensure that the proper /// permissions are set so that other users on the system can't edit them while /// they're open (which could lead to security issues). /// /*--cef()--*/ bool CefGetTempDirectory(CefString& temp_dir); /// /// Creates a new directory. On Windows if |prefix| is provided the new /// directory name is in the format of "prefixyyyy". Returns true on success and /// sets |new_temp_path| to the full path of the directory that was created. The /// directory is only readable by the current user. Calling this function on the /// browser process UI or IO threads is not allowed. /// /*--cef(optional_param=prefix)--*/ bool CefCreateNewTempDirectory(const CefString& prefix, CefString& new_temp_path); /// /// Creates a directory within another directory. Extra characters will be /// appended to |prefix| to ensure that the new directory does not have the same /// name as an existing directory. Returns true on success and sets |new_dir| to /// the full path of the directory that was created. The directory is only /// readable by the current user. Calling this function on the browser process /// UI or IO threads is not allowed. /// /*--cef(optional_param=prefix)--*/ bool CefCreateTempDirectoryInDirectory(const CefString& base_dir, const CefString& prefix, CefString& new_dir); /// /// Returns true if the given path exists and is a directory. Calling this /// function on the browser process UI or IO threads is not allowed. /// /*--cef()--*/ bool CefDirectoryExists(const CefString& path); /// /// Deletes the given path whether it's a file or a directory. If |path| is a /// directory all contents will be deleted. If |recursive| is true any sub- /// directories and their contents will also be deleted (equivalent to executing /// "rm -rf", so use with caution). On POSIX environments if |path| is a /// symbolic link then only the symlink will be deleted. Returns true on /// successful deletion or if |path| does not exist. Calling this function on /// the browser process UI or IO threads is not allowed. /// /*--cef()--*/ bool CefDeleteFile(const CefString& path, bool recursive); /// /// Writes the contents of |src_dir| into a zip archive at |dest_file|. If /// |include_hidden_files| is true files starting with "." will be included. /// Returns true on success. Calling this function on the browser process UI or /// IO threads is not allowed. /// /*--cef()--*/ bool CefZipDirectory(const CefString& src_dir, const CefString& dest_file, bool include_hidden_files); /// /// Loads the existing "Certificate Revocation Lists" file that is managed by /// Google Chrome. This file can generally be found in Chrome's User Data /// directory (e.g. "C:\Users\[User]\AppData\Local\Google\Chrome\User Data\" on /// Windows) and is updated periodically by Chrome's component updater service. /// Must be called in the browser process after the context has been /// initialized. See https://dev.chromium.org/Home/chromium-security/crlsets for /// background. /// /*--cef()--*/ void CefLoadCRLSetsFile(const CefString& path); #endif // CEF_INCLUDE_CEF_FILE_UTIL_H_