diff options
author | hirono <hirono@chromium.org> | 2014-10-23 01:37:18 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-10-23 08:37:39 +0000 |
commit | cf350cbac0b3eb1f1a5d4705b928b1a51214a169 (patch) | |
tree | 4975ee14d2b7958f58f781654de39c2a2ff4d229 | |
parent | 643409b05a79948cab1f2b0b23e9a506b570375b (diff) | |
download | chromium_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.cc | 7 | ||||
-rw-r--r-- | chrome/browser/chromeos/file_manager/fileapi_util.h | 2 | ||||
-rw-r--r-- | chrome/browser/chromeos/file_manager/fileapi_util_unittest.cc | 46 | ||||
-rw-r--r-- | chrome/browser/file_select_helper.cc | 19 | ||||
-rw-r--r-- | chrome/browser/file_select_helper.h | 7 |
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. |