| Index: webkit/plugins/ppapi/ppb_directory_reader_impl.cc
|
| ===================================================================
|
| --- webkit/plugins/ppapi/ppb_directory_reader_impl.cc (revision 87436)
|
| +++ webkit/plugins/ppapi/ppb_directory_reader_impl.cc (working copy)
|
| @@ -9,8 +9,6 @@
|
| #include "ppapi/c/pp_completion_callback.h"
|
| #include "ppapi/c/pp_errors.h"
|
| #include "ppapi/c/dev/ppb_directory_reader_dev.h"
|
| -#include "ppapi/thunk/enter.h"
|
| -#include "ppapi/thunk/ppb_file_ref_api.h"
|
| #include "webkit/plugins/ppapi/common.h"
|
| #include "webkit/plugins/ppapi/file_callbacks.h"
|
| #include "webkit/plugins/ppapi/plugin_delegate.h"
|
| @@ -20,10 +18,6 @@
|
| #include "webkit/plugins/ppapi/ppb_file_system_impl.h"
|
| #include "webkit/plugins/ppapi/resource_tracker.h"
|
|
|
| -using ::ppapi::thunk::EnterResourceNoLock;
|
| -using ::ppapi::thunk::PPB_DirectoryReader_API;
|
| -using ::ppapi::thunk::PPB_FileRef_API;
|
| -
|
| namespace webkit {
|
| namespace ppapi {
|
|
|
| @@ -49,6 +43,38 @@
|
| #endif
|
| }
|
|
|
| +PP_Resource Create(PP_Resource directory_ref_id) {
|
| + scoped_refptr<PPB_FileRef_Impl> directory_ref(
|
| + Resource::GetAs<PPB_FileRef_Impl>(directory_ref_id));
|
| + if (!directory_ref)
|
| + return 0;
|
| +
|
| + PPB_DirectoryReader_Impl* reader =
|
| + new PPB_DirectoryReader_Impl(directory_ref);
|
| + return reader->GetReference();
|
| +}
|
| +
|
| +PP_Bool IsDirectoryReader(PP_Resource resource) {
|
| + return BoolToPPBool(!!Resource::GetAs<PPB_DirectoryReader_Impl>(resource));
|
| +}
|
| +
|
| +int32_t GetNextEntry(PP_Resource reader_id,
|
| + PP_DirectoryEntry_Dev* entry,
|
| + PP_CompletionCallback callback) {
|
| + scoped_refptr<PPB_DirectoryReader_Impl> reader(
|
| + Resource::GetAs<PPB_DirectoryReader_Impl>(reader_id));
|
| + if (!reader)
|
| + return PP_ERROR_BADRESOURCE;
|
| +
|
| + return reader->GetNextEntry(entry, callback);
|
| +}
|
| +
|
| +const PPB_DirectoryReader_Dev ppb_directoryreader = {
|
| + &Create,
|
| + &IsDirectoryReader,
|
| + &GetNextEntry
|
| +};
|
| +
|
| } // namespace
|
|
|
| PPB_DirectoryReader_Impl::PPB_DirectoryReader_Impl(
|
| @@ -62,15 +88,8 @@
|
| PPB_DirectoryReader_Impl::~PPB_DirectoryReader_Impl() {
|
| }
|
|
|
| -// static
|
| -PP_Resource PPB_DirectoryReader_Impl::Create(PP_Resource directory_ref) {
|
| - EnterResourceNoLock<PPB_FileRef_API> enter(directory_ref, true);
|
| - if (enter.failed())
|
| - return 0;
|
| -
|
| - PPB_DirectoryReader_Impl* reader = new PPB_DirectoryReader_Impl(
|
| - static_cast<PPB_FileRef_Impl*>(enter.object()));
|
| - return reader->GetReference();
|
| +const PPB_DirectoryReader_Dev* PPB_DirectoryReader_Impl::GetInterface() {
|
| + return &ppb_directoryreader;
|
| }
|
|
|
| PPB_DirectoryReader_Impl*
|
| @@ -78,10 +97,6 @@
|
| return this;
|
| }
|
|
|
| -PPB_DirectoryReader_API* PPB_DirectoryReader_Impl::AsPPB_DirectoryReader_API() {
|
| - return this;
|
| -}
|
| -
|
| int32_t PPB_DirectoryReader_Impl::GetNextEntry(
|
| PP_DirectoryEntry_Dev* entry,
|
| PP_CompletionCallback callback) {
|
| @@ -94,7 +109,7 @@
|
| return PP_OK;
|
| }
|
|
|
| - PluginInstance* instance = directory_ref_->instance();
|
| + PluginInstance* instance = directory_ref_->GetFileSystem()->instance();
|
| PP_Resource resource_id = GetReferenceNoAddRef();
|
| DCHECK(resource_id != 0);
|
| if (!instance->delegate()->ReadDirectory(
|
| @@ -111,7 +126,7 @@
|
| const std::vector<base::FileUtilProxy::Entry>& entries, bool has_more) {
|
| DCHECK(!entries.empty() || !has_more);
|
| has_more_ = has_more;
|
| - std::string dir_path = directory_ref_->virtual_path();
|
| + std::string dir_path = directory_ref_->GetPath();
|
| if (dir_path[dir_path.size() - 1] != '/')
|
| dir_path += '/';
|
| FilePath::StringType dir_file_path = UTF8StringToFilePathString(dir_path);
|
| @@ -135,7 +150,7 @@
|
| if (entry_->file_ref)
|
| ResourceTracker::Get()->UnrefResource(entry_->file_ref);
|
| PPB_FileRef_Impl* file_ref =
|
| - new PPB_FileRef_Impl(instance(), directory_ref_->file_system(),
|
| + new PPB_FileRef_Impl(instance(), directory_ref_->GetFileSystem(),
|
| FilePathStringToUTF8String(dir_entry.name));
|
| entry_->file_ref = file_ref->GetReference();
|
| entry_->file_type =
|
|
|