1/* Copyright 2013 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
6[generate_thunk,thunk_include="ppapi/thunk/ppb_isolated_file_system_private_api.h"]
7
8/**
9 * This file contains the <code>PPB_IsolatedFileSystem_Private</code> interface.
10 */
11label Chrome {
12  M33 = 0.2
13};
14
15
16/**
17 * The <code>PP_IsolatedFileSystemType_Private</code> values indicate the type
18 * of isolated file systems.
19 */
20[assert_size(4)]
21enum PP_IsolatedFileSystemType_Private {
22  /** Type for invalid file systems */
23  PP_ISOLATEDFILESYSTEMTYPE_PRIVATE_INVALID = 0,
24  /** Type for CRX file systems */
25  PP_ISOLATEDFILESYSTEMTYPE_PRIVATE_CRX = 1,
26  /** Type for PluginPrivate file systems */
27  PP_ISOLATEDFILESYSTEMTYPE_PRIVATE_PLUGINPRIVATE = 2
28};
29
30/* <code>PPB_IsolatedFileSystem_Private</code> interface */
31interface PPB_IsolatedFileSystem_Private {
32  /**
33   * Open() opens a file system corresponding the given file system type.
34   *
35   * When opening the CRX file system, this should be called from an extension
36   * context, otherwise it will fail.
37   *
38   * @param[in] instance A <code>PP_Instance</code> identifying the instance
39   * with the file system.
40   * @param[in] type A file system type as defined by
41   * <code>PP_IsolatedFileSystemType_Private</code> enum.
42   * @param[out] file_system An output <code>PP_Resource</code> corresponding
43   * to a PPB_FileSystem.
44   * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon
45   * completion of Open.
46   *
47   * @return An int32_t containing an error code from <code>pp_errors.h</code>.
48   */
49  [singleton,api=PPB_IsolatedFileSystem_Private_API]
50  int32_t Open([in] PP_Instance instance,
51               [in] PP_IsolatedFileSystemType_Private type,
52               [out] PP_Resource file_system,
53               [in] PP_CompletionCallback callback);
54};
55