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