summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhirono <hirono@chromium.org>2014-10-23 01:37:18 -0700
committerCommit bot <commit-bot@chromium.org>2014-10-23 08:37:39 +0000
commitcf350cbac0b3eb1f1a5d4705b928b1a51214a169 (patch)
tree4975ee14d2b7958f58f781654de39c2a2ff4d229
parent643409b05a79948cab1f2b0b23e9a506b570375b (diff)
downloadchromium_src-cf350cbac0b3eb1f1a5d4705b928b1a51214a169.zip
chromium_src-cf350cbac0b3eb1f1a5d4705b928b1a51214a169.tar.gz
chromium_src-cf350cbac0b3eb1f1a5d4705b928b1a51214a169.tar.bz2
Files.app: Clean the callback of ConvertSelectedFileInfoListTofileChooserFileInfoList.
Previously ConvertSelectedFileInfoListTofileChooserFileInfoList passes the result by using scoped_ptr, but it does not need to. The CL cleans the function signature and removed unused wrapper function in FileSelectHelper. BUG=126902 TEST=None Review URL: https://codereview.chromium.org/673603003 Cr-Commit-Position: refs/heads/master@{#300856}
-rw-r--r--chrome/browser/chromeos/file_manager/fileapi_util.cc7
-rw-r--r--chrome/browser/chromeos/file_manager/fileapi_util.h2
-rw-r--r--chrome/browser/chromeos/file_manager/fileapi_util_unittest.cc46
-rw-r--r--chrome/browser/file_select_helper.cc19
-rw-r--r--chrome/browser/file_select_helper.h7
5 files changed, 37 insertions, 44 deletions
diff --git a/chrome/browser/chromeos/file_manager/fileapi_util.cc b/chrome/browser/chromeos/file_manager/fileapi_util.cc
index 38d00a5..15550c5 100644
--- a/chrome/browser/chromeos/file_manager/fileapi_util.cc
+++ b/chrome/browser/chromeos/file_manager/fileapi_util.cc
@@ -394,13 +394,16 @@ class ConvertSelectedFileInfoListToFileChooserFileInfoListImpl {
// Returns a result to the |callback_|.
void NotifyComplete(Lifetime /* lifetime */) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
- callback_.Run(chooser_info_list_.Pass());
+ callback_.Run(*chooser_info_list_);
+ // Reset the list so that the file systems are not revoked at the
+ // destructor.
+ chooser_info_list_.reset();
}
// Returns an empty list to the |callback_|.
void NotifyError(Lifetime /* lifetime */) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
- callback_.Run(make_scoped_ptr<FileChooserFileInfoList>(NULL));
+ callback_.Run(FileChooserFileInfoList());
}
scoped_refptr<storage::FileSystemContext> context_;
diff --git a/chrome/browser/chromeos/file_manager/fileapi_util.h b/chrome/browser/chromeos/file_manager/fileapi_util.h
index 55f6994..3756c7b 100644
--- a/chrome/browser/chromeos/file_manager/fileapi_util.h
+++ b/chrome/browser/chromeos/file_manager/fileapi_util.h
@@ -73,7 +73,7 @@ typedef base::Callback<void(scoped_ptr<
// The callback used by
// ConvertFileSelectedInfoListToFileChooserFileInfoList. Returns the result of
// the conversion as a list.
-typedef base::Callback<void(scoped_ptr<FileChooserFileInfoList>)>
+typedef base::Callback<void(const FileChooserFileInfoList&)>
FileChooserFileInfoListCallback;
// Returns a file system context associated with the given profile and the
diff --git a/chrome/browser/chromeos/file_manager/fileapi_util_unittest.cc b/chrome/browser/chromeos/file_manager/fileapi_util_unittest.cc
index 0ad49e5..0b837e2 100644
--- a/chrome/browser/chromeos/file_manager/fileapi_util_unittest.cc
+++ b/chrome/browser/chromeos/file_manager/fileapi_util_unittest.cc
@@ -24,9 +24,9 @@ namespace util {
namespace {
// Passes the |result| to the |output| pointer.
-void PassFileChooserFileInfoList(scoped_ptr<FileChooserFileInfoList>* output,
- scoped_ptr<FileChooserFileInfoList> result) {
- *output = result.Pass();
+void PassFileChooserFileInfoList(FileChooserFileInfoList* output,
+ const FileChooserFileInfoList& result) {
+ *output = result;
}
// Creates the drive integration service for the |profile|.
@@ -106,7 +106,7 @@ TEST(FileManagerFileAPIUtilTest,
}
// Run the test target.
- scoped_ptr<FileChooserFileInfoList> result;
+ FileChooserFileInfoList result;
ConvertSelectedFileInfoListToFileChooserFileInfoList(
context,
GURL("http://example.com"),
@@ -115,30 +115,28 @@ TEST(FileManagerFileAPIUtilTest,
content::RunAllBlockingPoolTasksUntilIdle();
// Check the result.
- ASSERT_TRUE(result);
- ASSERT_EQ(3u, result->size());
-
- EXPECT_EQ(base::FilePath(FILE_PATH_LITERAL("/native/File 1.txt")),
- result->at(0).file_path);
- EXPECT_EQ("display_name", result->at(0).display_name);
- EXPECT_FALSE(result->at(0).file_system_url.is_valid());
-
- EXPECT_EQ(base::FilePath(FILE_PATH_LITERAL("/native/cache/xxx")),
- result->at(1).file_path);
- EXPECT_EQ("display_name", result->at(1).display_name);
- EXPECT_FALSE(result->at(1).file_system_url.is_valid());
-
- EXPECT_EQ(base::FilePath(FILE_PATH_LITERAL(
- "/special/drive-test-user-hash/root/File 1.txt")),
- result->at(2).file_path);
- EXPECT_TRUE(result->at(2).display_name.empty());
- EXPECT_TRUE(result->at(2).file_system_url.is_valid());
+ ASSERT_EQ(3u, result.size());
+
+ EXPECT_EQ(FILE_PATH_LITERAL("/native/File 1.txt"),
+ result[0].file_path.value());
+ EXPECT_EQ("display_name", result[0].display_name);
+ EXPECT_FALSE(result[0].file_system_url.is_valid());
+
+ EXPECT_EQ(FILE_PATH_LITERAL("/native/cache/xxx"),
+ result[1].file_path.value());
+ EXPECT_EQ("display_name", result[1].display_name);
+ EXPECT_FALSE(result[1].file_system_url.is_valid());
+
+ EXPECT_EQ(FILE_PATH_LITERAL("/special/drive-test-user-hash/root/File 1.txt"),
+ result[2].file_path.value());
+ EXPECT_TRUE(result[2].display_name.empty());
+ EXPECT_TRUE(result[2].file_system_url.is_valid());
const storage::FileSystemURL url =
- context->CrackURL(result->at(2).file_system_url);
+ context->CrackURL(result[2].file_system_url);
EXPECT_EQ(GURL("http://example.com"), url.origin());
EXPECT_EQ(storage::kFileSystemTypeIsolated, url.mount_type());
EXPECT_EQ(storage::kFileSystemTypeDrive, url.type());
- EXPECT_EQ(26u, result->at(2).length);
+ EXPECT_EQ(26u, result[2].length);
}
} // namespace
diff --git a/chrome/browser/file_select_helper.cc b/chrome/browser/file_select_helper.cc
index 4fd3f2e..37f85fb 100644
--- a/chrome/browser/file_select_helper.cc
+++ b/chrome/browser/file_select_helper.cc
@@ -249,7 +249,7 @@ void FileSelectHelper::NotifyRenderViewHostAndEnd(
web_contents_->GetSiteInstance()->GetSiteURL(),
files,
base::Bind(
- &FileSelectHelper::ProcessSelectedFilesChromeOSAfterConversion,
+ &FileSelectHelper::NotifyRenderViewHostAndEndAfterConversion,
this));
return;
}
@@ -262,25 +262,18 @@ void FileSelectHelper::NotifyRenderViewHostAndEnd(
chooser_file.display_name = file.display_name;
chooser_files.push_back(chooser_file);
}
- render_view_host_->FilesSelectedInChooser(chooser_files, dialog_mode_);
- // No members should be accessed from here on.
- RunFileChooserEnd();
+ NotifyRenderViewHostAndEndAfterConversion(chooser_files);
}
-#if defined(OS_CHROMEOS)
-void FileSelectHelper::ProcessSelectedFilesChromeOSAfterConversion(
- scoped_ptr<std::vector<content::FileChooserFileInfo>> list) {
- if (render_view_host_) {
- render_view_host_->FilesSelectedInChooser(
- list ? *list : std::vector<content::FileChooserFileInfo>(),
- dialog_mode_);
- }
+void FileSelectHelper::NotifyRenderViewHostAndEndAfterConversion(
+ const std::vector<content::FileChooserFileInfo>& list) {
+ if (render_view_host_)
+ render_view_host_->FilesSelectedInChooser(list, dialog_mode_);
// No members should be accessed from here on.
RunFileChooserEnd();
}
-#endif // defined(OS_CHROMEOS)
void FileSelectHelper::DeleteTemporaryFiles() {
BrowserThread::PostTask(BrowserThread::FILE,
diff --git a/chrome/browser/file_select_helper.h b/chrome/browser/file_select_helper.h
index c94e411..06672ba 100644
--- a/chrome/browser/file_select_helper.h
+++ b/chrome/browser/file_select_helper.h
@@ -146,11 +146,10 @@ class FileSelectHelper
// file chooser.
void NotifyRenderViewHostAndEnd(
const std::vector<ui::SelectedFileInfo>& files);
-#if defined(OS_CHROMEOS)
+
// Sends the result to the render process, and call |RunFileChooserEnd|.
- void ProcessSelectedFilesChromeOSAfterConversion(
- scoped_ptr<std::vector<content::FileChooserFileInfo>> list);
-#endif // defined(OS_CHROMEOS)
+ void NotifyRenderViewHostAndEndAfterConversion(
+ const std::vector<content::FileChooserFileInfo>& list);
// Schedules the deletion of the files in |temporary_files_| and clears the
// vector.