Make MessagePipe use an std::deque instead of an std::list.

This yields ~10% performance improvement in the
MessagePipe_WriteAndRead_10bytes portion of
SystemPerftest.MessagePipe_WriteAndRead (from ~3 million
iterations/second to ~3.3, on my Z620).

R=darin@chromium.org, darin

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@228209 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 228209
Add a "RawChannel" abstraction (with an implementation for Chromium POSIX).

This abstraction is meant to provide for reading/writing |MessageInTransit|s to
an OS-level pipe. Writes (|WriteMessage()|) can be done from any thread. Reads
are handled on the I/O message loop's thread.

(We need a MessageLoopForIO since we need its FD-watching capabilities, at least
on POSIX. This is really inessential -- we really only need/want a thread that's
capable of watching FDs. Possibly, things should be abstracted further.)

R=darin@chromium.org

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@228210 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 228210
Move renderer plugin code into a new component.

Android Webview needs to use some of the renderer plugin code, however
this code is currently in chrome. This commit moves the parts of this
code that don't depend on the rest of chrome into a new component.

BUG=283713

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@228211 0039d316-1c4b-4281-b951-d872f2087c98
Implement new synthetic gesture class.

First patch in an effort to clean up synthetic gesture handling.

Implement abstract synthetic gesture class, with subclasses for each individual
gesture (only smooth scroll for now). Gestures are manually serialized and
deserialized to send them over IPC without requiring specific message types for
each gesture type.

The class is called "NewSyntheticGesture" for now to avoid clashes with the current SyntheticGesture class. Once the new synthetic gesture stack is complete, I'll remove the old class and rename the new one.

Add SyntheticGesturePacket as a wrapper for synthetic gestures and implement
ParamTraits template for sending it over IPC.

Unit test for checking that serializing and deserializing gestures works as
intended.

BUG=297980

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@228212 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 228212