1 // Copyright (c) 2012 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 #ifndef WEBKIT_BROWSER_FILEAPI_FILE_SYSTEM_OPTIONS_H_ 6 #define WEBKIT_BROWSER_FILEAPI_FILE_SYSTEM_OPTIONS_H_ 7 8 #include <string> 9 #include <vector> 10 11 #include "webkit/browser/webkit_storage_browser_export.h" 12 13 namespace fileapi { 14 15 // Provides runtime options that may change FileSystem API behavior. 16 // This object is copyable. 17 class WEBKIT_STORAGE_BROWSER_EXPORT FileSystemOptions { 18 public: 19 enum ProfileMode { 20 PROFILE_MODE_NORMAL = 0, 21 PROFILE_MODE_INCOGNITO 22 }; 23 24 // |profile_mode| specifies if the profile (for this filesystem) 25 // is running in incognito mode (PROFILE_MODE_INCOGNITO) or no 26 // (PROFILE_MODE_NORMAL). 27 // |additional_allowed_schemes| specifies schemes that are allowed 28 // to access FileSystem API in addition to "http" and "https". 29 FileSystemOptions( 30 ProfileMode profile_mode, 31 const std::vector<std::string>& additional_allowed_schemes); 32 33 ~FileSystemOptions(); 34 35 // Returns true if it is running in the incognito mode. 36 bool is_incognito() const { return profile_mode_ == PROFILE_MODE_INCOGNITO; } 37 38 // Returns the schemes that must be allowed to access FileSystem API 39 // in addition to standard "http" and "https". 40 // (e.g. If the --allow-file-access-from-files option is given in chrome 41 // "file" scheme will also need to be allowed). 42 const std::vector<std::string>& additional_allowed_schemes() const { 43 return additional_allowed_schemes_; 44 } 45 46 private: 47 const ProfileMode profile_mode_; 48 const std::vector<std::string> additional_allowed_schemes_; 49 }; 50 51 } // namespace fileapi 52 53 #endif // WEBKIT_BROWSER_FILEAPI_FILE_SYSTEM_OPTIONS_H_ 54