Chromium Code Reviews| Index: components/upload_list/upload_list.cc |
| diff --git a/components/upload_list/upload_list.cc b/components/upload_list/upload_list.cc |
| index 0b4a5515a1384946ca78b5f990f765a4c83da3f5..ad66de1a502be0325c0b29315fe1427866219a83 100644 |
| --- a/components/upload_list/upload_list.cc |
| +++ b/components/upload_list/upload_list.cc |
| @@ -45,7 +45,7 @@ void UploadList::LoadUploadListAsynchronously() { |
| DCHECK(thread_checker_.CalledOnValidThread()); |
| worker_pool_->PostTask( |
| FROM_HERE, |
| - base::Bind(&UploadList::LoadUploadListAndInformDelegateOfCompletion, |
| + base::Bind(&UploadList::PerformLoadAndNotifyDelegate, |
| this, base::ThreadTaskRunnerHandle::Get())); |
| } |
| @@ -54,36 +54,30 @@ void UploadList::ClearDelegate() { |
| delegate_ = NULL; |
| } |
| -void UploadList::LoadUploadListAndInformDelegateOfCompletion( |
| +void UploadList::PerformLoadAndNotifyDelegate( |
| const scoped_refptr<base::SequencedTaskRunner>& task_runner) { |
| - LoadUploadList(); |
| + std::vector<UploadInfo> uploads; |
| + LoadUploadList(&uploads); |
| task_runner->PostTask( |
| FROM_HERE, |
| - base::Bind(&UploadList::InformDelegateOfCompletion, this)); |
| + base::Bind(&UploadList::SetUploadsAndNotifyDelegate, this, |
| + std::move(uploads))); |
|
Mark Mentovai
2016/03/25 18:26:56
#include <utility>
Robert Sesek
2016/03/25 18:45:56
Done.
|
| } |
| -void UploadList::LoadUploadList() { |
| +void UploadList::LoadUploadList(std::vector<UploadInfo>* uploads) { |
| if (base::PathExists(upload_log_path_)) { |
| std::string contents; |
| base::ReadFileToString(upload_log_path_, &contents); |
| std::vector<std::string> log_entries = base::SplitString( |
| contents, base::kWhitespaceASCII, base::KEEP_WHITESPACE, |
| base::SPLIT_WANT_NONEMPTY); |
| - ClearUploads(); |
| - ParseLogEntries(log_entries); |
| + ParseLogEntries(log_entries, uploads); |
| } |
| } |
| -void UploadList::AppendUploadInfo(const UploadInfo& info) { |
| - uploads_.push_back(info); |
| -} |
| - |
| -void UploadList::ClearUploads() { |
| - uploads_.clear(); |
| -} |
| - |
| void UploadList::ParseLogEntries( |
| - const std::vector<std::string>& log_entries) { |
| + const std::vector<std::string>& log_entries, |
| + std::vector<UploadInfo>* uploads) { |
| std::vector<std::string>::const_reverse_iterator i; |
| for (i = log_entries.rbegin(); i != log_entries.rend(); ++i) { |
| std::vector<std::string> components = base::SplitString( |
| @@ -111,17 +105,18 @@ void UploadList::ParseLogEntries( |
| info.capture_time = base::Time::FromDoubleT(seconds_since_epoch); |
| } |
| - uploads_.push_back(info); |
| + uploads->push_back(info); |
| } |
| } |
| -void UploadList::InformDelegateOfCompletion() { |
| +void UploadList::SetUploadsAndNotifyDelegate(std::vector<UploadInfo> uploads) { |
| DCHECK(thread_checker_.CalledOnValidThread()); |
| + uploads_ = std::move(uploads); |
| if (delegate_) |
| delegate_->OnUploadListAvailable(); |
| } |
| -void UploadList::GetUploads(unsigned int max_count, |
| +void UploadList::GetUploads(size_t max_count, |
|
Mark Mentovai
2016/03/25 18:26:56
This max_count thing seems ill-advised, certainly
Robert Sesek
2016/03/25 18:45:56
Right. There's some more cleanup I'd like to do he
|
| std::vector<UploadInfo>* uploads) { |
| DCHECK(thread_checker_.CalledOnValidThread()); |
| std::copy(uploads_.begin(), |