| Index: ppapi/proxy/ppb_file_system_proxy.cc
|
| diff --git a/ppapi/proxy/ppb_file_system_proxy.cc b/ppapi/proxy/ppb_file_system_proxy.cc
|
| index 36a36f11a56e154f9ede563048e9f787858305f7..74c8bcc95ee913da09a7a981dbcf35f665645075 100644
|
| --- a/ppapi/proxy/ppb_file_system_proxy.cc
|
| +++ b/ppapi/proxy/ppb_file_system_proxy.cc
|
| @@ -28,7 +28,7 @@ class FileSystem : public PluginResource {
|
| virtual FileSystem* AsFileSystem();
|
|
|
| PP_FileSystemType_Dev type_;
|
| - bool opened_;
|
| + bool called_open_;
|
| PP_CompletionCallback current_open_callback_;
|
|
|
| private:
|
| @@ -39,7 +39,7 @@ FileSystem::FileSystem(const HostResource& host_resource,
|
| PP_FileSystemType_Dev type)
|
| : PluginResource(host_resource),
|
| type_(type),
|
| - opened_(false),
|
| + called_open_(false),
|
| current_open_callback_(PP_MakeCompletionCallback(NULL, NULL)) {
|
| }
|
|
|
| @@ -89,8 +89,6 @@ int32_t Open(PP_Resource file_system,
|
| FileSystem* object = PluginResource::GetAs<FileSystem>(file_system);
|
| if (!object)
|
| return PP_ERROR_BADRESOURCE;
|
| - if (object->opened_)
|
| - return PP_OK;
|
|
|
| Dispatcher* dispatcher = PluginDispatcher::GetForInstance(object->instance());
|
| if (!dispatcher)
|
| @@ -98,7 +96,11 @@ int32_t Open(PP_Resource file_system,
|
|
|
| if (object->current_open_callback_.func)
|
| return PP_ERROR_INPROGRESS;
|
| + else if (object->called_open_)
|
| + return PP_ERROR_FAILED;
|
| +
|
| object->current_open_callback_ = callback;
|
| + object->called_open_ = true;
|
|
|
| dispatcher->Send(new PpapiHostMsg_PPBFileSystem_Open(
|
| INTERFACE_ID_PPB_FILE_SYSTEM, object->host_resource(), expected_size));
|
|
|