Index: chrome/browser/chromeos/arc/downloads_watcher/arc_downloads_watcher_service.cc |
diff --git a/chrome/browser/chromeos/arc/downloads_watcher/arc_downloads_watcher_service.cc b/chrome/browser/chromeos/arc/downloads_watcher/arc_downloads_watcher_service.cc |
index 7dfc420450e5c38bb353f392f156670a6b3aef8b..0c48e73ac5c2901ebc601e51d0e4cb8967a92719 100644 |
--- a/chrome/browser/chromeos/arc/downloads_watcher/arc_downloads_watcher_service.cc |
+++ b/chrome/browser/chromeos/arc/downloads_watcher/arc_downloads_watcher_service.cc |
@@ -18,6 +18,7 @@ |
#include "base/files/file_path_watcher.h" |
#include "base/memory/ptr_util.h" |
#include "base/strings/string_util.h" |
+#include "base/task_scheduler/post_task.h" |
#include "base/time/time.h" |
#include "chrome/browser/download/download_prefs.h" |
#include "chrome/browser/profiles/profile_manager.h" |
@@ -276,8 +277,8 @@ void ArcDownloadsWatcherService::DownloadsWatcher::OnFilePathChanged( |
void ArcDownloadsWatcherService::DownloadsWatcher::DelayBuildTimestampMap() { |
DCHECK_CURRENTLY_ON(BrowserThread::FILE); |
DCHECK(outstanding_task_); |
- base::PostTaskAndReplyWithResult( |
- BrowserThread::GetBlockingPool(), FROM_HERE, |
+ base::PostTaskWithTraitsAndReplyWithResult( |
+ FROM_HERE, base::TaskTraits().MayBlock(), |
base::Bind(&BuildTimestampMapCallback, downloads_dir_), |
base::Bind(&DownloadsWatcher::OnBuildTimestampMap, |
weak_ptr_factory_.GetWeakPtr())); |
@@ -301,15 +302,10 @@ void ArcDownloadsWatcherService::DownloadsWatcher::OnBuildTimestampMap( |
BrowserThread::PostTask( |
BrowserThread::UI, FROM_HERE, |
base::Bind(callback_, base::Passed(std::move(string_paths)))); |
- if (last_notify_time_ > snapshot_time) { |
- base::PostTaskAndReplyWithResult( |
- BrowserThread::GetBlockingPool(), FROM_HERE, |
- base::Bind(&BuildTimestampMapCallback, downloads_dir_), |
- base::Bind(&DownloadsWatcher::OnBuildTimestampMap, |
- weak_ptr_factory_.GetWeakPtr())); |
- } else { |
+ if (last_notify_time_ > snapshot_time) |
+ DelayBuildTimestampMap(); |
+ else |
outstanding_task_ = false; |
- } |
} |
ArcDownloadsWatcherService::ArcDownloadsWatcherService( |