Made MessagePump a non-thread safe class.

This CL makes MessagePump a non-thread safe class to make sure thread-bound resources (such as the UI window used for pumping messages on Windows) are freed on the correct thread.

Handling of incoming tasks and synchronization between different threads was moved out to a separate class - IncomingTaskQueue reducing the number of locks to be taken while posting a task to one. Posting tasks via both MessageLoop and MessageLoopProxyImpl is now routed via IncomingTaskQueue.

TBR all reviewers from https://chromiumcodereview.appspot.com/17567007/ because this is a re-land of it with a mechanical fix (adding a missing header).

TBR=rsesek@chromium.org,darin@chromium.org,thakis@chromium.org,rvargas@chromium.org,dalecurtis@chromium.org

BUG=241939

Review URL: https://codereview.chromium.org/19661004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@212987 0039d316-1c4b-4281-b951-d872f2087c98


CrOS-Libchrome-Original-Commit: 54aa4f1ad7293be94fc044ee2f8adcffe729986d
diff --git a/base/base.gypi b/base/base.gypi
index 19fdcb9..02abd4b 100644
--- a/base/base.gypi
+++ b/base/base.gypi
@@ -300,6 +300,8 @@
           'memory/singleton.h',
           'memory/weak_ptr.cc',
           'memory/weak_ptr.h',
+          'message_loop/incoming_task_queue.cc',
+          'message_loop/incoming_task_queue.h',
           'message_loop/message_loop.cc',
           'message_loop/message_loop.h',
           'message_loop/message_loop_proxy.cc',