Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1774)

Unified Diff: webkit/fileapi/isolated_file_util.cc

Issue 13850004: Ignore symlinks in Drag-and-drop'ed folder (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: indent fix Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | webkit/fileapi/isolated_file_util_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « no previous file | webkit/fileapi/isolated_file_util_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698