EME: Correctly handle container-only contentType strings

Container-only contentType strings are now only allowed if they
imply a codec. Since none of the supported containers fall into
this category, ignore the configuration if codecs= is not specified.

For compatability with existing applications, allow (and add a
deprecation message) if "audio/webm", "video/webm", "audio/mp4",
or "video/mp4" are used without a codec string. Also add UMA
statistics so we can tell when this exception can be removed.
The UMA will log the the number of successful calls where
audioCapabilities or videoCapabilities are specified, and whether
the contentType string contains codecs= or not.

For compatability with other browsers (which may not enforce this),
the deprecation message is only generated on a successful
requestMediaKeySystemAccess() call (provided the successful
configuration specified a contentType without codecs=). This
will allow clients to attempt requestMediaKeySystemAccess() with
and without codecs= until all browsers enforce this requirement.

BUG=605661
TEST=updated EME layout tests passes

Review-Url: https://codereview.chromium.org/1911953003
Cr-Commit-Position: refs/heads/master@{#390711}
(cherry picked from commit 1e7a1cb3a153677ad560ce47e18b4bb2b107ae32)

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

Cr-Commit-Position: refs/branch-heads/2704@{#338}
Cr-Branched-From: 6e53600def8f60d8c632fadc70d7c1939ccea347-refs/heads/master@{#386251}
6 files changed