summaryrefslogtreecommitdiffstats
path: root/ppapi/cpp/file_ref.cc
diff options
context:
space:
mode:
authornhiroki@chromium.org <nhiroki@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-09 11:09:20 +0000
committernhiroki@chromium.org <nhiroki@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-09 11:09:20 +0000
commite9c0335ee03f14e4f6577dec8d2f9c5744bc577f (patch)
tree1b5cab9e9df0d300de040d132aecb8a0573e94f5 /ppapi/cpp/file_ref.cc
parent0efdfd734dda4fcd167d66fb4225fd42c8d7fa02 (diff)
downloadchromium_src-e9c0335ee03f14e4f6577dec8d2f9c5744bc577f.zip
chromium_src-e9c0335ee03f14e4f6577dec8d2f9c5744bc577f.tar.gz
chromium_src-e9c0335ee03f14e4f6577dec8d2f9c5744bc577f.tar.bz2
Revert 243802 "PPAPI: Add new PPB_FileRef.MakeDirectory to suppo..."
This breaks examples of NaCl SDK. http://build.chromium.org/p/client.nacl.sdk/builders/mac-sdk-multi/builds/6796 > PPAPI: Add new PPB_FileRef.MakeDirectory to support exclusive operation > > Current PPB_FileRef.MakeDirectory returns PP_OK if a directory exists on > the given path. This makes it difficult to create POSIX compatible API on > top of PPAPI. > > This change introduces new PPB_FileRef.MakeDirectory as dev channel API. > That makes a new directory according to the given PP_MakeDirectoryFlags > values. The flags provide exclusive operation option. If exclusive flag > is specified and a directory exists on the given path, the function fails > and returns PP_ERROR_FILEEXISTS. > > > BUG=314879 > TEST=browser_tests > > Review URL: https://codereview.chromium.org/113363004 TBR=nhiroki@chromium.org Review URL: https://codereview.chromium.org/131473002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@243842 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/cpp/file_ref.cc')
-rw-r--r--ppapi/cpp/file_ref.cc91
1 files changed, 26 insertions, 65 deletions
diff --git a/ppapi/cpp/file_ref.cc b/ppapi/cpp/file_ref.cc
index f9294a7..0bc9487 100644
--- a/ppapi/cpp/file_ref.cc
+++ b/ppapi/cpp/file_ref.cc
@@ -4,7 +4,6 @@
#include "ppapi/cpp/file_ref.h"
-#include "ppapi/c/pp_bool.h"
#include "ppapi/c/pp_errors.h"
#include "ppapi/cpp/completion_callback.h"
#include "ppapi/cpp/directory_entry.h"
@@ -23,10 +22,6 @@ template <> const char* interface_name<PPB_FileRef_1_1>() {
return PPB_FILEREF_INTERFACE_1_1;
}
-template <> const char* interface_name<PPB_FileRef_1_2>() {
- return PPB_FILEREF_INTERFACE_1_2;
-}
-
} // namespace
FileRef::FileRef(PP_Resource resource) : Resource(resource) {
@@ -37,10 +32,7 @@ FileRef::FileRef(PassRef, PP_Resource resource) : Resource(PASS_REF, resource) {
FileRef::FileRef(const FileSystem& file_system,
const char* path) {
- if (has_interface<PPB_FileRef_1_2>()) {
- PassRefFromConstructor(get_interface<PPB_FileRef_1_2>()->Create(
- file_system.pp_resource(), path));
- } else if (has_interface<PPB_FileRef_1_1>()) {
+ if (has_interface<PPB_FileRef_1_1>()) {
PassRefFromConstructor(get_interface<PPB_FileRef_1_1>()->Create(
file_system.pp_resource(), path));
} else if (has_interface<PPB_FileRef_1_0>()) {
@@ -54,8 +46,6 @@ FileRef::FileRef(const FileRef& other)
}
PP_FileSystemType FileRef::GetFileSystemType() const {
- if (has_interface<PPB_FileRef_1_2>())
- return get_interface<PPB_FileRef_1_2>()->GetFileSystemType(pp_resource());
if (has_interface<PPB_FileRef_1_1>())
return get_interface<PPB_FileRef_1_1>()->GetFileSystemType(pp_resource());
if (has_interface<PPB_FileRef_1_0>())
@@ -64,10 +54,6 @@ PP_FileSystemType FileRef::GetFileSystemType() const {
}
Var FileRef::GetName() const {
- if (has_interface<PPB_FileRef_1_2>()) {
- return Var(PASS_REF,
- get_interface<PPB_FileRef_1_2>()->GetName(pp_resource()));
- }
if (has_interface<PPB_FileRef_1_1>()) {
return Var(PASS_REF,
get_interface<PPB_FileRef_1_1>()->GetName(pp_resource()));
@@ -80,10 +66,6 @@ Var FileRef::GetName() const {
}
Var FileRef::GetPath() const {
- if (has_interface<PPB_FileRef_1_2>()) {
- return Var(PASS_REF,
- get_interface<PPB_FileRef_1_2>()->GetPath(pp_resource()));
- }
if (has_interface<PPB_FileRef_1_1>()) {
return Var(PASS_REF,
get_interface<PPB_FileRef_1_1>()->GetPath(pp_resource()));
@@ -96,10 +78,6 @@ Var FileRef::GetPath() const {
}
FileRef FileRef::GetParent() const {
- if (has_interface<PPB_FileRef_1_2>()) {
- return FileRef(PASS_REF,
- get_interface<PPB_FileRef_1_2>()->GetParent(pp_resource()));
- }
if (has_interface<PPB_FileRef_1_1>()) {
return FileRef(PASS_REF,
get_interface<PPB_FileRef_1_1>()->GetParent(pp_resource()));
@@ -111,28 +89,34 @@ FileRef FileRef::GetParent() const {
return FileRef();
}
-int32_t FileRef::MakeDirectory(int32_t make_directory_flags,
- const CompletionCallback& cc) {
- if (has_interface<PPB_FileRef_1_2>()) {
- return get_interface<PPB_FileRef_1_2>()->MakeDirectory(
+int32_t FileRef::MakeDirectory(const CompletionCallback& cc) {
+ if (has_interface<PPB_FileRef_1_1>()) {
+ return get_interface<PPB_FileRef_1_1>()->MakeDirectory(
+ pp_resource(),
+ PP_FALSE, // make_ancestors
+ cc.pp_completion_callback());
+ }
+ if (has_interface<PPB_FileRef_1_0>()) {
+ return get_interface<PPB_FileRef_1_0>()->MakeDirectory(
pp_resource(),
- make_directory_flags,
+ PP_FALSE, // make_ancestors
cc.pp_completion_callback());
}
+ return cc.MayForce(PP_ERROR_NOINTERFACE);
+}
+
+int32_t FileRef::MakeDirectoryIncludingAncestors(
+ const CompletionCallback& cc) {
if (has_interface<PPB_FileRef_1_1>()) {
- if (make_directory_flags & ~PP_MAKEDIRECTORYFLAG_WITH_ANCESTORS)
- return cc.MayForce(PP_ERROR_NOTSUPPORTED);
return get_interface<PPB_FileRef_1_1>()->MakeDirectory(
pp_resource(),
- PP_FromBool(make_directory_flags & PP_MAKEDIRECTORYFLAG_WITH_ANCESTORS),
+ PP_TRUE, // make_ancestors
cc.pp_completion_callback());
}
if (has_interface<PPB_FileRef_1_0>()) {
- if (make_directory_flags & ~PP_MAKEDIRECTORYFLAG_WITH_ANCESTORS)
- return cc.MayForce(PP_ERROR_NOTSUPPORTED);
return get_interface<PPB_FileRef_1_0>()->MakeDirectory(
pp_resource(),
- PP_FromBool(make_directory_flags & PP_MAKEDIRECTORYFLAG_WITH_ANCESTORS),
+ PP_TRUE, // make_ancestors
cc.pp_completion_callback());
}
return cc.MayForce(PP_ERROR_NOINTERFACE);
@@ -141,11 +125,6 @@ int32_t FileRef::MakeDirectory(int32_t make_directory_flags,
int32_t FileRef::Touch(PP_Time last_access_time,
PP_Time last_modified_time,
const CompletionCallback& cc) {
- if (has_interface<PPB_FileRef_1_2>()) {
- return get_interface<PPB_FileRef_1_2>()->Touch(
- pp_resource(), last_access_time, last_modified_time,
- cc.pp_completion_callback());
- }
if (has_interface<PPB_FileRef_1_1>()) {
return get_interface<PPB_FileRef_1_1>()->Touch(
pp_resource(), last_access_time, last_modified_time,
@@ -160,10 +139,6 @@ int32_t FileRef::Touch(PP_Time last_access_time,
}
int32_t FileRef::Delete(const CompletionCallback& cc) {
- if (has_interface<PPB_FileRef_1_2>()) {
- return get_interface<PPB_FileRef_1_2>()->Delete(
- pp_resource(), cc.pp_completion_callback());
- }
if (has_interface<PPB_FileRef_1_1>()) {
return get_interface<PPB_FileRef_1_1>()->Delete(
pp_resource(), cc.pp_completion_callback());
@@ -177,10 +152,6 @@ int32_t FileRef::Delete(const CompletionCallback& cc) {
int32_t FileRef::Rename(const FileRef& new_file_ref,
const CompletionCallback& cc) {
- if (has_interface<PPB_FileRef_1_2>()) {
- return get_interface<PPB_FileRef_1_2>()->Rename(
- pp_resource(), new_file_ref.pp_resource(), cc.pp_completion_callback());
- }
if (has_interface<PPB_FileRef_1_1>()) {
return get_interface<PPB_FileRef_1_1>()->Rename(
pp_resource(), new_file_ref.pp_resource(), cc.pp_completion_callback());
@@ -193,29 +164,19 @@ int32_t FileRef::Rename(const FileRef& new_file_ref,
}
int32_t FileRef::Query(const CompletionCallbackWithOutput<PP_FileInfo>& cc) {
- if (has_interface<PPB_FileRef_1_2>()) {
- return get_interface<PPB_FileRef_1_2>()->Query(
- pp_resource(), cc.output(), cc.pp_completion_callback());
- }
- if (has_interface<PPB_FileRef_1_1>()) {
- return get_interface<PPB_FileRef_1_1>()->Query(
- pp_resource(), cc.output(), cc.pp_completion_callback());
- }
- return cc.MayForce(PP_ERROR_NOINTERFACE);
+ if (!has_interface<PPB_FileRef_1_1>())
+ return cc.MayForce(PP_ERROR_NOINTERFACE);
+ return get_interface<PPB_FileRef_1_1>()->Query(
+ pp_resource(), cc.output(), cc.pp_completion_callback());
}
int32_t FileRef::ReadDirectoryEntries(
const CompletionCallbackWithOutput<std::vector<DirectoryEntry> >&
callback) {
- if (has_interface<PPB_FileRef_1_2>()) {
- return get_interface<PPB_FileRef_1_2>()->ReadDirectoryEntries(
- pp_resource(), callback.output(), callback.pp_completion_callback());
- }
- if (has_interface<PPB_FileRef_1_1>()) {
- return get_interface<PPB_FileRef_1_1>()->ReadDirectoryEntries(
- pp_resource(), callback.output(), callback.pp_completion_callback());
- }
- return callback.MayForce(PP_ERROR_NOINTERFACE);
+ if (!has_interface<PPB_FileRef_1_1>())
+ return callback.MayForce(PP_ERROR_NOINTERFACE);
+ return get_interface<PPB_FileRef_1_1>()->ReadDirectoryEntries(
+ pp_resource(), callback.output(), callback.pp_completion_callback());
}
} // namespace pp