diff options
Diffstat (limited to 'webkit/fileapi/file_system_options.h')
-rw-r--r-- | webkit/fileapi/file_system_options.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/webkit/fileapi/file_system_options.h b/webkit/fileapi/file_system_options.h new file mode 100644 index 0000000..ccba7a0 --- /dev/null +++ b/webkit/fileapi/file_system_options.h @@ -0,0 +1,51 @@ +// Copyright (c) 2012 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. + +#ifndef WEBKIT_FILEAPI_FILE_SYSTEM_OPTIONS_H_ +#define WEBKIT_FILEAPI_FILE_SYSTEM_OPTIONS_H_ + +#include <string> +#include <vector> + +namespace fileapi { + +// Provides runtime options that may change FileSystem API behavior. +// This object is copyable. +class FileSystemOptions { + public: + enum ProfileMode { + PROFILE_MODE_NORMAL = 0, + PROFILE_MODE_INCOGNITO + }; + + // |profile_mode| specifies if the profile (for this filesystem) + // is running in incognito mode (PROFILE_MODE_INCOGNITO) or no + // (PROFILE_MODE_NORMAL). + // |additional_allowed_schemes| specifies schemes that are allowed + // to access FileSystem API in addition to "http" and "https". + FileSystemOptions( + ProfileMode profile_mode, + const std::vector<std::string>& additional_allowed_schemes); + + ~FileSystemOptions(); + + // Returns true if it is running in the incognito mode. + bool is_incognito() const { return profile_mode_ == PROFILE_MODE_INCOGNITO; } + + // Returns the schemes that must be allowed to access FileSystem API + // in addition to standard "http" and "https". + // (e.g. If the --allow-file-access-from-files option is given in chrome + // "file" scheme will also need to be allowed). + const std::vector<std::string>& additional_allowed_schemes() const { + return additional_allowed_schemes_; + } + + private: + const ProfileMode profile_mode_; + const std::vector<std::string> additional_allowed_schemes_; +}; + +} // namespace fileapi + +#endif // WEBKIT_FILEAPI_FILE_SYSTEM_OPTIONS_H_ |