Commit b1710b68 authored by Sami Kyostila's avatar Sami Kyostila Committed by Commit Bot

chrome/browser/profile_resetter: Always specify thread affinity when posting tasks

*** Note: There is no behavior change from this patch. ***

The PostTask APIs will shortly be changed to require all tasks to explicitly
specify their thread affinity, i.e., whether the task should run on the thread
pool or a specific named thread such as a BrowserThread. This patch updates all
call sites with thread affinity annotation. We also remove the "WithTraits"
suffix to make the call sites more readable.

Before:

    // Thread pool task.
    base::PostTaskWithTraits(FROM_HERE, {...}, ...);

    // UI thread task.
    base::PostTaskWithTraits(FROM_HERE, {BrowserThread::UI, ...}, ...);

After:

    // Thread pool task.
    base::PostTask(FROM_HERE, {base::ThreadPool(), ...}, ...);

    // UI thread task.
    base::PostTask(FROM_HERE, {BrowserThread::UI, ...}, ...);

This patch was semi-automatically prepared with these steps:

    1. Patch in https://crrev.com/c/1635827 to make thread affinity a build-time
       requirement.
    2. Run an initial pass with a clang rewriter:
       https://chromium-review.googlesource.com/c/chromium/src/+/1635623
    3. ninja -C out/Debug | grep 'requested here' | cut -d: -f1-3 | sort | \
           uniq > errors.txt
    4. while read line; do
         f=$(echo $line | cut -d: -f 1)
         r=$(echo $line | cut -d: -f 2)
         c=$(echo $line | cut -d: -f 3)
         sed -i "${r}s/./&base::ThreadPool(),/$c" $f
       done < errors.txt
    5. GOTO 3 until build succeeds.
    6. Remove the "WithTraits" suffix from task API call sites:

       $ tools/git/mffr.py -i <(cat <<EOF
       [
         ["PostTaskWithTraits",
          "PostTask"],
         ["PostDelayedTaskWithTraits",
          "PostDelayedTask"],
         ["PostTaskWithTraitsAndReply",
          "PostTaskAndReply"],
         ["CreateTaskRunnerWithTraits",
          "CreateTaskRunner"],
         ["CreateSequencedTaskRunnerWithTraits",
          "CreateSequencedTaskRunner"],
         ["CreateUpdateableSequencedTaskRunnerWithTraits",
          "CreateUpdateableSequencedTaskRunner"],
         ["CreateSingleThreadTaskRunnerWithTraits",
          "CreateSingleThreadTaskRunner"],
         ["CreateCOMSTATaskRunnerWithTraits",
          "CreateCOMSTATaskRunner"]
       ]
       EOF
       )

This CL was uploaded by git cl split.

R=battre@chromium.org

Bug: 968047
Change-Id: Ic0cc4bde7101b3fe4b00454c64a63897d93d9f46
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1739830
Auto-Submit: Sami Kyöstilä <skyostil@chromium.org>
Reviewed-by: default avatarDominic Battré <battre@chromium.org>
Commit-Queue: Dominic Battré <battre@chromium.org>
Cr-Commit-Position: refs/heads/master@{#684466}
parent 32667616
...@@ -109,7 +109,7 @@ void ProfileResetter::Reset( ...@@ -109,7 +109,7 @@ void ProfileResetter::Reset(
CHECK_EQ(static_cast<ResettableFlags>(0), pending_reset_flags_); CHECK_EQ(static_cast<ResettableFlags>(0), pending_reset_flags_);
if (!resettable_flags) { if (!resettable_flags) {
base::PostTaskWithTraits(FROM_HERE, {content::BrowserThread::UI}, callback); base::PostTask(FROM_HERE, {content::BrowserThread::UI}, callback);
return; return;
} }
...@@ -160,8 +160,7 @@ void ProfileResetter::MarkAsDone(Resettable resettable) { ...@@ -160,8 +160,7 @@ void ProfileResetter::MarkAsDone(Resettable resettable) {
pending_reset_flags_ &= ~resettable; pending_reset_flags_ &= ~resettable;
if (!pending_reset_flags_) { if (!pending_reset_flags_) {
base::PostTaskWithTraits(FROM_HERE, {content::BrowserThread::UI}, base::PostTask(FROM_HERE, {content::BrowserThread::UI}, callback_);
callback_);
callback_.Reset(); callback_.Reset();
master_settings_.reset(); master_settings_.reset();
template_url_service_sub_.reset(); template_url_service_sub_.reset();
...@@ -329,8 +328,8 @@ void ProfileResetter::ResetPinnedTabs() { ...@@ -329,8 +328,8 @@ void ProfileResetter::ResetPinnedTabs() {
void ProfileResetter::ResetShortcuts() { void ProfileResetter::ResetShortcuts() {
#if defined(OS_WIN) #if defined(OS_WIN)
base::CreateCOMSTATaskRunnerWithTraits( base::CreateCOMSTATaskRunner(
{base::MayBlock(), base::TaskPriority::USER_VISIBLE}) {base::ThreadPool(), base::MayBlock(), base::TaskPriority::USER_VISIBLE})
->PostTaskAndReply(FROM_HERE, base::Bind(&ResetShortcutsOnBlockingThread), ->PostTaskAndReply(FROM_HERE, base::Bind(&ResetShortcutsOnBlockingThread),
base::Bind(&ProfileResetter::MarkAsDone, base::Bind(&ProfileResetter::MarkAsDone,
weak_ptr_factory_.GetWeakPtr(), SHORTCUTS)); weak_ptr_factory_.GetWeakPtr(), SHORTCUTS));
......
...@@ -137,8 +137,8 @@ void ResettableSettingsSnapshot::RequestShortcuts( ...@@ -137,8 +137,8 @@ void ResettableSettingsSnapshot::RequestShortcuts(
cancellation_flag_ = new SharedCancellationFlag; cancellation_flag_ = new SharedCancellationFlag;
#if defined(OS_WIN) #if defined(OS_WIN)
base::PostTaskAndReplyWithResult( base::PostTaskAndReplyWithResult(
base::CreateCOMSTATaskRunnerWithTraits( base::CreateCOMSTATaskRunner({base::ThreadPool(), base::MayBlock(),
{base::MayBlock(), base::TaskPriority::USER_VISIBLE}) base::TaskPriority::USER_VISIBLE})
.get(), .get(),
FROM_HERE, base::Bind(&GetChromeLaunchShortcuts, cancellation_flag_), FROM_HERE, base::Bind(&GetChromeLaunchShortcuts, cancellation_flag_),
base::Bind(&ResettableSettingsSnapshot::SetShortcutsAndReport, base::Bind(&ResettableSettingsSnapshot::SetShortcutsAndReport,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment