| Index: chrome/browser/ui/webui/chromeos/login/l10n_util.cc
|
| diff --git a/chrome/browser/ui/webui/chromeos/login/l10n_util.cc b/chrome/browser/ui/webui/chromeos/login/l10n_util.cc
|
| index 8373721721c2700b978bff049f37ef929a1b07fa..3b961134ff54b036f48208118fff72504ee55089 100644
|
| --- a/chrome/browser/ui/webui/chromeos/login/l10n_util.cc
|
| +++ b/chrome/browser/ui/webui/chromeos/login/l10n_util.cc
|
| @@ -24,8 +24,9 @@
|
| #include "base/strings/stringprintf.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "base/task_runner_util.h"
|
| -#include "base/threading/sequenced_worker_pool.h"
|
| -#include "base/threading/thread_task_runner_handle.h"
|
| +#include "base/task_scheduler/post_task.h"
|
| +#include "base/threading/sequenced_task_runner_handle.h"
|
| +#include "base/threading/thread_restrictions.h"
|
| #include "base/values.h"
|
| #include "chrome/browser/browser_process.h"
|
| #include "chrome/browser/chromeos/customization/customization_document.h"
|
| @@ -45,8 +46,6 @@ const char kMostRelevantLanguagesDivider[] = "MOST_RELEVANT_LANGUAGES_DIVIDER";
|
|
|
| namespace {
|
|
|
| -const char kSequenceToken[] = "chromeos_login_l10n_util";
|
| -
|
| std::unique_ptr<base::DictionaryValue> CreateInputMethodsEntry(
|
| const input_method::InputMethodDescriptor& method,
|
| const std::string selected) {
|
| @@ -346,12 +345,11 @@ std::string CalculateSelectedLanguage(const std::string& requested_locale,
|
| return loaded_locale;
|
| }
|
|
|
| -void ResolveLanguageListOnBlockingPool(
|
| +void ResolveLanguageListInThreadPool(
|
| std::unique_ptr<chromeos::locale_util::LanguageSwitchResult>
|
| language_switch_result,
|
| const scoped_refptr<base::TaskRunner> task_runner,
|
| const UILanguageListResolvedCallback& resolved_callback) {
|
| - // DCHECK(task_runner->RunsTasksInCurrentSequence());
|
| base::ThreadRestrictions::AssertIOAllowed();
|
|
|
| std::string selected_language;
|
| @@ -428,10 +426,11 @@ void ResolveUILanguageList(
|
| const UILanguageListResolvedCallback& callback) {
|
| DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
|
|
|
| - content::BrowserThread::GetBlockingPool()->PostTask(
|
| - FROM_HERE, base::Bind(&ResolveLanguageListOnBlockingPool,
|
| - base::Passed(&language_switch_result),
|
| - base::ThreadTaskRunnerHandle::Get(), callback));
|
| + base::PostTaskWithTraits(
|
| + FROM_HERE, {base::MayBlock()},
|
| + base::BindOnce(&ResolveLanguageListInThreadPool,
|
| + base::Passed(&language_switch_result),
|
| + base::SequencedTaskRunnerHandle::Get(), callback));
|
| }
|
|
|
| std::unique_ptr<base::ListValue> GetMinimalUILanguageList() {
|
| @@ -578,21 +577,16 @@ std::unique_ptr<base::ListValue> GetAndActivateLoginKeyboardLayouts(
|
| void GetKeyboardLayoutsForLocale(
|
| const GetKeyboardLayoutsForLocaleCallback& callback,
|
| const std::string& locale) {
|
| - base::SequencedWorkerPool* worker_pool =
|
| - content::BrowserThread::GetBlockingPool();
|
| - scoped_refptr<base::SequencedTaskRunner> background_task_runner =
|
| - worker_pool->GetSequencedTaskRunnerWithShutdownBehavior(
|
| - worker_pool->GetNamedSequenceToken(kSequenceToken),
|
| - base::SequencedWorkerPool::SKIP_ON_SHUTDOWN);
|
| -
|
| // Resolve |locale| on a background thread, then continue on the current
|
| // thread.
|
| std::string (*get_application_locale)(const std::string&, bool) =
|
| &l10n_util::GetApplicationLocale;
|
| - base::PostTaskAndReplyWithResult(
|
| - background_task_runner.get(), FROM_HERE,
|
| - base::Bind(get_application_locale, locale, false /* set_icu_locale */),
|
| - base::Bind(&GetKeyboardLayoutsForResolvedLocale, locale, callback));
|
| + base::PostTaskWithTraitsAndReplyWithResult(
|
| + FROM_HERE,
|
| + {base::MayBlock(), base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN},
|
| + base::BindOnce(get_application_locale, locale,
|
| + false /* set_icu_locale */),
|
| + base::BindOnce(&GetKeyboardLayoutsForResolvedLocale, locale, callback));
|
| }
|
|
|
| std::unique_ptr<base::DictionaryValue> GetCurrentKeyboardLayout() {
|
|
|