Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1250)

Unified Diff: Source/modules/encryptedmedia/MediaKeys.cpp

Issue 183943003: Verify MediaKeys parameter values consistently (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: One method Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | Source/platform/drm/ContentDecryptionModule.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/modules/encryptedmedia/MediaKeys.cpp
diff --git a/Source/modules/encryptedmedia/MediaKeys.cpp b/Source/modules/encryptedmedia/MediaKeys.cpp
index d0e173a96c1859077feaaf9cfdbc00005c6e1bb6..31823f362198302400affbf7e48705846368c4e7 100644
--- a/Source/modules/encryptedmedia/MediaKeys.cpp
+++ b/Source/modules/encryptedmedia/MediaKeys.cpp
@@ -41,6 +41,15 @@
namespace WebCore {
+static bool isKeySystemSupportedWithContentType(const String& keySystem, const String& contentType)
+{
+ ASSERT(!keySystem.isEmpty());
+
+ ContentType type(contentType);
+ String codecs = type.parameter("codecs");
+ return MIMETypeRegistry::isSupportedEncryptedMediaMIMEType(keySystem, type.type(), codecs);
+}
+
PassRefPtrWillBeRawPtr<MediaKeys> MediaKeys::create(ExecutionContext* context, const String& keySystem, ExceptionState& exceptionState)
{
// From <http://dvcs.w3.org/hg/html-media/raw-file/default/encrypted-media/encrypted-media.html#dom-media-keys-constructor>:
@@ -53,7 +62,7 @@ PassRefPtrWillBeRawPtr<MediaKeys> MediaKeys::create(ExecutionContext* context, c
}
// 2. If keySystem is not one of the user agent's supported Key Systems, throw a NotSupportedError and abort these steps.
- if (!ContentDecryptionModule::supportsKeySystem(keySystem)) {
+ if (!isKeySystemSupportedWithContentType(keySystem, "")) {
exceptionState.throwDOMException(NotSupportedError, "The '" + keySystem + "' key system is not supported.");
return nullptr;
}
@@ -108,7 +117,7 @@ PassRefPtrWillBeRawPtr<MediaKeySession> MediaKeys::createSession(ExecutionContex
// 1. If type contains a MIME type that is not supported or is not supported by the keySystem,
// throw a NOT_SUPPORTED_ERR exception and abort these steps.
- if (!m_cdm->supportsMIMEType(contentType)) {
+ if (!isKeySystemSupportedWithContentType(m_keySystem, contentType)) {
exceptionState.throwDOMException(NotSupportedError, "The type provided ('" + contentType + "') is unsupported.");
return nullptr;
}
@@ -141,7 +150,7 @@ bool MediaKeys::isTypeSupported(const String& keySystem, const String& contentTy
// 2. If keySystem contains an unrecognized or unsupported Key System, return false and abort
// these steps. Key system string comparison is case-sensitive.
- if (!MIMETypeRegistry::isSupportedEncryptedMediaMIMEType(keySystem, "", ""))
+ if (!isKeySystemSupportedWithContentType(keySystem, ""))
return false;
// 3. If contentType is null or an empty string, return true and abort these steps.
@@ -150,10 +159,7 @@ bool MediaKeys::isTypeSupported(const String& keySystem, const String& contentTy
// 4. If the Key System specified by keySystem does not support decrypting the container and/or
// codec specified by contentType, return false and abort these steps.
- ContentType type(contentType);
- String codecs = type.parameter("codecs");
-
- return MIMETypeRegistry::isSupportedEncryptedMediaMIMEType(keySystem, type.type(), codecs);
+ return isKeySystemSupportedWithContentType(keySystem, contentType);
}
void MediaKeys::setMediaElement(HTMLMediaElement* element)
« no previous file with comments | « no previous file | Source/platform/drm/ContentDecryptionModule.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698