void HTMLMediaElementEncryptedMedia::encrypted(HTMLMediaElement& element, const String& initDataType, const unsigned char* initData, unsigned initDataLength) { WTF_LOG(Media, "HTMLMediaElementEncryptedMedia::encrypted: initDataType=%s", initDataType.utf8().data()); if (RuntimeEnabledFeatures::encryptedMediaEnabled()) { // Send event for WD EME. // 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(initData, initDataLength); event->setTarget(&element); element.scheduleEvent(event.release()); } }
void HTMLMediaElementEncryptedMedia::keyAdded(HTMLMediaElement& element, const String& keySystem, const String& sessionId) { WTF_LOG(Media, "HTMLMediaElementEncryptedMedia::mediaPlayerKeyAdded"); MediaKeyEventInit initializer; initializer.setKeySystem(keySystem); initializer.setSessionId(sessionId); RefPtrWillBeRawPtr<Event> event = MediaKeyEvent::create(EventTypeNames::webkitkeyadded, initializer); event->setTarget(&element); element.scheduleEvent(event.release()); }
void HTMLMediaElementEncryptedMedia::keyMessage(HTMLMediaElement& element, const String& keySystem, const String& sessionId, const unsigned char* message, unsigned messageLength, const WebURL& defaultURL) { WTF_LOG(Media, "HTMLMediaElementEncryptedMedia::mediaPlayerKeyMessage: sessionID=%s", sessionId.utf8().data()); MediaKeyEventInit initializer; initializer.setKeySystem(keySystem); initializer.setSessionId(sessionId); initializer.setMessage(DOMUint8Array::create(message, messageLength)); initializer.setDefaultURL(KURL(defaultURL)); RefPtrWillBeRawPtr<Event> event = MediaKeyEvent::create(EventTypeNames::webkitkeymessage, initializer); event->setTarget(&element); element.scheduleEvent(event.release()); }
void HTMLMediaElementEncryptedMedia::keyError(HTMLMediaElement& element, const String& keySystem, const String& sessionId, WebMediaPlayerClient::MediaKeyErrorCode errorCode, unsigned short systemCode) { WTF_LOG(Media, "HTMLMediaElementEncryptedMedia::mediaPlayerKeyError: sessionID=%s, errorCode=%d, systemCode=%d", sessionId.utf8().data(), errorCode, systemCode); MediaKeyError::Code mediaKeyErrorCode = MediaKeyError::MEDIA_KEYERR_UNKNOWN; switch (errorCode) { case WebMediaPlayerClient::MediaKeyErrorCodeUnknown: mediaKeyErrorCode = MediaKeyError::MEDIA_KEYERR_UNKNOWN; break; case WebMediaPlayerClient::MediaKeyErrorCodeClient: mediaKeyErrorCode = MediaKeyError::MEDIA_KEYERR_CLIENT; break; case WebMediaPlayerClient::MediaKeyErrorCodeService: mediaKeyErrorCode = MediaKeyError::MEDIA_KEYERR_SERVICE; break; case WebMediaPlayerClient::MediaKeyErrorCodeOutput: mediaKeyErrorCode = MediaKeyError::MEDIA_KEYERR_OUTPUT; break; case WebMediaPlayerClient::MediaKeyErrorCodeHardwareChange: mediaKeyErrorCode = MediaKeyError::MEDIA_KEYERR_HARDWARECHANGE; break; case WebMediaPlayerClient::MediaKeyErrorCodeDomain: mediaKeyErrorCode = MediaKeyError::MEDIA_KEYERR_DOMAIN; break; } MediaKeyEventInit initializer; initializer.keySystem = keySystem; initializer.sessionId = sessionId; initializer.errorCode = MediaKeyError::create(mediaKeyErrorCode); initializer.systemCode = systemCode; initializer.bubbles = false; initializer.cancelable = false; RefPtrWillBeRawPtr<Event> event = MediaKeyEvent::create(EventTypeNames::webkitkeyerror, initializer); event->setTarget(&element); element.scheduleEvent(event.release()); }