Commit 9a8680d6 authored by Robert Liao's avatar Robert Liao Committed by Commit Bot

Move DefaultWebClientWorker to use the COM STA Task Runner

BUG=706512

Change-Id: I51f6817dd9267ce842d77e8a85c5c2e15dacba22
Reviewed-on: https://chromium-review.googlesource.com/574436Reviewed-by: default avatarNico Weber <thakis@chromium.org>
Commit-Queue: Robert Liao <robliao@chromium.org>
Cr-Commit-Position: refs/heads/master@{#487208}
parent e83710b0
......@@ -12,6 +12,7 @@
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
#include "base/task_scheduler/post_task.h"
#include "base/task_scheduler/task_traits.h"
#include "base/threading/thread_restrictions.h"
#include "build/build_config.h"
#include "chrome/browser/policy/policy_path_parser.h"
......@@ -180,9 +181,18 @@ DefaultWebClientWorker::GetTaskRunner() {
// singleton.
static scoped_refptr<base::SequencedTaskRunner>* task_runner = nullptr;
constexpr base::TaskTraits traits = {base::MayBlock()};
if (!task_runner) {
#if defined(OS_WIN)
// Shell integration calls like shell_integration::GetDefaultBrowser require
// the thread to have COM initialized.
task_runner = new scoped_refptr<base::SequencedTaskRunner>(
base::CreateSequencedTaskRunnerWithTraits({base::MayBlock()}));
base::CreateCOMSTATaskRunnerWithTraits(traits));
#else
task_runner = new scoped_refptr<base::SequencedTaskRunner>(
base::CreateSequencedTaskRunnerWithTraits(traits));
#endif
}
return *task_runner;
......
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