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