| Index: webkit/fileapi/isolated_file_util.cc
|
| diff --git a/webkit/fileapi/isolated_file_util.cc b/webkit/fileapi/isolated_file_util.cc
|
| index 66abe551f4c4a5e9fd2e5a8eb18dcda901742aea..440d1686df5cfac3ecbd0a32507dfbcf4b2a0bc9 100644
|
| --- a/webkit/fileapi/isolated_file_util.cc
|
| +++ b/webkit/fileapi/isolated_file_util.cc
|
| @@ -53,57 +53,6 @@ class SetFileEnumerator : public FileSystemFileUtil::AbstractFileEnumerator {
|
| base::PlatformFileInfo file_info_;
|
| };
|
|
|
| -// Recursively enumerate each path from a given paths set.
|
| -class RecursiveSetFileEnumerator
|
| - : public FileSystemFileUtil::AbstractFileEnumerator {
|
| - public:
|
| - explicit RecursiveSetFileEnumerator(const std::vector<FileInfo>& files)
|
| - : files_(files) {
|
| - file_iter_ = files_.begin();
|
| - current_enumerator_.reset(new SetFileEnumerator(files));
|
| - }
|
| - virtual ~RecursiveSetFileEnumerator() {}
|
| -
|
| - // AbstractFileEnumerator overrides.
|
| - virtual base::FilePath Next() OVERRIDE;
|
| - virtual int64 Size() OVERRIDE {
|
| - DCHECK(current_enumerator_.get());
|
| - return current_enumerator_->Size();
|
| - }
|
| - virtual bool IsDirectory() OVERRIDE {
|
| - DCHECK(current_enumerator_.get());
|
| - return current_enumerator_->IsDirectory();
|
| - }
|
| - virtual base::Time LastModifiedTime() OVERRIDE {
|
| - DCHECK(current_enumerator_.get());
|
| - return current_enumerator_->LastModifiedTime();
|
| - }
|
| -
|
| - private:
|
| - std::vector<FileInfo> files_;
|
| - std::vector<FileInfo>::iterator file_iter_;
|
| - scoped_ptr<FileSystemFileUtil::AbstractFileEnumerator> current_enumerator_;
|
| -};
|
| -
|
| -base::FilePath RecursiveSetFileEnumerator::Next() {
|
| - if (current_enumerator_.get()) {
|
| - base::FilePath path = current_enumerator_->Next();
|
| - if (!path.empty())
|
| - return path;
|
| - }
|
| -
|
| - // We reached the end.
|
| - if (file_iter_ == files_.end())
|
| - return base::FilePath();
|
| -
|
| - // Enumerates subdirectories of the next path.
|
| - FileInfo& next_file = *file_iter_++;
|
| - current_enumerator_ = NativeFileUtil::CreateFileEnumerator(
|
| - next_file.path, true /* recursive */);
|
| - DCHECK(current_enumerator_.get());
|
| - return current_enumerator_->Next();
|
| -}
|
| -
|
| } // namespace
|
|
|
| //-------------------------------------------------------------------------
|
| @@ -163,20 +112,20 @@ scoped_ptr<FileSystemFileUtil::AbstractFileEnumerator>
|
| FileSystemOperationContext* context,
|
| const FileSystemURL& root,
|
| bool recursive) {
|
| + if (recursive) {
|
| + NOTREACHED() << "Recursive enumeration not supported.";
|
| + return scoped_ptr<FileSystemFileUtil::AbstractFileEnumerator>(
|
| + new EmptyFileEnumerator);
|
| + }
|
| DCHECK(root.is_valid());
|
| if (!root.path().empty())
|
| - return NativeFileUtil::CreateFileEnumerator(root.path(), recursive);
|
| + return LocalFileUtil::CreateFileEnumerator(context, root, recursive);
|
|
|
| // Root path case.
|
| std::vector<FileInfo> toplevels;
|
| IsolatedContext::GetInstance()->GetDraggedFileInfo(
|
| root.filesystem_id(), &toplevels);
|
| - if (!recursive) {
|
| - return make_scoped_ptr(new SetFileEnumerator(toplevels))
|
| - .PassAs<FileSystemFileUtil::AbstractFileEnumerator>();
|
| - }
|
| - return make_scoped_ptr(new RecursiveSetFileEnumerator(toplevels))
|
| - .PassAs<FileSystemFileUtil::AbstractFileEnumerator>();
|
| + return scoped_ptr<AbstractFileEnumerator>(new SetFileEnumerator(toplevels));
|
| }
|
|
|
| } // namespace fileapi
|
|
|