Enhance AudioSplicer to crossfade marked splice frames.

The AudioSplicer now allows external clients to indicate when a
splice frame is coming up with SetSpliceTimestamp().

Once set buffers involved in the splice are queued until enough
overlapping buffers are recieved to perform a crossfade.

To do this an AudioStreamSanitizer has been factorized out from
the existing AudioSplicer code.  It handles ensure streams are
contiguous much in the way the splicer did before.

AudioSplicer itself now owns three separate AudioStreamSanitizers.
|sanitizer_| is the one which AudioSplicer callers will access.
|pre_splice_sanitizer_| for buffers with timestamps before the splice.
|post_splice_sanitizer_| for buffers with timestamps after the splice.

Once enough data for the crossfade is received (or end of stream)
the pre and post sanitizers are drained, trimmed, and crossfaded
in accordance with the MSE audio splice frame algorithm:

https://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html#sourcebuffer-audio-splice-rendering-algorithm

Future changes will enable SourceBufferStream to tag DecoderBuffers
with a splice timestamp which will be consumed by AudioBufferStream
and passed along to AudioSplicer.

BUG=334493
TEST=new unittests

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@254279 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 254279
Remove blank password UMA collection

This seems to cause some XP machines and Vista machines with blank
passwords to not work at all. This is because we call GetOsPasswordStatus()
10 seconds after a webcontents is created.

TBR=jam
BUG=345916

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

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

BUG=343585
TEST=none
NOCHECK=true

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@254281 0039d316-1c4b-4281-b951-d872f2087c98
[GCM] RegistrationRequest is retrying when sender is invlalid

It turns out that some of the Error="*" responses come as HTTP_OK, and some not. Given that check for HTTP_OK was done before response was parsed, we were missing some of the error conditions, including INVALID_SENDER and retrying assuming UNKNOWN_ERROR.

The problem was already partially mitigated by failing after sever attempts, but with this fix we will actually start seeing the INVALID_SENDER response.

Semantics of the HTTP_NOT_OK result was updated to distinguish it from UNKNOWN_ERROR in the following way:
* if we have HTTP_OK but cannot parse token or error, we return UNKNOWN_ERROR,
* if we don't have HTTP_OK an cannot parse error, we return HTTP_NOT_OK.

Also updating the string comparisons in GetStatusFromError to use find instead of ==, to make sure that if there is more content in response, we can parse the error.

BUG=345408

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

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