Support session management in AesDecryptor.

Add support for session management in the ClearKey key system. The EME spec
is ambiguous on what happens if the same keyid is added to multiple sessions.
This change will always use the latest supplied key for a given keyid, provided
the session is still valid. When a session is deleted, all keys associated with
that session are dropped.

Also added a test for ReleaseSession, since it wasn't being exercised in the
current AesDecryptor tests.

BUG=313412
TEST=media_unittests all pass, plus relevant browser tests

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240042 0039d316-1c4b-4281-b951-d872f2087c98
Fix a problem that DidEnterFullscreen is fired when exiting fullscreen

When exiting fullscreen, we will pass a Null surface to BrowserMediaPlayerManager::SetVideoSurface().
In this case, we should not send DidExitFullscreen IPC to renderer

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240043 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 240043
Pass pepper apps API calls through the existing js apps API bindings.

Previously, pepper apps API calls which are dispatched through the
renderer bypassed the js bindings and missed out on any custom behavior
implemented in those bindings. With this change, the API calls are
passed through the js bindings.

BUG=323067

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

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