diff options
Diffstat (limited to 'ppapi')
-rw-r--r-- | ppapi/api/private/ppb_nacl_private.idl | 8 | ||||
-rw-r--r-- | ppapi/c/private/ppb_nacl_private.h | 9 | ||||
-rw-r--r-- | ppapi/native_client/src/trusted/plugin/service_runtime.cc | 92 | ||||
-rw-r--r-- | ppapi/native_client/src/trusted/plugin/service_runtime.h | 18 |
4 files changed, 4 insertions, 123 deletions
diff --git a/ppapi/api/private/ppb_nacl_private.idl b/ppapi/api/private/ppb_nacl_private.idl index 9a94214..f57b7f6 100644 --- a/ppapi/api/private/ppb_nacl_private.idl +++ b/ppapi/api/private/ppb_nacl_private.idl @@ -156,14 +156,6 @@ interface PPP_ManifestService { /* Called when PPAPI initialization in the NaCl plugin is finished. */ PP_Bool StartupInitializationComplete([inout] mem_t user_data); - - /* Called when irt_open_resource() is invoked in the NaCl plugin. - * Upon completion, callback will be invoked with given callback_user_data - * and the result file handle (or PP_kInvalidFileHandle on error). */ - PP_Bool OpenResource([inout] mem_t user_data, - [in] str_t entry_key, - [in] PP_OpenResourceCompletionCallback callback, - [inout] mem_t callback_user_data); }; /* Corresponds to NaClFileInfo in diff --git a/ppapi/c/private/ppb_nacl_private.h b/ppapi/c/private/ppb_nacl_private.h index 9df8723..3b23e19 100644 --- a/ppapi/c/private/ppb_nacl_private.h +++ b/ppapi/c/private/ppb_nacl_private.h @@ -3,7 +3,7 @@ * found in the LICENSE file. */ -/* From private/ppb_nacl_private.idl modified Fri Jun 13 15:14:51 2014. */ +/* From private/ppb_nacl_private.idl modified Wed Jun 18 19:15:01 2014. */ #ifndef PPAPI_C_PRIVATE_PPB_NACL_PRIVATE_H_ #define PPAPI_C_PRIVATE_PPB_NACL_PRIVATE_H_ @@ -194,13 +194,6 @@ struct PPP_ManifestService_1_0 { PP_Bool (*Quit)(void* user_data); /* Called when PPAPI initialization in the NaCl plugin is finished. */ PP_Bool (*StartupInitializationComplete)(void* user_data); - /* Called when irt_open_resource() is invoked in the NaCl plugin. - * Upon completion, callback will be invoked with given callback_user_data - * and the result file handle (or PP_kInvalidFileHandle on error). */ - PP_Bool (*OpenResource)(void* user_data, - const char* entry_key, - PP_OpenResourceCompletionCallback callback, - void* callback_user_data); }; typedef struct PPP_ManifestService_1_0 PPP_ManifestService; diff --git a/ppapi/native_client/src/trusted/plugin/service_runtime.cc b/ppapi/native_client/src/trusted/plugin/service_runtime.cc index ea4736d..e03f3dc 100644 --- a/ppapi/native_client/src/trusted/plugin/service_runtime.cc +++ b/ppapi/native_client/src/trusted/plugin/service_runtime.cc @@ -51,41 +51,6 @@ namespace plugin { -class OpenManifestEntryAsyncCallback { - public: - OpenManifestEntryAsyncCallback(PP_OpenResourceCompletionCallback callback, - void* callback_user_data) - : callback_(callback), callback_user_data_(callback_user_data) { - } - - ~OpenManifestEntryAsyncCallback() { - if (callback_) - callback_(callback_user_data_, PP_kInvalidFileHandle); - } - - void Run(int32_t pp_error) { -#if defined(OS_WIN) - // Currently, this is used only for non-SFI mode, and now the mode is not - // supported on windows. - // TODO(hidehiko): Support it on Windows when we switch to use - // ManifestService also in SFI-mode. - NACL_NOTREACHED(); -#elif defined(OS_POSIX) - // On posix, PlatformFile is the file descriptor. - callback_(callback_user_data_, (pp_error == PP_OK) ? info_.desc : -1); - callback_ = NULL; -#endif - } - - NaClFileInfo* mutable_info() { return &info_; } - - private: - NaClFileInfo info_; - PP_OpenResourceCompletionCallback callback_; - void* callback_user_data_; - DISALLOW_COPY_AND_ASSIGN(OpenManifestEntryAsyncCallback); -}; - namespace { class ManifestService { @@ -116,25 +81,6 @@ class ManifestService { return true; } - bool OpenResource(const char* entry_key, - PP_OpenResourceCompletionCallback callback, - void* callback_user_data) { - // Release this instance if the ServiceRuntime is already destructed. - if (anchor_->is_abandoned()) { - callback(callback_user_data, PP_kInvalidFileHandle); - delete this; - return false; - } - - OpenManifestEntryAsyncCallback* open_manifest_callback = - new OpenManifestEntryAsyncCallback(callback, callback_user_data); - plugin_reverse_->OpenManifestEntryAsync( - entry_key, - open_manifest_callback->mutable_info(), - open_manifest_callback); - return true; - } - static PP_Bool QuitTrampoline(void* user_data) { return PP_FromBool(static_cast<ManifestService*>(user_data)->Quit()); } @@ -144,15 +90,6 @@ class ManifestService { StartupInitializationComplete()); } - static PP_Bool OpenResourceTrampoline( - void* user_data, - const char* entry_key, - PP_OpenResourceCompletionCallback callback, - void* callback_user_data) { - return PP_FromBool(static_cast<ManifestService*>(user_data)->OpenResource( - entry_key, callback, callback_user_data)); - } - private: // Weak reference to check if plugin_reverse is legally accessible or not. nacl::WeakRefAnchor* anchor_; @@ -165,22 +102,11 @@ class ManifestService { const PPP_ManifestService kManifestServiceVTable = { &ManifestService::QuitTrampoline, &ManifestService::StartupInitializationCompleteTrampoline, - &ManifestService::OpenResourceTrampoline, }; } // namespace OpenManifestEntryResource::~OpenManifestEntryResource() { - MaybeRunCallback(PP_ERROR_ABORTED); -} - -void OpenManifestEntryResource::MaybeRunCallback(int32_t pp_error) { - if (!callback) - return; - - callback->Run(pp_error); - delete callback; - callback = NULL; } PluginReverseInterface::PluginReverseInterface( @@ -243,7 +169,7 @@ bool PluginReverseInterface::OpenManifestEntry(nacl::string url_key, // the main thread before this function can return. The pointers it contains // to stack variables will not leak. OpenManifestEntryResource* to_open = - new OpenManifestEntryResource(url_key, info, &op_complete, NULL); + new OpenManifestEntryResource(url_key, info, &op_complete); CHECK(to_open != NULL); NaClLog(4, "PluginReverseInterface::OpenManifestEntry: %s\n", url_key.c_str()); @@ -293,16 +219,6 @@ bool PluginReverseInterface::OpenManifestEntry(nacl::string url_key, return true; } -void PluginReverseInterface::OpenManifestEntryAsync( - const nacl::string& entry_key, - struct NaClFileInfo* info, - OpenManifestEntryAsyncCallback* callback) { - bool op_complete = false; - OpenManifestEntryResource to_open( - entry_key, info, &op_complete, callback); - OpenManifestEntry_MainThreadContinuation(&to_open, PP_OK); -} - // Transfer point from OpenManifestEntry() which runs on the main thread // (Some PPAPI actions -- like StreamAsFile -- can only run on the main thread). // OpenManifestEntry() is waiting on a condvar for this continuation to @@ -334,7 +250,6 @@ void PluginReverseInterface::OpenManifestEntry_MainThreadContinuation( p->file_info->desc = -1; // but failed. NaClXCondVarBroadcast(&cv_); } - p->MaybeRunCallback(PP_OK); return; } nacl::string mapped_url = pp::Var(pp_mapped_url).AsString(); @@ -354,7 +269,6 @@ void PluginReverseInterface::OpenManifestEntry_MainThreadContinuation( p->file_info->desc = -1; // but failed. NaClXCondVarBroadcast(&cv_); } - p->MaybeRunCallback(PP_OK); return; } @@ -362,9 +276,6 @@ void PluginReverseInterface::OpenManifestEntry_MainThreadContinuation( // to create another instance. OpenManifestEntryResource* open_cont = new OpenManifestEntryResource(*p); open_cont->url = mapped_url; - // Callback is now delegated from p to open_cont. So, here we manually clear - // complete callback. - p->callback = NULL; pp::CompletionCallback stream_cc = WeakRefNewCallback( anchor_, @@ -403,7 +314,6 @@ void PluginReverseInterface::StreamAsFile_MainThreadContinuation( *p->op_complete_ptr = true; NaClXCondVarBroadcast(&cv_); } - p->MaybeRunCallback(PP_OK); } bool PluginReverseInterface::CloseManifestEntry(int32_t desc) { diff --git a/ppapi/native_client/src/trusted/plugin/service_runtime.h b/ppapi/native_client/src/trusted/plugin/service_runtime.h index dbafee7..d53d612 100644 --- a/ppapi/native_client/src/trusted/plugin/service_runtime.h +++ b/ppapi/native_client/src/trusted/plugin/service_runtime.h @@ -34,7 +34,6 @@ class DescWrapper; namespace plugin { -class OpenManifestEntryAsyncCallback; class Plugin; class SrpcClient; class ServiceRuntime; @@ -69,20 +68,16 @@ struct OpenManifestEntryResource { public: OpenManifestEntryResource(const std::string& target_url, struct NaClFileInfo* finfo, - bool* op_complete, - OpenManifestEntryAsyncCallback* callback) + bool* op_complete) : url(target_url), file_info(finfo), - op_complete_ptr(op_complete), - callback(callback) {} + op_complete_ptr(op_complete) {} ~OpenManifestEntryResource(); - void MaybeRunCallback(int32_t pp_error); std::string url; struct NaClFileInfo* file_info; PP_NaClFileInfo pp_file_info; bool* op_complete_ptr; - OpenManifestEntryAsyncCallback* callback; }; // Do not invoke from the main thread, since the main methods will @@ -122,15 +117,6 @@ class PluginReverseInterface: public nacl::ReverseInterface { int64_t offset, int64_t bytes_to_write); - // This is a sibling of OpenManifestEntry. While OpenManifestEntry is - // a sync function and must be called on a non-main thread, - // OpenManifestEntryAsync must be called on the main thread. Upon completion - // (even on error), callback will be invoked. The caller has responsibility - // to keep the memory passed to info until callback is invoked. - void OpenManifestEntryAsync(const nacl::string& key, - struct NaClFileInfo* info, - OpenManifestEntryAsyncCallback* callback); - protected: virtual void OpenManifestEntry_MainThreadContinuation( OpenManifestEntryResource* p, |