Index: chrome/browser/file_select_helper.cc |
diff --git a/chrome/browser/file_select_helper.cc b/chrome/browser/file_select_helper.cc |
index 1604b0de89c18e97e36566fdfaa5f235c0f2e038..8f6399dffe8cc1773fcef76c3b107b481d2fd9e5 100644 |
--- a/chrome/browser/file_select_helper.cc |
+++ b/chrome/browser/file_select_helper.cc |
@@ -12,6 +12,7 @@ |
#include "base/string_util.h" |
#include "base/utf_string_conversions.h" |
#include "net/base/mime_util.h" |
+#include "net/base/net_errors.h" |
#include "chrome/browser/platform_util.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/renderer_host/render_view_host.h" |
@@ -34,12 +35,6 @@ FileSelectHelper::~FileSelectHelper() { |
// away so they don't try and call back to us. |
if (select_file_dialog_.get()) |
select_file_dialog_->ListenerDestroyed(); |
- |
- // Stop any pending directory enumeration and prevent a callback. |
- if (directory_lister_.get()) { |
- directory_lister_->set_delegate(NULL); |
- directory_lister_->Cancel(); |
- } |
} |
void FileSelectHelper::FileSelected(const FilePath& path, |
@@ -86,16 +81,15 @@ void FileSelectHelper::FileSelectionCanceled(void* params) { |
} |
void FileSelectHelper::DirectorySelected(const FilePath& path) { |
- directory_lister_ = new net::DirectoryLister(path, |
- true, |
- net::DirectoryLister::NO_SORT, |
- this); |
- if (!directory_lister_->Start()) |
- FileSelectionCanceled(NULL); |
+ directory_lister_.reset( |
+ new net::DirectoryLister(path, |
+ true, |
+ net::DirectoryLister::NO_SORT, |
+ this)); |
+ directory_lister_->Start(); |
} |
-void FileSelectHelper::OnListFile( |
- const net::DirectoryLister::DirectoryListerData& data) { |
+void FileSelectHelper::OnListFile(const net::DirectoryLister::Data& data) { |
// Directory upload only cares about files. This util call just checks |
// the flags in the structure; there's no file I/O going on. |
if (file_util::FileEnumerator::IsDirectory(data.info)) |
@@ -108,14 +102,14 @@ void FileSelectHelper::OnListDone(int error) { |
if (!render_view_host_) |
return; |
- if (error) { |
+ if (error != net::OK) { |
FileSelectionCanceled(NULL); |
return; |
} |
render_view_host_->FilesSelectedInChooser(directory_lister_results_); |
render_view_host_ = NULL; |
- directory_lister_ = NULL; |
+ directory_lister_.reset(); |
directory_lister_results_.clear(); |
} |