Move atrace enabling code from Chrome to WebView

According to discussions, we decided to disable atrace for Chrome
because of the inaccuracy of timing in the trace due to the overhead
of atrace.

As WebView still needs atrace, move the atrace enabling code into
AwBrowserProcess.

BUG=trace-viewer:454 (https://code.google.com/p/trace-viewer/issues/detail?id=454)

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@256186 0039d316-1c4b-4281-b951-d872f2087c98
[GCM] Propagating SendError details all the way to the event.

OnSendError allows to specify more message content than simply and error message
and message ID, but it currently is ignored. This patch fixes that problem by
introducing SendErrorDetails structure and updating the whole stack to handle it
properly.

BUG=350026

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@256187 0039d316-1c4b-4281-b951-d872f2087c98
Eliminate a potential race in IPC::ChannelProxy

Doing the following steps with ChannelProxy leads to a data race:
1) Create the ChannelProxy, but don't initialize it.
2) Add a filter.
3) Init the ChannelProxy.

The problem is, AddFilter() posts a task from the Listener thread to the IPC task runner to do OnAddFilter. Prior to this patch, OnAddFilter will try to read channel_ even though channel_ may not have been initialized, and it's accessed without any synchronization.

This patch only really adds the filter if peer_pid_ has been set on the IPC::Channel thread; otherwise, it waits until the connection has been established to really add filters.

See the bug for more detail.

BUG=244383

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

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