| 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();
|
| }
|
|
|
|
|