diff --git a/ash/shelf/shelf_view_unittest.cc b/ash/shelf/shelf_view_unittest.cc index 45c6a5cc51357..ba3874cd940a9 100644 --- a/ash/shelf/shelf_view_unittest.cc +++ b/ash/shelf/shelf_view_unittest.cc @@ -2624,12 +2624,12 @@ class ScopedMockTaskRunnerWrapper { public: ScopedMockTaskRunnerWrapper() { mock_task_runner_ = new base::TestMockTimeTaskRunner; - previous_task_runner_ = base::MessageLoop::current()->task_runner(); + previous_task_runner_ = base::ThreadTaskRunnerHandle::Get(); base::MessageLoop::current()->SetTaskRunner(mock_task_runner_); } ~ScopedMockTaskRunnerWrapper() { - DCHECK_EQ(mock_task_runner_, base::MessageLoop::current()->task_runner()); + DCHECK_EQ(mock_task_runner_, base::ThreadTaskRunnerHandle::Get()); mock_task_runner_->ClearPendingTasks(); base::MessageLoop::current()->SetTaskRunner(previous_task_runner_); } diff --git a/base/memory/ref_counted_delete_on_message_loop.h b/base/memory/ref_counted_delete_on_message_loop.h index de194e8479185..eac1add50fe55 100644 --- a/base/memory/ref_counted_delete_on_message_loop.h +++ b/base/memory/ref_counted_delete_on_message_loop.h @@ -33,10 +33,8 @@ namespace base { template <class T> class RefCountedDeleteOnMessageLoop : public subtle::RefCountedThreadSafeBase { public: - // This constructor will accept a MessageL00pProxy object, but new code should - // prefer a SingleThreadTaskRunner. A SingleThreadTaskRunner for the - // MessageLoop on the current thread can be acquired by calling - // MessageLoop::current()->task_runner(). + // A SingleThreadTaskRunner for the current thread can be acquired by calling + // ThreadTaskRunnerHandle::Get(). RefCountedDeleteOnMessageLoop( scoped_refptr<SingleThreadTaskRunner> task_runner) : task_runner_(std::move(task_runner)) { diff --git a/base/message_loop/message_loop_test.cc b/base/message_loop/message_loop_test.cc index 4a690c0e66324..6ffb16d05aedf 100644 --- a/base/message_loop/message_loop_test.cc +++ b/base/message_loop/message_loop_test.cc @@ -15,6 +15,7 @@ #include "base/single_thread_task_runner.h" #include "base/synchronization/waitable_event.h" #include "base/threading/thread.h" +#include "base/threading/thread_task_runner_handle.h" namespace base { namespace test { @@ -97,20 +98,19 @@ void RunTest_PostTask(MessagePumpFactory factory) { // Add tests to message loop scoped_refptr<Foo> foo(new Foo()); std::string a("a"), b("b"), c("c"), d("d"); - MessageLoop::current()->task_runner()->PostTask(FROM_HERE, - Bind(&Foo::Test0, foo)); - MessageLoop::current()->task_runner()->PostTask( - FROM_HERE, Bind(&Foo::Test1ConstRef, foo, a)); - MessageLoop::current()->task_runner()->PostTask( - FROM_HERE, Bind(&Foo::Test1Ptr, foo, &b)); - MessageLoop::current()->task_runner()->PostTask( - FROM_HERE, Bind(&Foo::Test1Int, foo, 100)); - MessageLoop::current()->task_runner()->PostTask( - FROM_HERE, Bind(&Foo::Test2Ptr, foo, &a, &c)); - MessageLoop::current()->task_runner()->PostTask( - FROM_HERE, Bind(&Foo::Test2Mixed, foo, a, &d)); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, Bind(&Foo::Test0, foo)); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + Bind(&Foo::Test1ConstRef, foo, a)); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + Bind(&Foo::Test1Ptr, foo, &b)); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + Bind(&Foo::Test1Int, foo, 100)); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + Bind(&Foo::Test2Ptr, foo, &a, &c)); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + Bind(&Foo::Test2Mixed, foo, a, &d)); // After all tests, post a message that will shut down the message loop - MessageLoop::current()->task_runner()->PostTask( + ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, Bind(&MessageLoop::QuitWhenIdle, Unretained(MessageLoop::current()))); @@ -302,7 +302,7 @@ class RecordDeletionProbe : public RefCounted<RecordDeletionProbe> { ~RecordDeletionProbe() { *was_deleted_ = true; if (post_on_delete_.get()) - MessageLoop::current()->task_runner()->PostTask( + ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, Bind(&RecordDeletionProbe::Run, post_on_delete_)); } @@ -351,8 +351,8 @@ void RunTest_EnsureDeletion_Chain(MessagePumpFactory factory) { void NestingFunc(int* depth) { if (*depth > 0) { *depth -= 1; - MessageLoop::current()->task_runner()->PostTask(FROM_HERE, - Bind(&NestingFunc, depth)); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + Bind(&NestingFunc, depth)); MessageLoop::current()->SetNestableTasksAllowed(true); RunLoop().Run(); @@ -365,8 +365,8 @@ void RunTest_Nesting(MessagePumpFactory factory) { MessageLoop loop(std::move(pump)); int depth = 100; - MessageLoop::current()->task_runner()->PostTask(FROM_HERE, - Bind(&NestingFunc, &depth)); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + Bind(&NestingFunc, &depth)); RunLoop().Run(); EXPECT_EQ(depth, 0); } @@ -403,10 +403,9 @@ void RunNestedLoop(TestNestingObserver* observer, RunLoop nested_loop; // Verify that by the time the first task is run the observer has seen the // message loop begin. - MessageLoop::current()->task_runner()->PostTask( + ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, Bind(&ExpectOneBeginNestedLoop, observer)); - MessageLoop::current()->task_runner()->PostTask(FROM_HERE, - nested_loop.QuitClosure()); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, nested_loop.QuitClosure()); nested_loop.Run(); // Quitting message loops doesn't change the begin count. @@ -518,7 +517,7 @@ void RecursiveFunc(TaskList* order, int cookie, int depth, if (depth > 0) { if (is_reentrant) MessageLoop::current()->SetNestableTasksAllowed(true); - MessageLoop::current()->task_runner()->PostTask( + ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, Bind(&RecursiveFunc, order, cookie, depth - 1, is_reentrant)); } @@ -536,12 +535,12 @@ void RunTest_RecursiveDenial1(MessagePumpFactory factory) { EXPECT_TRUE(MessageLoop::current()->NestableTasksAllowed()); TaskList order; - MessageLoop::current()->task_runner()->PostTask( + ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, Bind(&RecursiveFunc, &order, 1, 2, false)); - MessageLoop::current()->task_runner()->PostTask( + ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, Bind(&RecursiveFunc, &order, 2, 2, false)); - MessageLoop::current()->task_runner()->PostTask(FROM_HERE, - Bind(&QuitFunc, &order, 3)); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + Bind(&QuitFunc, &order, 3)); RunLoop().Run(); @@ -580,13 +579,13 @@ void RunTest_RecursiveDenial3(MessagePumpFactory factory) { EXPECT_TRUE(MessageLoop::current()->NestableTasksAllowed()); TaskList order; - MessageLoop::current()->task_runner()->PostTask( + ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, Bind(&RecursiveSlowFunc, &order, 1, 2, false)); - MessageLoop::current()->task_runner()->PostTask( + ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, Bind(&RecursiveSlowFunc, &order, 2, 2, false)); - MessageLoop::current()->task_runner()->PostDelayedTask( + ThreadTaskRunnerHandle::Get()->PostDelayedTask( FROM_HERE, Bind(&OrderedFunc, &order, 3), TimeDelta::FromMilliseconds(5)); - MessageLoop::current()->task_runner()->PostDelayedTask( + ThreadTaskRunnerHandle::Get()->PostDelayedTask( FROM_HERE, Bind(&QuitFunc, &order, 4), TimeDelta::FromMilliseconds(5)); RunLoop().Run(); @@ -616,12 +615,12 @@ void RunTest_RecursiveSupport1(MessagePumpFactory factory) { MessageLoop loop(std::move(pump)); TaskList order; - MessageLoop::current()->task_runner()->PostTask( + ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, Bind(&RecursiveFunc, &order, 1, 2, true)); - MessageLoop::current()->task_runner()->PostTask( + ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, Bind(&RecursiveFunc, &order, 2, 2, true)); - MessageLoop::current()->task_runner()->PostTask(FROM_HERE, - Bind(&QuitFunc, &order, 3)); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + Bind(&QuitFunc, &order, 3)); RunLoop().Run(); @@ -650,14 +649,12 @@ void RunTest_NonNestableWithNoNesting(MessagePumpFactory factory) { TaskList order; - MessageLoop::current()->task_runner()->PostNonNestableTask( - FROM_HERE, - Bind(&OrderedFunc, &order, 1)); - MessageLoop::current()->task_runner()->PostTask( - FROM_HERE, - Bind(&OrderedFunc, &order, 2)); - MessageLoop::current()->task_runner()->PostTask(FROM_HERE, - Bind(&QuitFunc, &order, 3)); + ThreadTaskRunnerHandle::Get()->PostNonNestableTask( + FROM_HERE, Bind(&OrderedFunc, &order, 1)); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + Bind(&OrderedFunc, &order, 2)); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + Bind(&QuitFunc, &order, 3)); RunLoop().Run(); // FIFO order. @@ -692,24 +689,18 @@ void RunTest_NonNestableInNestedLoop(MessagePumpFactory factory) { TaskList order; - MessageLoop::current()->task_runner()->PostTask( - FROM_HERE, - Bind(&FuncThatPumps, &order, 1)); - MessageLoop::current()->task_runner()->PostNonNestableTask( - FROM_HERE, - Bind(&OrderedFunc, &order, 2)); - MessageLoop::current()->task_runner()->PostTask( - FROM_HERE, - Bind(&OrderedFunc, &order, 3)); - MessageLoop::current()->task_runner()->PostTask( - FROM_HERE, - Bind(&SleepFunc, &order, 4, TimeDelta::FromMilliseconds(50))); - MessageLoop::current()->task_runner()->PostTask( - FROM_HERE, - Bind(&OrderedFunc, &order, 5)); - MessageLoop::current()->task_runner()->PostNonNestableTask( - FROM_HERE, - Bind(&QuitFunc, &order, 6)); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + Bind(&FuncThatPumps, &order, 1)); + ThreadTaskRunnerHandle::Get()->PostNonNestableTask( + FROM_HERE, Bind(&OrderedFunc, &order, 2)); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + Bind(&OrderedFunc, &order, 3)); + ThreadTaskRunnerHandle::Get()->PostTask( + FROM_HERE, Bind(&SleepFunc, &order, 4, TimeDelta::FromMilliseconds(50))); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + Bind(&OrderedFunc, &order, 5)); + ThreadTaskRunnerHandle::Get()->PostNonNestableTask( + FROM_HERE, Bind(&QuitFunc, &order, 6)); RunLoop().Run(); @@ -750,17 +741,15 @@ void RunTest_QuitNow(MessagePumpFactory factory) { RunLoop run_loop; - MessageLoop::current()->task_runner()->PostTask( + ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, Bind(&FuncThatRuns, &order, 1, Unretained(&run_loop))); - MessageLoop::current()->task_runner()->PostTask( - FROM_HERE, Bind(&OrderedFunc, &order, 2)); - MessageLoop::current()->task_runner()->PostTask(FROM_HERE, - Bind(&FuncThatQuitsNow)); - MessageLoop::current()->task_runner()->PostTask( - FROM_HERE, Bind(&OrderedFunc, &order, 3)); - MessageLoop::current()->task_runner()->PostTask(FROM_HERE, - Bind(&FuncThatQuitsNow)); - MessageLoop::current()->task_runner()->PostTask( + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + Bind(&OrderedFunc, &order, 2)); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, Bind(&FuncThatQuitsNow)); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + Bind(&OrderedFunc, &order, 3)); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, Bind(&FuncThatQuitsNow)); + ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, Bind(&OrderedFunc, &order, 4)); // never runs RunLoop().Run(); @@ -786,14 +775,14 @@ void RunTest_RunLoopQuitTop(MessagePumpFactory factory) { RunLoop outer_run_loop; RunLoop nested_run_loop; - MessageLoop::current()->task_runner()->PostTask( + ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, Bind(&FuncThatRuns, &order, 1, Unretained(&nested_run_loop))); - MessageLoop::current()->task_runner()->PostTask(FROM_HERE, - outer_run_loop.QuitClosure()); - MessageLoop::current()->task_runner()->PostTask( - FROM_HERE, Bind(&OrderedFunc, &order, 2)); - MessageLoop::current()->task_runner()->PostTask( - FROM_HERE, nested_run_loop.QuitClosure()); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + outer_run_loop.QuitClosure()); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + Bind(&OrderedFunc, &order, 2)); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + nested_run_loop.QuitClosure()); outer_run_loop.Run(); @@ -816,14 +805,14 @@ void RunTest_RunLoopQuitNested(MessagePumpFactory factory) { RunLoop outer_run_loop; RunLoop nested_run_loop; - MessageLoop::current()->task_runner()->PostTask( + ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, Bind(&FuncThatRuns, &order, 1, Unretained(&nested_run_loop))); - MessageLoop::current()->task_runner()->PostTask( - FROM_HERE, nested_run_loop.QuitClosure()); - MessageLoop::current()->task_runner()->PostTask( - FROM_HERE, Bind(&OrderedFunc, &order, 2)); - MessageLoop::current()->task_runner()->PostTask(FROM_HERE, - outer_run_loop.QuitClosure()); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + nested_run_loop.QuitClosure()); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + Bind(&OrderedFunc, &order, 2)); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + outer_run_loop.QuitClosure()); outer_run_loop.Run(); @@ -847,16 +836,16 @@ void RunTest_RunLoopQuitBogus(MessagePumpFactory factory) { RunLoop nested_run_loop; RunLoop bogus_run_loop; - MessageLoop::current()->task_runner()->PostTask( + ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, Bind(&FuncThatRuns, &order, 1, Unretained(&nested_run_loop))); - MessageLoop::current()->task_runner()->PostTask(FROM_HERE, - bogus_run_loop.QuitClosure()); - MessageLoop::current()->task_runner()->PostTask( - FROM_HERE, Bind(&OrderedFunc, &order, 2)); - MessageLoop::current()->task_runner()->PostTask(FROM_HERE, - outer_run_loop.QuitClosure()); - MessageLoop::current()->task_runner()->PostTask( - FROM_HERE, nested_run_loop.QuitClosure()); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + bogus_run_loop.QuitClosure()); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + Bind(&OrderedFunc, &order, 2)); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + outer_run_loop.QuitClosure()); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + nested_run_loop.QuitClosure()); outer_run_loop.Run(); @@ -882,36 +871,36 @@ void RunTest_RunLoopQuitDeep(MessagePumpFactory factory) { RunLoop nested_loop3; RunLoop nested_loop4; - MessageLoop::current()->task_runner()->PostTask( + ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, Bind(&FuncThatRuns, &order, 1, Unretained(&nested_loop1))); - MessageLoop::current()->task_runner()->PostTask( + ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, Bind(&FuncThatRuns, &order, 2, Unretained(&nested_loop2))); - MessageLoop::current()->task_runner()->PostTask( + ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, Bind(&FuncThatRuns, &order, 3, Unretained(&nested_loop3))); - MessageLoop::current()->task_runner()->PostTask( + ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, Bind(&FuncThatRuns, &order, 4, Unretained(&nested_loop4))); - MessageLoop::current()->task_runner()->PostTask( - FROM_HERE, Bind(&OrderedFunc, &order, 5)); - MessageLoop::current()->task_runner()->PostTask(FROM_HERE, - outer_run_loop.QuitClosure()); - MessageLoop::current()->task_runner()->PostTask( - FROM_HERE, Bind(&OrderedFunc, &order, 6)); - MessageLoop::current()->task_runner()->PostTask(FROM_HERE, - nested_loop1.QuitClosure()); - MessageLoop::current()->task_runner()->PostTask( - FROM_HERE, Bind(&OrderedFunc, &order, 7)); - MessageLoop::current()->task_runner()->PostTask(FROM_HERE, - nested_loop2.QuitClosure()); - MessageLoop::current()->task_runner()->PostTask( - FROM_HERE, Bind(&OrderedFunc, &order, 8)); - MessageLoop::current()->task_runner()->PostTask(FROM_HERE, - nested_loop3.QuitClosure()); - MessageLoop::current()->task_runner()->PostTask( - FROM_HERE, Bind(&OrderedFunc, &order, 9)); - MessageLoop::current()->task_runner()->PostTask(FROM_HERE, - nested_loop4.QuitClosure()); - MessageLoop::current()->task_runner()->PostTask( - FROM_HERE, Bind(&OrderedFunc, &order, 10)); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + Bind(&OrderedFunc, &order, 5)); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + outer_run_loop.QuitClosure()); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + Bind(&OrderedFunc, &order, 6)); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + nested_loop1.QuitClosure()); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + Bind(&OrderedFunc, &order, 7)); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + nested_loop2.QuitClosure()); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + Bind(&OrderedFunc, &order, 8)); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + nested_loop3.QuitClosure()); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + Bind(&OrderedFunc, &order, 9)); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + nested_loop4.QuitClosure()); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + Bind(&OrderedFunc, &order, 10)); outer_run_loop.Run(); @@ -949,9 +938,9 @@ void RunTest_RunLoopQuitOrderBefore(MessagePumpFactory factory) { run_loop.Quit(); - MessageLoop::current()->task_runner()->PostTask( + ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, Bind(&OrderedFunc, &order, 1)); // never runs - MessageLoop::current()->task_runner()->PostTask( + ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, Bind(&FuncThatQuitsNow)); // never runs run_loop.Run(); @@ -968,13 +957,12 @@ void RunTest_RunLoopQuitOrderDuring(MessagePumpFactory factory) { RunLoop run_loop; - MessageLoop::current()->task_runner()->PostTask( - FROM_HERE, Bind(&OrderedFunc, &order, 1)); - MessageLoop::current()->task_runner()->PostTask(FROM_HERE, - run_loop.QuitClosure()); - MessageLoop::current()->task_runner()->PostTask( + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + Bind(&OrderedFunc, &order, 1)); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, run_loop.QuitClosure()); + ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, Bind(&OrderedFunc, &order, 2)); // never runs - MessageLoop::current()->task_runner()->PostTask( + ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, Bind(&FuncThatQuitsNow)); // never runs run_loop.Run(); @@ -995,20 +983,18 @@ void RunTest_RunLoopQuitOrderAfter(MessagePumpFactory factory) { RunLoop run_loop; - MessageLoop::current()->task_runner()->PostTask( + ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, Bind(&FuncThatRuns, &order, 1, Unretained(&run_loop))); - MessageLoop::current()->task_runner()->PostTask( - FROM_HERE, Bind(&OrderedFunc, &order, 2)); - MessageLoop::current()->task_runner()->PostTask(FROM_HERE, - Bind(&FuncThatQuitsNow)); - MessageLoop::current()->task_runner()->PostTask( - FROM_HERE, Bind(&OrderedFunc, &order, 3)); - MessageLoop::current()->task_runner()->PostTask( + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + Bind(&OrderedFunc, &order, 2)); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, Bind(&FuncThatQuitsNow)); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + Bind(&OrderedFunc, &order, 3)); + ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, run_loop.QuitClosure()); // has no affect - MessageLoop::current()->task_runner()->PostTask( - FROM_HERE, Bind(&OrderedFunc, &order, 4)); - MessageLoop::current()->task_runner()->PostTask(FROM_HERE, - Bind(&FuncThatQuitsNow)); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + Bind(&OrderedFunc, &order, 4)); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, Bind(&FuncThatQuitsNow)); RunLoop outer_run_loop; outer_run_loop.Run(); @@ -1028,7 +1014,7 @@ void RunTest_RunLoopQuitOrderAfter(MessagePumpFactory factory) { void PostNTasksThenQuit(int posts_remaining) { if (posts_remaining > 1) { - MessageLoop::current()->task_runner()->PostTask( + ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, Bind(&PostNTasksThenQuit, posts_remaining - 1)); } else { MessageLoop::current()->QuitWhenIdle(); diff --git a/base/message_loop/message_loop_unittest.cc b/base/message_loop/message_loop_unittest.cc index f7b583061bb14..97b7da7764093 100644 --- a/base/message_loop/message_loop_unittest.cc +++ b/base/message_loop/message_loop_unittest.cc @@ -456,7 +456,7 @@ void RunTest_RecursiveSupport2(MessageLoop::Type message_loop_type) { void PostNTasksThenQuit(int posts_remaining) { if (posts_remaining > 1) { - MessageLoop::current()->task_runner()->PostTask( + ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, Bind(&PostNTasksThenQuit, posts_remaining - 1)); } else { MessageLoop::current()->QuitWhenIdle(); @@ -872,7 +872,7 @@ TEST(MessageLoopTest, ThreadMainTaskRunner) { &Foo::Test1ConstRef, foo, a)); // Post quit task; - MessageLoop::current()->task_runner()->PostTask( + ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, Bind(&MessageLoop::QuitWhenIdle, Unretained(MessageLoop::current()))); diff --git a/base/message_loop/message_pump_libevent_unittest.cc b/base/message_loop/message_pump_libevent_unittest.cc index 4164b3a7e49ff..a23b3543f3d25 100644 --- a/base/message_loop/message_pump_libevent_unittest.cc +++ b/base/message_loop/message_pump_libevent_unittest.cc @@ -21,6 +21,7 @@ #include "base/test/gtest_util.h" #include "base/third_party/libevent/event.h" #include "base/threading/thread.h" +#include "base/threading/thread_task_runner_handle.h" #include "build/build_config.h" #include "testing/gtest/include/gtest/gtest.h" @@ -174,8 +175,7 @@ void QuitMessageLoopAndStart(const Closure& quit_closure) { MessageLoop::ScopedNestableTaskAllower allow(MessageLoop::current()); RunLoop runloop; - MessageLoop::current()->task_runner()->PostTask(FROM_HERE, - runloop.QuitClosure()); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, runloop.QuitClosure()); runloop.Run(); } @@ -186,7 +186,7 @@ class NestedPumpWatcher : public MessagePumpLibevent::Watcher { void OnFileCanReadWithoutBlocking(int /* fd */) override { RunLoop runloop; - MessageLoop::current()->task_runner()->PostTask( + ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, Bind(&QuitMessageLoopAndStart, runloop.QuitClosure())); runloop.Run(); } @@ -218,8 +218,7 @@ class QuitWatcher : public BaseWatcher { void OnFileCanReadWithoutBlocking(int /* fd */) override { // Post a fatal closure to the MessageLoop before we quit it. - MessageLoop::current()->task_runner()->PostTask(FROM_HERE, - Bind(&FatalClosure)); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, Bind(&FatalClosure)); // Now quit the MessageLoop. run_loop_->Quit(); diff --git a/chrome/browser/chromeos/login/easy_unlock/easy_unlock_reauth.cc b/chrome/browser/chromeos/login/easy_unlock/easy_unlock_reauth.cc index f04370b3a6799..0de29c0241392 100644 --- a/chrome/browser/chromeos/login/easy_unlock/easy_unlock_reauth.cc +++ b/chrome/browser/chromeos/login/easy_unlock/easy_unlock_reauth.cc @@ -4,9 +4,11 @@ #include "base/bind.h" #include "base/location.h" +#include "base/logging.h" #include "base/macros.h" #include "base/message_loop/message_loop.h" #include "base/single_thread_task_runner.h" +#include "base/threading/thread_task_runner_handle.h" #include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/chromeos/login/easy_unlock/easy_unlock_reauth.h" #include "chrome/browser/chromeos/login/lock/screen_locker.h" @@ -94,9 +96,10 @@ class ReauthHandler : public content::NotificationObserver, // chromeos::AuthStatusConsumer: void OnAuthSuccess(const chromeos::UserContext& user_context) override { + DCHECK(base::MessageLoopForUI::IsCurrent()); callback_.Run(user_context); // Schedule deletion. - base::MessageLoopForUI::current()->task_runner()->PostTask( + base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::Bind(&EndReauthAttempt)); } diff --git a/chrome/browser/chromeos/login/login_ui_keyboard_browsertest.cc b/chrome/browser/chromeos/login/login_ui_keyboard_browsertest.cc index 8d1e3529f05f0..472d8debcc465 100644 --- a/chrome/browser/chromeos/login/login_ui_keyboard_browsertest.cc +++ b/chrome/browser/chromeos/login/login_ui_keyboard_browsertest.cc @@ -6,6 +6,7 @@ #include "base/location.h" #include "base/message_loop/message_loop.h" #include "base/single_thread_task_runner.h" +#include "base/threading/thread_task_runner_handle.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/chromeos/input_method/input_method_persistence.h" #include "chrome/browser/chromeos/language_preferences.h" @@ -54,11 +55,13 @@ class FocusPODWaiter { } void OnFocusPOD() { + ASSERT_TRUE(base::MessageLoopForUI::IsCurrent()); focused_ = true; - if (runner_.get()) - base::MessageLoopForUI::current()->task_runner()->PostTask( + if (runner_.get()) { + base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::Bind(&FocusPODWaiter::ExitMessageLoop, base::Unretained(this))); + } } void ExitMessageLoop() { runner_->Quit(); } diff --git a/chrome/browser/ui/ash/media_delegate_chromeos.cc b/chrome/browser/ui/ash/media_delegate_chromeos.cc index 1c37e97029152..eb98064c73376 100644 --- a/chrome/browser/ui/ash/media_delegate_chromeos.cc +++ b/chrome/browser/ui/ash/media_delegate_chromeos.cc @@ -8,8 +8,10 @@ #include "ash/common/wm_shell.h" #include "ash/content/shell_content_state.h" #include "base/location.h" +#include "base/logging.h" #include "base/message_loop/message_loop.h" #include "base/single_thread_task_runner.h" +#include "base/threading/thread_task_runner_handle.h" #include "chrome/browser/chromeos/extensions/media_player_api.h" #include "chrome/browser/chromeos/extensions/media_player_event_router.h" #include "chrome/browser/media/webrtc/media_stream_capture_indicator.h" @@ -156,7 +158,8 @@ void MediaDelegateChromeOS::OnRequestUpdate( int render_frame_id, content::MediaStreamType stream_type, const content::MediaRequestState state) { - base::MessageLoopForUI::current()->task_runner()->PostTask( + DCHECK(base::MessageLoopForUI::IsCurrent()); + base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::Bind(&MediaDelegateChromeOS::NotifyMediaCaptureChange, weak_ptr_factory_.GetWeakPtr())); } diff --git a/chrome/browser/ui/views/chrome_views_delegate.cc b/chrome/browser/ui/views/chrome_views_delegate.cc index 7e14f716b79fa..470b548cbae0b 100644 --- a/chrome/browser/ui/views/chrome_views_delegate.cc +++ b/chrome/browser/ui/views/chrome_views_delegate.cc @@ -7,10 +7,12 @@ #include <memory> #include "base/location.h" +#include "base/logging.h" #include "base/message_loop/message_loop.h" #include "base/single_thread_task_runner.h" #include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h" +#include "base/threading/thread_task_runner_handle.h" #include "base/time/time.h" #include "build/build_config.h" #include "chrome/browser/browser_process.h" @@ -272,6 +274,8 @@ views::ViewsDelegate::ProcessMenuAcceleratorResult ChromeViewsDelegate::ProcessAcceleratorWhileMenuShowing( const ui::Accelerator& accelerator) { #if defined(USE_ASH) + DCHECK(base::MessageLoopForUI::IsCurrent()); + // Early return because mash chrome does not have access to ash::Shell if (chrome::IsRunningInMash()) return views::ViewsDelegate::ProcessMenuAcceleratorResult::LEAVE_MENU_OPEN; @@ -283,7 +287,7 @@ ChromeViewsDelegate::ProcessAcceleratorWhileMenuShowing( accelerator); if (accelerator_controller->ShouldCloseMenuAndRepostAccelerator( accelerator)) { - base::MessageLoopForUI::current()->task_runner()->PostTask( + base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::Bind(ProcessAcceleratorNow, accelerator)); return views::ViewsDelegate::ProcessMenuAcceleratorResult::CLOSE_MENU; } diff --git a/chrome/browser/ui/views/menu_model_adapter_test.cc b/chrome/browser/ui/views/menu_model_adapter_test.cc index b7b16a689546c..080f62d131acd 100644 --- a/chrome/browser/ui/views/menu_model_adapter_test.cc +++ b/chrome/browser/ui/views/menu_model_adapter_test.cc @@ -233,7 +233,8 @@ class MenuModelAdapterTest : public ViewEventTestBase, menu_model_adapter_.BuildMenu(menu_); - base::MessageLoopForUI::current()->task_runner()->PostTask( + ASSERT_TRUE(base::MessageLoopForUI::IsCurrent()); + base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, CreateEventTask(this, &MenuModelAdapterTest::Step3)); } diff --git a/components/arc/arc_bridge_service_impl.cc b/components/arc/arc_bridge_service_impl.cc index 93f42b183013e..4cf543f912ee1 100644 --- a/components/arc/arc_bridge_service_impl.cc +++ b/components/arc/arc_bridge_service_impl.cc @@ -9,7 +9,6 @@ #include "base/command_line.h" #include "base/json/json_writer.h" -#include "base/message_loop/message_loop.h" #include "base/sequenced_task_runner.h" #include "base/sys_info.h" #include "base/task_runner_util.h" @@ -148,7 +147,7 @@ void ArcBridgeServiceImpl::OnStopped(StopReason stop_reason) { // Instead of immediately trying to restart the container, give it some // time to finish tearing down in case it is still in the process of // stopping. - base::MessageLoop::current()->task_runner()->PostDelayedTask( + base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( FROM_HERE, base::Bind(&ArcBridgeServiceImpl::PrerequisitesChanged, weak_factory_.GetWeakPtr()), base::TimeDelta::FromSeconds(kReconnectDelayInSeconds)); diff --git a/components/browser_watcher/window_hang_monitor_win.cc b/components/browser_watcher/window_hang_monitor_win.cc index e3966f8c50003..96cadb62ca3bb 100644 --- a/components/browser_watcher/window_hang_monitor_win.cc +++ b/components/browser_watcher/window_hang_monitor_win.cc @@ -9,9 +9,9 @@ #include "base/files/file_util.h" #include "base/location.h" #include "base/logging.h" -#include "base/message_loop/message_loop.h" #include "base/strings/string_piece.h" #include "base/strings/string_util.h" +#include "base/threading/thread_task_runner_handle.h" #include "base/win/message_window.h" namespace browser_watcher { @@ -75,7 +75,7 @@ WindowHangMonitor::~WindowHangMonitor() { void WindowHangMonitor::Initialize(base::Process process) { window_process_ = std::move(process); - timer_.SetTaskRunner(base::MessageLoop::current()->task_runner()); + timer_.SetTaskRunner(base::ThreadTaskRunnerHandle::Get()); ScheduleFindWindow(); } diff --git a/components/browsing_data/content/conditional_cache_deletion_helper.cc b/components/browsing_data/content/conditional_cache_deletion_helper.cc index 4f4a4743597e8..416ad0ce8e71b 100644 --- a/components/browsing_data/content/conditional_cache_deletion_helper.cc +++ b/components/browsing_data/content/conditional_cache_deletion_helper.cc @@ -79,7 +79,7 @@ void ConditionalCacheDeletionHelper::IterateOverEntries(int error) { // The iteration finished successfuly or we can no longer iterate // (e.g. the cache was destroyed). We cannot distinguish between the two, // but we know that there is nothing more that we can do, so we return OK. - base::MessageLoop::current()->task_runner()->PostTask( + base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::Bind(completion_callback_, net::OK)); base::ThreadTaskRunnerHandle::Get()->DeleteSoon(FROM_HERE, this); return; diff --git a/components/favicon/core/large_icon_service_unittest.cc b/components/favicon/core/large_icon_service_unittest.cc index 4775eaff067f7..3618fd5dbe008 100644 --- a/components/favicon/core/large_icon_service_unittest.cc +++ b/components/favicon/core/large_icon_service_unittest.cc @@ -13,6 +13,7 @@ #include "base/message_loop/message_loop.h" #include "base/run_loop.h" #include "base/task/cancelable_task_tracker.h" +#include "base/threading/thread_task_runner_handle.h" #include "components/favicon/core/favicon_client.h" #include "components/favicon/core/favicon_service.h" #include "components/favicon_base/fallback_icon_style.h" @@ -71,9 +72,8 @@ class MockFaviconService : public FaviconService { favicon_base::FaviconRawBitmapResult mock_result = mock_result_queue_.front(); mock_result_queue_.pop_front(); - return tracker->PostTask( - base::MessageLoop::current()->task_runner().get(), FROM_HERE, - base::Bind(callback, mock_result)); + return tracker->PostTask(base::ThreadTaskRunnerHandle::Get().get(), + FROM_HERE, base::Bind(callback, mock_result)); } void InjectResult(const favicon_base::FaviconRawBitmapResult& mock_result) { @@ -96,7 +96,7 @@ class TestLargeIconService : public LargeIconService { public: explicit TestLargeIconService(MockFaviconService* mock_favicon_service) : LargeIconService(mock_favicon_service, - base::MessageLoop::current()->task_runner()) {} + base::ThreadTaskRunnerHandle::Get()) {} ~TestLargeIconService() override { } diff --git a/components/leveldb/leveldb_app.cc b/components/leveldb/leveldb_app.cc index b6e2aba543dd6..55eb5908b4c2c 100644 --- a/components/leveldb/leveldb_app.cc +++ b/components/leveldb/leveldb_app.cc @@ -4,7 +4,7 @@ #include "components/leveldb/leveldb_app.h" -#include "base/message_loop/message_loop.h" +#include "base/threading/thread_task_runner_handle.h" #include "components/leveldb/leveldb_service_impl.h" #include "services/shell/public/cpp/interface_registry.h" @@ -27,8 +27,7 @@ bool LevelDBApp::OnConnect(const shell::Identity& remote_identity, void LevelDBApp::Create(const shell::Identity& remote_identity, leveldb::mojom::LevelDBServiceRequest request) { if (!service_) - service_.reset( - new LevelDBServiceImpl(base::MessageLoop::current()->task_runner())); + service_.reset(new LevelDBServiceImpl(base::ThreadTaskRunnerHandle::Get())); bindings_.AddBinding(service_.get(), std::move(request)); } diff --git a/components/previews/core/previews_black_list_unittest.cc b/components/previews/core/previews_black_list_unittest.cc index d9fd376183c26..53916ad709d96 100644 --- a/components/previews/core/previews_black_list_unittest.cc +++ b/components/previews/core/previews_black_list_unittest.cc @@ -15,6 +15,7 @@ #include "base/run_loop.h" #include "base/strings/string_number_conversions.h" #include "base/test/simple_test_clock.h" +#include "base/threading/thread_task_runner_handle.h" #include "base/time/time.h" #include "components/previews/core/previews_black_list_item.h" #include "components/previews/core/previews_experiments.h" @@ -53,7 +54,7 @@ class TestPreviewsOptOutStore : public PreviewsOptOutStore { void LoadBlackList(LoadBlackListCallback callback) override { std::unique_ptr<BlackListItemMap> black_list_item_map( new BlackListItemMap()); - base::MessageLoop::current()->task_runner()->PostTask( + base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::Bind(&RunLoadCallback, callback, base::Passed(&black_list_item_map))); } diff --git a/components/safe_browsing_db/v4_database.cc b/components/safe_browsing_db/v4_database.cc index efcbe7b1aaa5e..6e14e5f099dfe 100644 --- a/components/safe_browsing_db/v4_database.cc +++ b/components/safe_browsing_db/v4_database.cc @@ -8,7 +8,7 @@ #include "base/debug/leak_annotations.h" #include "base/files/file_util.h" #include "base/memory/ptr_util.h" -#include "base/message_loop/message_loop.h" +#include "base/threading/thread_task_runner_handle.h" #include "components/safe_browsing_db/v4_database.h" #include "content/public/browser/browser_thread.h" @@ -28,8 +28,8 @@ void V4Database::Create( DCHECK(base_path.IsAbsolute()); DCHECK(!list_infos.empty()); - const scoped_refptr<base::SingleThreadTaskRunner>& callback_task_runner = - base::MessageLoop::current()->task_runner(); + const scoped_refptr<base::SingleThreadTaskRunner> callback_task_runner = + base::ThreadTaskRunnerHandle::Get(); db_task_runner->PostTask( FROM_HERE, base::Bind(&V4Database::CreateOnTaskRunner, db_task_runner, base_path, @@ -107,8 +107,8 @@ void V4Database::ApplyUpdate( // Post the V4Store update task on the task runner but get the callback on the // current thread. - const scoped_refptr<base::SingleThreadTaskRunner>& current_task_runner = - base::MessageLoop::current()->task_runner(); + const scoped_refptr<base::SingleThreadTaskRunner> current_task_runner = + base::ThreadTaskRunnerHandle::Get(); for (std::unique_ptr<ListUpdateResponse>& response : *parsed_server_response) { ListIdentifier identifier(*response); diff --git a/components/test_runner/mock_screen_orientation_client.cc b/components/test_runner/mock_screen_orientation_client.cc index dd432329282d3..e734897194187 100644 --- a/components/test_runner/mock_screen_orientation_client.cc +++ b/components/test_runner/mock_screen_orientation_client.cc @@ -6,8 +6,8 @@ #include "base/bind.h" #include "base/logging.h" -#include "base/message_loop/message_loop.h" #include "base/single_thread_task_runner.h" +#include "base/threading/thread_task_runner_handle.h" #include "third_party/WebKit/public/web/WebLocalFrame.h" namespace test_runner { @@ -116,13 +116,13 @@ bool MockScreenOrientationClient::IsOrientationAllowedByCurrentLock( void MockScreenOrientationClient::lockOrientation( blink::WebScreenOrientationLockType orientation, blink::WebLockOrientationCallback* callback) { - base::MessageLoop::current()->task_runner()->PostTask( + base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::Bind(&MockScreenOrientationClient::UpdateLockSync, base::Unretained(this), orientation, callback)); } void MockScreenOrientationClient::unlockOrientation() { - base::MessageLoop::current()->task_runner()->PostTask( + base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::Bind(&MockScreenOrientationClient::ResetLockSync, base::Unretained(this))); } diff --git a/components/update_client/component_patcher_unittest.cc b/components/update_client/component_patcher_unittest.cc index 2079d630e7976..a684e12bf46dd 100644 --- a/components/update_client/component_patcher_unittest.cc +++ b/components/update_client/component_patcher_unittest.cc @@ -11,6 +11,7 @@ #include "base/macros.h" #include "base/path_service.h" #include "base/run_loop.h" +#include "base/threading/thread_task_runner_handle.h" #include "base/values.h" #include "components/update_client/component_patcher.h" #include "components/update_client/component_patcher_operation.h" @@ -69,7 +70,7 @@ ComponentPatcherOperationTest::ComponentPatcherOperationTest() { EXPECT_TRUE(input_dir_.CreateUniqueTempDir()); EXPECT_TRUE(installed_dir_.CreateUniqueTempDir()); installer_ = new ReadOnlyTestInstaller(installed_dir_.GetPath()); - task_runner_ = base::MessageLoop::current()->task_runner(); + task_runner_ = base::ThreadTaskRunnerHandle::Get(); } ComponentPatcherOperationTest::~ComponentPatcherOperationTest() { diff --git a/content/browser/renderer_host/render_widget_host_view_mac_editcommand_helper_unittest.mm b/content/browser/renderer_host/render_widget_host_view_mac_editcommand_helper_unittest.mm index 42275cb527b81..7c95711be0acb 100644 --- a/content/browser/renderer_host/render_widget_host_view_mac_editcommand_helper_unittest.mm +++ b/content/browser/renderer_host/render_widget_host_view_mac_editcommand_helper_unittest.mm @@ -10,6 +10,7 @@ #include "base/mac/scoped_nsautorelease_pool.h" #include "base/message_loop/message_loop.h" +#include "base/threading/thread_task_runner_handle.h" #include "content/browser/compositor/test/no_transport_image_transport_factory.h" #include "content/browser/gpu/compositor_util.h" #include "content/browser/renderer_host/render_widget_host_delegate.h" @@ -135,8 +136,7 @@ TEST_F(RenderWidgetHostViewMacEditCommandHelperTest, base::mac::ScopedNSAutoreleasePool pool; base::MessageLoop message_loop; - ui::WindowResizeHelperMac::Get()->Init( - base::MessageLoop::current()->task_runner()); + ui::WindowResizeHelperMac::Get()->Init(base::ThreadTaskRunnerHandle::Get()); // Owned by its |cocoa_view()|, i.e. |rwhv_cocoa|. RenderWidgetHostViewMac* rwhv_mac = new RenderWidgetHostViewMac( diff --git a/content/browser/service_worker/service_worker_url_request_job_unittest.cc b/content/browser/service_worker/service_worker_url_request_job_unittest.cc index 690154c23ea88..a364b8ab9e022 100644 --- a/content/browser/service_worker/service_worker_url_request_job_unittest.cc +++ b/content/browser/service_worker/service_worker_url_request_job_unittest.cc @@ -13,7 +13,6 @@ #include "base/callback.h" #include "base/macros.h" #include "base/memory/ptr_util.h" -#include "base/message_loop/message_loop.h" #include "base/run_loop.h" #include "base/single_thread_task_runner.h" #include "base/threading/thread_task_runner_handle.h" @@ -308,7 +307,7 @@ class ServiceWorkerURLRequestJobTest // Simulate another worker kicking out the incumbent worker. PostTask since // it might respond synchronously, and the MockURLRequestDelegate would // complain that the message loop isn't being run. - base::MessageLoop::current()->task_runner()->PostTask( + base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::Bind(&ServiceWorkerVersion::SetStatus, version_, ServiceWorkerVersion::REDUNDANT)); base::RunLoop().RunUntilIdle(); diff --git a/content/browser/webui/url_data_manager_backend.cc b/content/browser/webui/url_data_manager_backend.cc index 34dceffe7a245..0eca815e05aa5 100644 --- a/content/browser/webui/url_data_manager_backend.cc +++ b/content/browser/webui/url_data_manager_backend.cc @@ -23,6 +23,7 @@ #include "base/strings/string_number_conversions.h" #include "base/strings/string_util.h" #include "base/strings/stringprintf.h" +#include "base/threading/thread_task_runner_handle.h" #include "base/threading/worker_pool.h" #include "base/trace_event/trace_event.h" #include "content/browser/blob_storage/chrome_blob_storage_context.h" @@ -326,7 +327,7 @@ void URLRequestChromeJob::Start() { // Start reading asynchronously so that all error reporting and data // callbacks happen as they would for network requests. - base::MessageLoop::current()->task_runner()->PostTask( + base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::Bind(&URLRequestChromeJob::StartAsync, weak_factory_.GetWeakPtr())); diff --git a/content/common/child_process_host_impl.cc b/content/common/child_process_host_impl.cc index b62ec77e1cb85..f03402823bdf1 100644 --- a/content/common/child_process_host_impl.cc +++ b/content/common/child_process_host_impl.cc @@ -20,6 +20,7 @@ #include "base/strings/stringprintf.h" #include "base/synchronization/lock.h" #include "base/third_party/dynamic_annotations/dynamic_annotations.h" +#include "base/threading/thread_task_runner_handle.h" #include "build/build_config.h" #include "content/common/child_process_messages.h" #include "content/public/common/child_process_host_delegate.h" @@ -184,8 +185,9 @@ std::string ChildProcessHostImpl::CreateChannel() { bool ChildProcessHostImpl::InitChannel() { #if USE_ATTACHMENT_BROKER + DCHECK(base::MessageLoopForIO::IsCurrent()); IPC::AttachmentBroker::GetGlobal()->RegisterCommunicationChannel( - channel_.get(), base::MessageLoopForIO::current()->task_runner()); + channel_.get(), base::ThreadTaskRunnerHandle::Get()); #endif if (!channel_->Connect()) { #if USE_ATTACHMENT_BROKER diff --git a/content/public/test/test_renderer_host.cc b/content/public/test/test_renderer_host.cc index a53eee5d742b7..00490a1834995 100644 --- a/content/public/test/test_renderer_host.cc +++ b/content/public/test/test_renderer_host.cc @@ -7,6 +7,7 @@ #include <utility> #include "base/run_loop.h" +#include "base/threading/thread_task_runner_handle.h" #include "build/build_config.h" #include "content/browser/compositor/test/no_transport_image_transport_factory.h" #include "content/browser/frame_host/navigation_entry_impl.h" @@ -272,8 +273,7 @@ void RenderViewHostTestHarness::SetUp() { BrowserSideNavigationSetUp(); #if defined(OS_MACOSX) - ui::WindowResizeHelperMac::Get()->Init( - base::MessageLoop::current()->task_runner()); + ui::WindowResizeHelperMac::Get()->Init(base::ThreadTaskRunnerHandle::Get()); #endif // OS_MACOSX } diff --git a/device/generic_sensor/platform_sensor_android.cc b/device/generic_sensor/platform_sensor_android.cc index 0296c51f4b9f3..e02cde8493604 100644 --- a/device/generic_sensor/platform_sensor_android.cc +++ b/device/generic_sensor/platform_sensor_android.cc @@ -6,7 +6,7 @@ #include "base/android/context_utils.h" #include "base/bind.h" -#include "base/message_loop/message_loop.h" +#include "base/threading/thread_task_runner_handle.h" #include "jni/PlatformSensor_jni.h" using base::android::AttachCurrentThread; @@ -26,7 +26,7 @@ PlatformSensorAndroid::PlatformSensorAndroid( PlatformSensorProvider* provider, const JavaRef<jobject>& java_sensor) : PlatformSensor(type, std::move(mapping), provider), - task_runner_(base::MessageLoop::current()->task_runner()) { + task_runner_(base::ThreadTaskRunnerHandle::Get()) { JNIEnv* env = AttachCurrentThread(); j_object_.Reset(java_sensor); diff --git a/ipc/ipc_channel_reader.cc b/ipc/ipc_channel_reader.cc index 9af3696ef6130..e5edb9c147d53 100644 --- a/ipc/ipc_channel_reader.cc +++ b/ipc/ipc_channel_reader.cc @@ -8,7 +8,9 @@ #include <algorithm> +#include "base/logging.h" #include "base/message_loop/message_loop.h" +#include "base/threading/thread_task_runner_handle.h" #include "ipc/ipc_listener.h" #include "ipc/ipc_logging.h" #include "ipc/ipc_message.h" @@ -322,8 +324,8 @@ void ChannelReader::ReceivedBrokerableAttachmentWithId( void ChannelReader::StartObservingAttachmentBroker() { #if USE_ATTACHMENT_BROKER - GetAttachmentBroker()->AddObserver( - this, base::MessageLoopForIO::current()->task_runner()); + DCHECK(base::MessageLoopForIO::IsCurrent()); + GetAttachmentBroker()->AddObserver(this, base::ThreadTaskRunnerHandle::Get()); #endif // USE_ATTACHMENT_BROKER } diff --git a/ipc/ipc_channel_win.cc b/ipc/ipc_channel_win.cc index 66c14c84eef49..f59b22ae4b8c8 100644 --- a/ipc/ipc_channel_win.cc +++ b/ipc/ipc_channel_win.cc @@ -20,6 +20,7 @@ #include "base/strings/string_number_conversions.h" #include "base/strings/utf_string_conversions.h" #include "base/threading/thread_checker.h" +#include "base/threading/thread_task_runner_handle.h" #include "base/win/scoped_handle.h" #include "ipc/attachment_broker.h" #include "ipc/ipc_listener.h" @@ -393,6 +394,8 @@ bool ChannelWin::CreatePipe(const IPC::ChannelHandle &channel_handle, } bool ChannelWin::Connect() { + DCHECK(base::MessageLoopForIO::IsCurrent()); + WillConnect(); DLOG_IF(WARNING, thread_check_.get()) << "Connect called more than once"; @@ -413,7 +416,7 @@ bool ChannelWin::Connect() { // Complete setup asynchronously. By not setting input_state_.is_pending // to true, we indicate to OnIOCompleted that this is the special // initialization signal. - base::MessageLoopForIO::current()->task_runner()->PostTask( + base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::Bind(&ChannelWin::OnIOCompleted, weak_factory_.GetWeakPtr(), &input_state_.context, 0, 0)); diff --git a/services/shell/standalone/context.cc b/services/shell/standalone/context.cc index 03c4062ce85c0..7a15ce714dd66 100644 --- a/services/shell/standalone/context.cc +++ b/services/shell/standalone/context.cc @@ -219,7 +219,7 @@ void Context::Shutdown() { TRACE_EVENT0("mojo_shell", "Context::Shutdown"); // Post a task in case OnShutdownComplete is called synchronously. - base::MessageLoop::current()->task_runner()->PostTask( + base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::Bind(mojo::edk::ShutdownIPCSupport)); // We'll quit when we get OnShutdownComplete(). base::RunLoop().Run(); diff --git a/services/shell/standalone/tracer.cc b/services/shell/standalone/tracer.cc index 84408fc638c48..84564b4049c17 100644 --- a/services/shell/standalone/tracer.cc +++ b/services/shell/standalone/tracer.cc @@ -14,6 +14,7 @@ #include "base/strings/string_number_conversions.h" #include "base/synchronization/waitable_event.h" #include "base/threading/thread.h" +#include "base/threading/thread_task_runner_handle.h" #include "base/trace_event/trace_config.h" #include "base/trace_event/trace_event.h" @@ -43,7 +44,7 @@ void Tracer::Start(const std::string& categories, << "Could not parse --trace-startup-duration value " << duration_seconds_str; } - base::MessageLoop::current()->task_runner()->PostDelayedTask( + base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( FROM_HERE, base::Bind(&Tracer::StopAndFlushToFile, base::Unretained(this)), base::TimeDelta::FromSeconds(trace_duration_secs)); diff --git a/services/tracing/public/cpp/provider.cc b/services/tracing/public/cpp/provider.cc index 10f326e2e0bf0..e2a0a2f904f90 100644 --- a/services/tracing/public/cpp/provider.cc +++ b/services/tracing/public/cpp/provider.cc @@ -13,6 +13,7 @@ #include "base/single_thread_task_runner.h" #include "base/synchronization/lock.h" #include "base/threading/platform_thread.h" +#include "base/threading/thread_task_runner_handle.h" #include "base/time/time.h" #include "base/trace_event/trace_config.h" #include "base/trace_event/trace_event.h" @@ -107,7 +108,7 @@ void Provider::ForceEnableTracing() { base::trace_event::TraceConfig("*", base::trace_event::RECORD_UNTIL_FULL), base::trace_event::TraceLog::RECORDING_MODE); tracing_forced_ = true; - base::MessageLoop::current()->task_runner()->PostTask( + base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::Bind(&Provider::DelayedStop, weak_factory_.GetWeakPtr())); } @@ -116,7 +117,7 @@ void Provider::DelayedStop() { // We use this indirection to account for cases where the Initialize method // takes more than one second to finish; thus we start the countdown only when // the current thread is unblocked. - base::MessageLoop::current()->task_runner()->PostDelayedTask( + base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( FROM_HERE, base::Bind(&Provider::StopIfForced, weak_factory_.GetWeakPtr()), base::TimeDelta::FromSeconds(1)); diff --git a/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager_perftest.cc b/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager_perftest.cc index b059acc0d8fd4..939b1d13c79b9 100644 --- a/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager_perftest.cc +++ b/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager_perftest.cc @@ -10,6 +10,7 @@ #include "base/memory/ptr_util.h" #include "base/run_loop.h" #include "base/threading/thread.h" +#include "base/threading/thread_task_runner_handle.h" #include "base/time/default_tick_clock.h" #include "platform/scheduler/base/task_queue_impl.h" #include "platform/scheduler/base/task_queue_manager_delegate_for_test.h" @@ -40,7 +41,7 @@ class TaskQueueManagerPerfTest : public testing::Test { num_queues_ = num_queues; manager_ = base::MakeUnique<TaskQueueManager>( TaskQueueManagerDelegateForTest::Create( - base::MessageLoop::current()->task_runner(), + base::ThreadTaskRunnerHandle::Get(), base::WrapUnique(new base::DefaultTickClock())), "fake.category", "fake.category", "fake.category.debug"); manager_->AddTaskTimeObserver(&test_task_time_observer_); diff --git a/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager_unittest.cc b/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager_unittest.cc index 364bdeff630b4..94335c6814041 100644 --- a/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager_unittest.cc +++ b/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager_unittest.cc @@ -16,6 +16,7 @@ #include "base/test/simple_test_tick_clock.h" #include "base/test/trace_event_analyzer.h" #include "base/threading/thread.h" +#include "base/threading/thread_task_runner_handle.h" #include "base/trace_event/blame_context.h" #include "base/trace_event/trace_buffer.h" #include "cc/test/ordered_simple_task_runner.h" @@ -65,9 +66,8 @@ class MessageLoopTaskRunner : public TaskQueueManagerDelegateForTest { private: explicit MessageLoopTaskRunner(std::unique_ptr<base::TickClock> tick_clock) - : TaskQueueManagerDelegateForTest( - base::MessageLoop::current()->task_runner(), - std::move(tick_clock)) {} + : TaskQueueManagerDelegateForTest(base::ThreadTaskRunnerHandle::Get(), + std::move(tick_clock)) {} ~MessageLoopTaskRunner() override {} }; diff --git a/third_party/libaddressinput/chromium/chrome_address_validator.cc b/third_party/libaddressinput/chromium/chrome_address_validator.cc index ef11a62fb1c81..f1f9f0eeb9af5 100644 --- a/third_party/libaddressinput/chromium/chrome_address_validator.cc +++ b/third_party/libaddressinput/chromium/chrome_address_validator.cc @@ -9,8 +9,8 @@ #include "base/bind.h" #include "base/location.h" #include "base/logging.h" -#include "base/message_loop/message_loop.h" #include "base/single_thread_task_runner.h" +#include "base/threading/thread_task_runner_handle.h" #include "third_party/libaddressinput/chromium/addressinput_util.h" #include "third_party/libaddressinput/chromium/input_suggester.h" #include "third_party/libaddressinput/src/cpp/include/libaddressinput/address_data.h" @@ -148,7 +148,7 @@ void AddressValidator::RulesLoaded(bool success, if (success || attempts_number_[region_code] + 1 >= kMaxAttemptsNumber) return; - base::MessageLoop::current()->task_runner()->PostDelayedTask( + base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( FROM_HERE, base::Bind(&AddressValidator::RetryLoadRules, weak_factory_.GetWeakPtr(), region_code), GetBaseRetryPeriod() * pow(2, attempts_number_[region_code]++)); diff --git a/third_party/zlib/google/zip_reader.cc b/third_party/zlib/google/zip_reader.cc index 1bdf81c7b34e3..fdeb1259b3a0f 100644 --- a/third_party/zlib/google/zip_reader.cc +++ b/third_party/zlib/google/zip_reader.cc @@ -10,7 +10,6 @@ #include "base/files/file.h" #include "base/logging.h" #include "base/macros.h" -#include "base/message_loop/message_loop.h" #include "base/single_thread_task_runner.h" #include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h" @@ -392,7 +391,7 @@ void ZipReader::ExtractCurrentEntryToFilePathAsync( return; } - base::MessageLoop::current()->task_runner()->PostTask( + base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::Bind(&ZipReader::ExtractChunk, weak_ptr_factory_.GetWeakPtr(), Passed(std::move(output_file)), success_callback, @@ -499,7 +498,7 @@ void ZipReader::ExtractChunk(base::File output_file, progress_callback.Run(current_progress); - base::MessageLoop::current()->task_runner()->PostTask( + base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::Bind(&ZipReader::ExtractChunk, weak_ptr_factory_.GetWeakPtr(), Passed(std::move(output_file)), success_callback, diff --git a/ui/aura/test/ui_controls_factory_aurawin.cc b/ui/aura/test/ui_controls_factory_aurawin.cc index ae8d41543c99e..7d1d2bbe4ef07 100644 --- a/ui/aura/test/ui_controls_factory_aurawin.cc +++ b/ui/aura/test/ui_controls_factory_aurawin.cc @@ -6,6 +6,7 @@ #include "base/macros.h" #include "base/message_loop/message_loop.h" #include "base/single_thread_task_runner.h" +#include "base/threading/thread_task_runner_handle.h" #include "ui/aura/test/ui_controls_factory_aura.h" #include "ui/aura/window.h" #include "ui/aura/window_tree_host.h" @@ -77,8 +78,8 @@ class UIControlsWin : public UIControlsAura { void RunClosureAfterAllPendingUIEvents( const base::Closure& closure) override { // On windows, posting UI events is synchronous so just post the closure. - base::MessageLoopForUI::current()->task_runner()->PostTask(FROM_HERE, - closure); + DCHECK(base::MessageLoopForUI::IsCurrent()); + base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, closure); } private: diff --git a/ui/ozone/platform/wayland/wayland_connection.cc b/ui/ozone/platform/wayland/wayland_connection.cc index b2fb1084f94ac..520b21f9f08a6 100644 --- a/ui/ozone/platform/wayland/wayland_connection.cc +++ b/ui/ozone/platform/wayland/wayland_connection.cc @@ -11,6 +11,7 @@ #include "base/memory/ptr_util.h" #include "base/message_loop/message_loop.h" #include "base/strings/string_util.h" +#include "base/threading/thread_task_runner_handle.h" #include "ui/ozone/platform/wayland/wayland_object.h" #include "ui/ozone/platform/wayland/wayland_window.h" @@ -88,7 +89,8 @@ bool WaylandConnection::StartProcessingEvents() { void WaylandConnection::ScheduleFlush() { if (scheduled_flush_ || !watching_) return; - base::MessageLoopForUI::current()->task_runner()->PostTask( + DCHECK(base::MessageLoopForUI::IsCurrent()); + base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::Bind(&WaylandConnection::Flush, base::Unretained(this))); scheduled_flush_ = true; } diff --git a/ui/shell_dialogs/select_file_dialog_win.cc b/ui/shell_dialogs/select_file_dialog_win.cc index 1574f88d341da..46804d2ac696b 100644 --- a/ui/shell_dialogs/select_file_dialog_win.cc +++ b/ui/shell_dialogs/select_file_dialog_win.cc @@ -15,10 +15,12 @@ #include "base/files/file_path.h" #include "base/files/file_util.h" #include "base/i18n/case_conversion.h" +#include "base/logging.h" #include "base/macros.h" #include "base/message_loop/message_loop.h" #include "base/single_thread_task_runner.h" #include "base/threading/thread.h" +#include "base/threading/thread_task_runner_handle.h" #include "base/win/registry.h" #include "base/win/scoped_comptr.h" #include "base/win/shortcut.h" @@ -201,9 +203,10 @@ class SelectFileDialogImpl : public ui::SelectFileDialog, file_type_index(file_type_index), default_extension(default_extension), run_state(run_state), - ui_task_runner(base::MessageLoopForUI::current()->task_runner()), + ui_task_runner(base::ThreadTaskRunnerHandle::Get()), owner(owner), params(params) { + DCHECK(base::MessageLoopForUI::IsCurrent()); if (file_types) this->file_types = *file_types; } diff --git a/ui/views/controls/menu/menu_controller_unittest.cc b/ui/views/controls/menu/menu_controller_unittest.cc index 2db6591a9ce6b..486e9273df85f 100644 --- a/ui/views/controls/menu/menu_controller_unittest.cc +++ b/ui/views/controls/menu/menu_controller_unittest.cc @@ -5,9 +5,11 @@ #include "ui/views/controls/menu/menu_controller.h" #include "base/callback.h" +#include "base/logging.h" #include "base/macros.h" #include "base/single_thread_task_runner.h" #include "base/strings/utf_string_conversions.h" +#include "base/threading/thread_task_runner_handle.h" #include "build/build_config.h" #include "ui/aura/scoped_window_targeter.h" #include "ui/aura/window.h" @@ -271,6 +273,7 @@ class MenuControllerTest : public ViewsTestBase { void SetUp() override { ViewsTestBase::SetUp(); Init(); + ASSERT_TRUE(base::MessageLoopForUI::IsCurrent()); } void TearDown() override { @@ -612,7 +615,7 @@ class MenuControllerTest : public ViewsTestBase { // Tests that an event targeter which blocks events will be honored by the menu // event dispatcher. TEST_F(MenuControllerTest, EventTargeter) { - base::MessageLoopForUI::current()->task_runner()->PostTask( + base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::Bind(&MenuControllerTest::TestEventTargeter, base::Unretained(this))); RunMenu(); @@ -635,11 +638,11 @@ TEST_F(MenuControllerTest, TouchIdsReleasedCorrectly) { event_generator()->PressTouchId(1); event_generator()->ReleaseTouchId(0); - base::MessageLoopForUI::current()->task_runner()->PostTask( + base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::Bind(&MenuControllerTest::ReleaseTouchId, base::Unretained(this), 1)); - base::MessageLoopForUI::current()->task_runner()->PostTask( + base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::Bind(&MenuControllerTest::PressKey, base::Unretained(this), ui::VKEY_ESCAPE)); @@ -1221,7 +1224,7 @@ TEST_F(MenuControllerTest, AsynchronousTouchEventRepostEvent) { TEST_F(MenuControllerTest, AsynchronousNestedExitAll) { InstallTestMenuMessageLoop(); - base::MessageLoopForUI::current()->task_runner()->PostTask( + base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::Bind(&MenuControllerTest::TestAsynchronousNestedExitAll, base::Unretained(this))); @@ -1234,7 +1237,7 @@ TEST_F(MenuControllerTest, AsynchronousNestedExitAll) { TEST_F(MenuControllerTest, AsynchronousNestedExitOutermost) { InstallTestMenuMessageLoop(); - base::MessageLoopForUI::current()->task_runner()->PostTask( + base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::Bind(&MenuControllerTest::TestAsynchronousNestedExitOutermost, base::Unretained(this))); @@ -1333,7 +1336,7 @@ TEST_F(MenuControllerTest, NestedMessageLoopDiesWithNestedMenu) { std::unique_ptr<TestMenuControllerDelegate> nested_delegate( new TestMenuControllerDelegate()); // This will nest an asynchronous menu, and then kill the nested message loop. - base::MessageLoopForUI::current()->task_runner()->PostTask( + base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::Bind(&MenuControllerTest::TestNestedMessageLoopKillsItself, base::Unretained(this), nested_delegate.get())); @@ -1352,7 +1355,7 @@ TEST_F(MenuControllerTest, NestedMessageLoopDiesWithNestedMenu) { TEST_F(MenuControllerTest, SynchronousCancelEvent) { ExitMenuRun(); // Post actual test to run once the menu has created a nested message loop. - base::MessageLoopForUI::current()->task_runner()->PostTask( + base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::Bind(&MenuControllerTest::TestCancelEvent, base::Unretained(this))); int mouse_event_flags = 0; diff --git a/ui/views/widget/desktop_aura/x11_whole_screen_move_loop.cc b/ui/views/widget/desktop_aura/x11_whole_screen_move_loop.cc index 251dad6259235..1258c61c9cd0a 100644 --- a/ui/views/widget/desktop_aura/x11_whole_screen_move_loop.cc +++ b/ui/views/widget/desktop_aura/x11_whole_screen_move_loop.cc @@ -10,10 +10,12 @@ #include <utility> #include "base/bind.h" +#include "base/logging.h" #include "base/macros.h" #include "base/message_loop/message_loop.h" #include "base/run_loop.h" #include "base/single_thread_task_runner.h" +#include "base/threading/thread_task_runner_handle.h" #include "ui/aura/client/capture_client.h" #include "ui/aura/env.h" #include "ui/aura/window.h" @@ -73,6 +75,8 @@ bool X11WholeScreenMoveLoop::CanDispatchEvent(const ui::PlatformEvent& event) { } uint32_t X11WholeScreenMoveLoop::DispatchEvent(const ui::PlatformEvent& event) { + DCHECK(base::MessageLoopForUI::IsCurrent()); + // This method processes all events while the move loop is active. if (!in_move_loop_) return ui::POST_DISPATCH_PERFORM_DEFAULT; @@ -91,7 +95,7 @@ uint32_t X11WholeScreenMoveLoop::DispatchEvent(const ui::PlatformEvent& event) { // Post a task to dispatch mouse movement event when control returns to // the message loop. This allows smoother dragging since the events are // dispatched without waiting for the drag widget updates. - base::MessageLoopForUI::current()->task_runner()->PostTask( + base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::Bind(&X11WholeScreenMoveLoop::DispatchMouseMovement, weak_factory_.GetWeakPtr()));