| 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 | 
|  |