Index: Source/core/html/HTMLMediaElement.cpp |
diff --git a/Source/core/html/HTMLMediaElement.cpp b/Source/core/html/HTMLMediaElement.cpp |
index 2503550f60f4cfecdf2ca5ee238b38cfb907506b..9f8ce51819dba62c8af9fd659272b318396893c7 100644 |
--- a/Source/core/html/HTMLMediaElement.cpp |
+++ b/Source/core/html/HTMLMediaElement.cpp |
@@ -1710,46 +1710,42 @@ void HTMLMediaElement::mediaPlayerKeyMessage(const String& keySystem, const Stri |
m_asyncEventQueue->enqueueEvent(event.release()); |
} |
-bool HTMLMediaElement::mediaPlayerKeyNeeded(const String& keySystem, const String& sessionId, const unsigned char* initData, unsigned initDataLength) |
-{ |
- if (!hasEventListeners(EventTypeNames::webkitneedkey)) { |
- m_error = MediaError::create(MediaError::MEDIA_ERR_ENCRYPTED); |
- scheduleEvent(EventTypeNames::error); |
- return false; |
+bool HTMLMediaElement::mediaPlayerKeyNeeded(const String& contentType, const unsigned char* initData, unsigned initDataLength) |
+{ |
+ // Send event for WD EME, if available. |
+ if (hasEventListeners(EventTypeNames::needkey)) { |
+ MediaKeyNeededEventInit initializer; |
+ initializer.contentType = contentType; |
+ initializer.initData = Uint8Array::create(initData, initDataLength); |
+ initializer.bubbles = false; |
+ initializer.cancelable = false; |
+ |
+ RefPtr<Event> event = MediaKeyNeededEvent::create(EventTypeNames::needkey, initializer); |
+ event->setTarget(this); |
+ m_asyncEventQueue->enqueueEvent(event.release()); |
+ return true; |
ddorwin
2014/01/13 19:17:49
We shouldn't return. We may need to fire both even
jrummell
2014/01/13 22:43:44
Done.
|
} |
- MediaKeyEventInit initializer; |
- initializer.keySystem = keySystem; |
- initializer.sessionId = sessionId; |
- initializer.initData = Uint8Array::create(initData, initDataLength); |
- initializer.bubbles = false; |
- initializer.cancelable = false; |
- |
- RefPtr<Event> event = MediaKeyEvent::create(EventTypeNames::webkitneedkey, initializer); |
- event->setTarget(this); |
- m_asyncEventQueue->enqueueEvent(event.release()); |
- return true; |
-} |
+ // Send event for v0.1b EME, if available. |
+ // FIXME: Remove once v0.1b EME is removed. |
+ if (hasEventListeners(EventTypeNames::webkitneedkey)) { |
+ MediaKeyEventInit initializer; |
+ initializer.keySystem = String(); |
+ initializer.sessionId = String(); |
+ initializer.initData = Uint8Array::create(initData, initDataLength); |
+ initializer.bubbles = false; |
+ initializer.cancelable = false; |
-bool HTMLMediaElement::mediaPlayerKeyNeeded(Uint8Array* initData) |
-{ |
- // FIXME: This should be using the unprefixed event name ("needkey"). |
- if (!hasEventListeners("webkitneedkey")) { |
- m_error = MediaError::create(MediaError::MEDIA_ERR_ENCRYPTED); |
- scheduleEvent(EventTypeNames::error); |
- return false; |
+ RefPtr<Event> event = MediaKeyEvent::create(EventTypeNames::webkitneedkey, initializer); |
+ event->setTarget(this); |
+ m_asyncEventQueue->enqueueEvent(event.release()); |
+ return true; |
} |
- MediaKeyNeededEventInit initializer; |
- initializer.initData = initData; |
- initializer.bubbles = false; |
- initializer.cancelable = false; |
- |
- RefPtr<Event> event = MediaKeyNeededEvent::create(EventTypeNames::webkitneedkey, initializer); |
- event->setTarget(this); |
- m_asyncEventQueue->enqueueEvent(event.release()); |
- |
- return true; |
+ // Unable to send an event, so send an error. |
+ m_error = MediaError::create(MediaError::MEDIA_ERR_ENCRYPTED); |
+ scheduleEvent(EventTypeNames::error); |
+ return false; |
} |
blink::WebContentDecryptionModule* HTMLMediaElement::contentDecryptionModule() |