| Index: Source/modules/encryptedmedia/HTMLMediaElementEncryptedMedia.cpp
|
| diff --git a/Source/modules/encryptedmedia/HTMLMediaElementEncryptedMedia.cpp b/Source/modules/encryptedmedia/HTMLMediaElementEncryptedMedia.cpp
|
| index 671330fb1712d8a484fb4199d370d4ec3ffe96b8..91b33a26a681315289cf2ef6414fe121e19fc36e 100644
|
| --- a/Source/modules/encryptedmedia/HTMLMediaElementEncryptedMedia.cpp
|
| +++ b/Source/modules/encryptedmedia/HTMLMediaElementEncryptedMedia.cpp
|
| @@ -14,12 +14,13 @@
|
| #include "core/html/HTMLMediaElement.h"
|
| #include "core/html/MediaKeyError.h"
|
| #include "core/html/MediaKeyEvent.h"
|
| -#include "modules/encryptedmedia/MediaKeyNeededEvent.h"
|
| +#include "modules/encryptedmedia/MediaEncryptedEvent.h"
|
| #include "modules/encryptedmedia/MediaKeys.h"
|
| #include "modules/encryptedmedia/SimpleContentDecryptionModuleResult.h"
|
| #include "platform/ContentDecryptionModuleResult.h"
|
| #include "platform/Logging.h"
|
| #include "platform/RuntimeEnabledFeatures.h"
|
| +#include "wtf/ArrayBuffer.h"
|
| #include "wtf/Functional.h"
|
| #include "wtf/Uint8Array.h"
|
|
|
| @@ -286,20 +287,20 @@ ScriptPromise HTMLMediaElementEncryptedMedia::setMediaKeys(ScriptState* scriptSt
|
| return SetMediaKeysHandler::create(scriptState, element, mediaKeys);
|
| }
|
|
|
| -// Create a MediaKeyNeededEvent for WD EME.
|
| -static PassRefPtrWillBeRawPtr<Event> createNeedKeyEvent(const String& contentType, const unsigned char* initData, unsigned initDataLength)
|
| +// Create a MediaEncryptedEvent for WD EME.
|
| +static PassRefPtrWillBeRawPtr<Event> createEncryptedEvent(const String& initDataType, const unsigned char* initData, unsigned initDataLength)
|
| {
|
| - MediaKeyNeededEventInit initializer;
|
| - initializer.contentType = contentType;
|
| - initializer.initData = Uint8Array::create(initData, initDataLength);
|
| + MediaEncryptedEventInit initializer;
|
| + initializer.initDataType = initDataType;
|
| + initializer.initData = ArrayBuffer::create(initData, initDataLength);
|
| initializer.bubbles = false;
|
| initializer.cancelable = false;
|
|
|
| - return MediaKeyNeededEvent::create(EventTypeNames::needkey, initializer);
|
| + return MediaEncryptedEvent::create(EventTypeNames::encrypted, initializer);
|
| }
|
|
|
| // Create a 'needkey' MediaKeyEvent for v0.1b EME.
|
| -static PassRefPtrWillBeRawPtr<Event> createWebkitNeedKeyEvent(const String& contentType, const unsigned char* initData, unsigned initDataLength)
|
| +static PassRefPtrWillBeRawPtr<Event> createWebkitNeedKeyEvent(const unsigned char* initData, unsigned initDataLength)
|
| {
|
| MediaKeyEventInit webkitInitializer;
|
| webkitInitializer.keySystem = String();
|
| @@ -500,20 +501,21 @@ void HTMLMediaElementEncryptedMedia::keyMessage(HTMLMediaElement& element, const
|
| element.scheduleEvent(event.release());
|
| }
|
|
|
| -void HTMLMediaElementEncryptedMedia::keyNeeded(HTMLMediaElement& element, const String& contentType, const unsigned char* initData, unsigned initDataLength)
|
| +void HTMLMediaElementEncryptedMedia::encrypted(HTMLMediaElement& element, const String& initDataType, const unsigned char* initData, unsigned initDataLength)
|
| {
|
| - WTF_LOG(Media, "HTMLMediaElementEncryptedMedia::mediaPlayerKeyNeeded: contentType=%s", contentType.utf8().data());
|
| + WTF_LOG(Media, "HTMLMediaElementEncryptedMedia::encrypted: initDataType=%s", initDataType.utf8().data());
|
|
|
| if (RuntimeEnabledFeatures::encryptedMediaEnabled()) {
|
| // Send event for WD EME.
|
| - RefPtrWillBeRawPtr<Event> event = createNeedKeyEvent(contentType, initData, initDataLength);
|
| + // FIXME: Check origin before providing initData. http://crbug.com/418233.
|
| + RefPtrWillBeRawPtr<Event> event = createEncryptedEvent(initDataType, initData, initDataLength);
|
| event->setTarget(&element);
|
| element.scheduleEvent(event.release());
|
| }
|
|
|
| if (RuntimeEnabledFeatures::prefixedEncryptedMediaEnabled()) {
|
| // Send event for v0.1b EME.
|
| - RefPtrWillBeRawPtr<Event> event = createWebkitNeedKeyEvent(contentType, initData, initDataLength);
|
| + RefPtrWillBeRawPtr<Event> event = createWebkitNeedKeyEvent(initData, initDataLength);
|
| event->setTarget(&element);
|
| element.scheduleEvent(event.release());
|
| }
|
|
|