diff options
Diffstat (limited to 'ppapi/proxy')
-rw-r--r-- | ppapi/proxy/file_system_resource.cc | 17 | ||||
-rw-r--r-- | ppapi/proxy/file_system_resource.h | 1 | ||||
-rw-r--r-- | ppapi/proxy/ppapi_messages.h | 2 |
3 files changed, 15 insertions, 5 deletions
diff --git a/ppapi/proxy/file_system_resource.cc b/ppapi/proxy/file_system_resource.cc index 1839930..df8c390 100644 --- a/ppapi/proxy/file_system_resource.cc +++ b/ppapi/proxy/file_system_resource.cc @@ -21,7 +21,8 @@ FileSystemResource::FileSystemResource(Connection connection, : PluginResource(connection, instance), type_(type), called_open_(false), - callback_count_(0) { + callback_count_(0), + callback_result_(PP_OK) { DCHECK(type_ != PP_FILESYSTEMTYPE_INVALID); SendCreate(RENDERER, PpapiHostMsg_FileSystem_Create(type_)); SendCreate(BROWSER, PpapiHostMsg_FileSystem_Create(type_)); @@ -34,7 +35,9 @@ FileSystemResource::FileSystemResource(Connection connection, PP_FileSystemType type) : PluginResource(connection, instance), type_(type), - called_open_(true) { + called_open_(true), + callback_count_(0), + callback_result_(PP_OK) { DCHECK(type_ != PP_FILESYSTEMTYPE_INVALID); AttachToPendingHost(RENDERER, pending_renderer_id); AttachToPendingHost(BROWSER, pending_browser_id); @@ -99,18 +102,24 @@ void FileSystemResource::OpenComplete( scoped_refptr<TrackedCallback> callback, const ResourceMessageReplyParams& params) { ++callback_count_; + // Prioritize worse result since only one status can be returned. + if (params.result() != PP_OK) + callback_result_ = params.result(); // Received callback from browser and renderer. if (callback_count_ == 2) - callback->Run(params.result()); + callback->Run(callback_result_); } void FileSystemResource::InitIsolatedFileSystemComplete( const base::Callback<void(int32_t)>& callback, const ResourceMessageReplyParams& params) { ++callback_count_; + // Prioritize worse result since only one status can be returned. + if (params.result() != PP_OK) + callback_result_ = params.result(); // Received callback from browser and renderer. if (callback_count_ == 2) - callback.Run(params.result()); + callback.Run(callback_result_); } } // namespace proxy diff --git a/ppapi/proxy/file_system_resource.h b/ppapi/proxy/file_system_resource.h index a54a1c8..9029583 100644 --- a/ppapi/proxy/file_system_resource.h +++ b/ppapi/proxy/file_system_resource.h @@ -65,6 +65,7 @@ class PPAPI_PROXY_EXPORT FileSystemResource PP_FileSystemType type_; bool called_open_; uint32_t callback_count_; + int32_t callback_result_; DISALLOW_COPY_AND_ASSIGN(FileSystemResource); }; diff --git a/ppapi/proxy/ppapi_messages.h b/ppapi/proxy/ppapi_messages.h index 3e7b1d2..e41284c 100644 --- a/ppapi/proxy/ppapi_messages.h +++ b/ppapi/proxy/ppapi_messages.h @@ -93,7 +93,7 @@ IPC_ENUM_TRAITS(PP_ImageDataFormat) IPC_ENUM_TRAITS(PP_InputEvent_MouseButton) IPC_ENUM_TRAITS(PP_InputEvent_Type) IPC_ENUM_TRAITS_MAX_VALUE(PP_IsolatedFileSystemType_Private, - PP_ISOLATEDFILESYSTEMTYPE_PRIVATE_CRX) + PP_ISOLATEDFILESYSTEMTYPE_PRIVATE_PLUGINPRIVATE) IPC_ENUM_TRAITS_MAX_VALUE(PP_NetAddressFamily_Private, PP_NETADDRESSFAMILY_PRIVATE_IPV6) IPC_ENUM_TRAITS_MAX_VALUE(PP_NetworkList_State, PP_NETWORKLIST_STATE_UP) |