[GCM] Implementation of GCM JS API (Send and Register)
* implementation of chrome.gcm.send
* implementation of chrome.gcm.register
* additional argument validation for both
* tests for send and register.

BUG=316683

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@237477 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 237477
Handle an aborted connection before accept is called.

This is the POSIX equivalent of https://codereview.chromium.org/25686003/.

R=rpaquay@chromium.org,yzshen@chromium.org
BUG=170595
TEST=none

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@237478 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 237478
Retains focus if a notification is closed with the keyboard.

When the notification center is laid out after a notification change, it
removes all child views from the hierarchy, causing the focus manager to
clear the focus state.  This patch saves the focused view and restores
it after the notifications are added back.

BUG=321850,312890

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

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