Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8450)

Unified Diff: chrome/browser/win/jumplist.cc

Issue 2779403002: Migrate jumplist update task from FILE thread to base/task_scheduler (Closed)
Patch Set: Fix nits. Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/win/jumplist.h ('k') | chrome/browser/win/jumplist_file_util.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/win/jumplist.cc
diff --git a/chrome/browser/win/jumplist.cc b/chrome/browser/win/jumplist.cc
index 5cdfdee452271027e4bf9d59f23596cebf8ae10d..fc9f0be134d237fce0a66f08e566538b8345eecb 100644
--- a/chrome/browser/win/jumplist.cc
+++ b/chrome/browser/win/jumplist.cc
@@ -4,6 +4,8 @@
#include "chrome/browser/win/jumplist.h"
+#include <utility>
+
#include "base/bind.h"
#include "base/bind_helpers.h"
#include "base/command_line.h"
@@ -11,7 +13,7 @@
#include "base/macros.h"
#include "base/metrics/histogram_macros.h"
#include "base/path_service.h"
-#include "base/sequenced_task_runner.h"
+#include "base/single_thread_task_runner.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "base/task_scheduler/post_task.h"
@@ -228,12 +230,10 @@ bool UpdateJumpList(const wchar_t* app_id,
}
// Updates the jumplist, once all the data has been fetched.
-void RunUpdateOnFileThread(
- IncognitoModePrefs::Availability incognito_availability,
- const std::wstring& app_id,
- const base::FilePath& icon_dir,
- base::RefCountedData<JumpListData>* ref_counted_data,
- const scoped_refptr<base::SequencedTaskRunner>& sequenced_task_runner) {
+void RunUpdateJumpList(IncognitoModePrefs::Availability incognito_availability,
+ const std::wstring& app_id,
+ const base::FilePath& icon_dir,
+ base::RefCountedData<JumpListData>* ref_counted_data) {
JumpListData* data = &ref_counted_data->data;
ShellLinkItemList local_most_visited_pages;
ShellLinkItemList local_recently_closed_pages;
@@ -288,17 +288,6 @@ void RunUpdateOnFileThread(
// mentioned above.
UpdateJumpList(app_id.c_str(), local_most_visited_pages,
local_recently_closed_pages, incognito_availability);
-
- // Post a background task to delete JumpListIconsOld folder if it exists and
- // log the delete results to UMA.
- base::FilePath icon_dir_old = icon_dir.DirName().Append(
- icon_dir.BaseName().value() + FILE_PATH_LITERAL("Old"));
-
- if (base::DirectoryExists(icon_dir_old)) {
- sequenced_task_runner->PostTask(
- FROM_HERE, base::Bind(&DeleteDirectoryAndLogResults, icon_dir_old,
- kFileDeleteLimit));
- }
}
} // namespace
@@ -313,7 +302,7 @@ JumpList::JumpList(Profile* profile)
profile_(profile),
jumplist_data_(new base::RefCountedData<JumpListData>),
task_id_(base::CancelableTaskTracker::kBadTaskId),
- sequenced_task_runner_(base::CreateSequencedTaskRunnerWithTraits(
+ single_thread_task_runner_(base::CreateCOMSTATaskRunnerWithTraits(
base::TaskTraits()
.WithPriority(base::TaskPriority::BACKGROUND)
.WithShutdownBehavior(
@@ -531,7 +520,7 @@ void JumpList::StartLoadingFavicon() {
if (!waiting_for_icons) {
// No more favicons are needed by the application JumpList. Schedule a
- // RunUpdateOnFileThread call.
+ // RunUpdateJumpList call.
PostRunUpdate();
return;
}
@@ -557,7 +546,7 @@ void JumpList::OnFaviconDataAvailable(
JumpListData* data = &jumplist_data_->data;
base::AutoLock auto_lock(data->list_lock_);
// Attach the received data to the ShellLinkItem object.
- // This data will be decoded by the RunUpdateOnFileThread method.
+ // This data will be decoded by the RunUpdateJumpList method.
if (!image_result.image.IsEmpty() && !data->icon_urls_.empty() &&
data->icon_urls_.front().second.get()) {
gfx::ImageSkia image_skia = image_result.image.AsImageSkia();
@@ -615,11 +604,19 @@ void JumpList::DeferredRunUpdate() {
profile_ ? IncognitoModePrefs::GetAvailability(profile_->GetPrefs())
: IncognitoModePrefs::ENABLED;
- BrowserThread::PostTask(
- BrowserThread::FILE, FROM_HERE,
- base::Bind(&RunUpdateOnFileThread, incognito_availability, app_id_,
- icon_dir_, base::RetainedRef(jumplist_data_),
- sequenced_task_runner_));
+ // Post a task to update the jumplist used by the shell.
+ single_thread_task_runner_->PostTask(
+ FROM_HERE, base::Bind(&RunUpdateJumpList, incognito_availability, app_id_,
+ icon_dir_, base::RetainedRef(jumplist_data_)));
+
+ // Post a task to delete JumpListIconsOld folder if it exists and log the
+ // delete results to UMA.
+ base::FilePath icon_dir_old = icon_dir_.DirName().Append(
+ icon_dir_.BaseName().value() + FILE_PATH_LITERAL("Old"));
+
+ single_thread_task_runner_->PostTask(
+ FROM_HERE, base::Bind(&DeleteDirectoryAndLogResults,
+ std::move(icon_dir_old), kFileDeleteLimit));
}
void JumpList::TopSitesLoaded(history::TopSites* top_sites) {
« no previous file with comments | « chrome/browser/win/jumplist.h ('k') | chrome/browser/win/jumplist_file_util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698