summaryrefslogtreecommitdiffstats
path: root/ppapi/proxy
diff options
context:
space:
mode:
Diffstat (limited to 'ppapi/proxy')
-rw-r--r--ppapi/proxy/file_system_resource.cc17
-rw-r--r--ppapi/proxy/file_system_resource.h1
-rw-r--r--ppapi/proxy/ppapi_messages.h2
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)