| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "config.h" | 5 #include "config.h" |
| 6 #include "modules/encryptedmedia/HTMLMediaElementEncryptedMedia.h" | 6 #include "modules/encryptedmedia/HTMLMediaElementEncryptedMedia.h" |
| 7 | 7 |
| 8 #include "bindings/core/v8/ExceptionState.h" | 8 #include "bindings/core/v8/ExceptionState.h" |
| 9 #include "bindings/core/v8/ScriptPromise.h" | 9 #include "bindings/core/v8/ScriptPromise.h" |
| 10 #include "bindings/core/v8/ScriptPromiseResolver.h" | 10 #include "bindings/core/v8/ScriptPromiseResolver.h" |
| (...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 302 initializer.setBubbles(false); | 302 initializer.setBubbles(false); |
| 303 initializer.setCancelable(false); | 303 initializer.setCancelable(false); |
| 304 | 304 |
| 305 return MediaEncryptedEvent::create(EventTypeNames::encrypted, initializer); | 305 return MediaEncryptedEvent::create(EventTypeNames::encrypted, initializer); |
| 306 } | 306 } |
| 307 | 307 |
| 308 // Create a 'needkey' MediaKeyEvent for v0.1b EME. | 308 // Create a 'needkey' MediaKeyEvent for v0.1b EME. |
| 309 static PassRefPtrWillBeRawPtr<Event> createWebkitNeedKeyEvent(const unsigned cha
r* initData, unsigned initDataLength) | 309 static PassRefPtrWillBeRawPtr<Event> createWebkitNeedKeyEvent(const unsigned cha
r* initData, unsigned initDataLength) |
| 310 { | 310 { |
| 311 MediaKeyEventInit webkitInitializer; | 311 MediaKeyEventInit webkitInitializer; |
| 312 webkitInitializer.keySystem = String(); | 312 webkitInitializer.setInitData(DOMUint8Array::create(initData, initDataLength
)); |
| 313 webkitInitializer.sessionId = String(); | |
| 314 webkitInitializer.initData = DOMUint8Array::create(initData, initDataLength)
; | |
| 315 webkitInitializer.bubbles = false; | |
| 316 webkitInitializer.cancelable = false; | |
| 317 | 313 |
| 318 return MediaKeyEvent::create(EventTypeNames::webkitneedkey, webkitInitialize
r); | 314 return MediaKeyEvent::create(EventTypeNames::webkitneedkey, webkitInitialize
r); |
| 319 } | 315 } |
| 320 | 316 |
| 321 void HTMLMediaElementEncryptedMedia::webkitGenerateKeyRequest(HTMLMediaElement&
element, const String& keySystem, PassRefPtr<DOMUint8Array> initData, ExceptionS
tate& exceptionState) | 317 void HTMLMediaElementEncryptedMedia::webkitGenerateKeyRequest(HTMLMediaElement&
element, const String& keySystem, PassRefPtr<DOMUint8Array> initData, ExceptionS
tate& exceptionState) |
| 322 { | 318 { |
| 323 HTMLMediaElementEncryptedMedia::from(element).generateKeyRequest(element.web
MediaPlayer(), keySystem, initData, exceptionState); | 319 HTMLMediaElementEncryptedMedia::from(element).generateKeyRequest(element.web
MediaPlayer(), keySystem, initData, exceptionState); |
| 324 } | 320 } |
| 325 | 321 |
| 326 void HTMLMediaElementEncryptedMedia::generateKeyRequest(WebMediaPlayer* webMedia
Player, const String& keySystem, PassRefPtr<DOMUint8Array> initData, ExceptionSt
ate& exceptionState) | 322 void HTMLMediaElementEncryptedMedia::generateKeyRequest(WebMediaPlayer* webMedia
Player, const String& keySystem, PassRefPtr<DOMUint8Array> initData, ExceptionSt
ate& exceptionState) |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 434 | 430 |
| 435 WebMediaPlayer::MediaKeyException result = webMediaPlayer->cancelKeyRequest(
keySystem, sessionId); | 431 WebMediaPlayer::MediaKeyException result = webMediaPlayer->cancelKeyRequest(
keySystem, sessionId); |
| 436 throwExceptionIfMediaKeyExceptionOccurred(keySystem, sessionId, result, exce
ptionState); | 432 throwExceptionIfMediaKeyExceptionOccurred(keySystem, sessionId, result, exce
ptionState); |
| 437 } | 433 } |
| 438 | 434 |
| 439 void HTMLMediaElementEncryptedMedia::keyAdded(HTMLMediaElement& element, const S
tring& keySystem, const String& sessionId) | 435 void HTMLMediaElementEncryptedMedia::keyAdded(HTMLMediaElement& element, const S
tring& keySystem, const String& sessionId) |
| 440 { | 436 { |
| 441 WTF_LOG(Media, "HTMLMediaElementEncryptedMedia::mediaPlayerKeyAdded"); | 437 WTF_LOG(Media, "HTMLMediaElementEncryptedMedia::mediaPlayerKeyAdded"); |
| 442 | 438 |
| 443 MediaKeyEventInit initializer; | 439 MediaKeyEventInit initializer; |
| 444 initializer.keySystem = keySystem; | 440 initializer.setKeySystem(keySystem); |
| 445 initializer.sessionId = sessionId; | 441 initializer.setSessionId(sessionId); |
| 446 initializer.bubbles = false; | |
| 447 initializer.cancelable = false; | |
| 448 | 442 |
| 449 RefPtrWillBeRawPtr<Event> event = MediaKeyEvent::create(EventTypeNames::webk
itkeyadded, initializer); | 443 RefPtrWillBeRawPtr<Event> event = MediaKeyEvent::create(EventTypeNames::webk
itkeyadded, initializer); |
| 450 event->setTarget(&element); | 444 event->setTarget(&element); |
| 451 element.scheduleEvent(event.release()); | 445 element.scheduleEvent(event.release()); |
| 452 } | 446 } |
| 453 | 447 |
| 454 void HTMLMediaElementEncryptedMedia::keyError(HTMLMediaElement& element, const S
tring& keySystem, const String& sessionId, WebMediaPlayerClient::MediaKeyErrorCo
de errorCode, unsigned short systemCode) | 448 void HTMLMediaElementEncryptedMedia::keyError(HTMLMediaElement& element, const S
tring& keySystem, const String& sessionId, WebMediaPlayerClient::MediaKeyErrorCo
de errorCode, unsigned short systemCode) |
| 455 { | 449 { |
| 456 WTF_LOG(Media, "HTMLMediaElementEncryptedMedia::mediaPlayerKeyError: session
ID=%s, errorCode=%d, systemCode=%d", sessionId.utf8().data(), errorCode, systemC
ode); | 450 WTF_LOG(Media, "HTMLMediaElementEncryptedMedia::mediaPlayerKeyError: session
ID=%s, errorCode=%d, systemCode=%d", sessionId.utf8().data(), errorCode, systemC
ode); |
| 457 | 451 |
| (...skipping 13 matching lines...) Expand all Loading... |
| 471 break; | 465 break; |
| 472 case WebMediaPlayerClient::MediaKeyErrorCodeHardwareChange: | 466 case WebMediaPlayerClient::MediaKeyErrorCodeHardwareChange: |
| 473 mediaKeyErrorCode = MediaKeyError::MEDIA_KEYERR_HARDWARECHANGE; | 467 mediaKeyErrorCode = MediaKeyError::MEDIA_KEYERR_HARDWARECHANGE; |
| 474 break; | 468 break; |
| 475 case WebMediaPlayerClient::MediaKeyErrorCodeDomain: | 469 case WebMediaPlayerClient::MediaKeyErrorCodeDomain: |
| 476 mediaKeyErrorCode = MediaKeyError::MEDIA_KEYERR_DOMAIN; | 470 mediaKeyErrorCode = MediaKeyError::MEDIA_KEYERR_DOMAIN; |
| 477 break; | 471 break; |
| 478 } | 472 } |
| 479 | 473 |
| 480 MediaKeyEventInit initializer; | 474 MediaKeyEventInit initializer; |
| 481 initializer.keySystem = keySystem; | 475 initializer.setKeySystem(keySystem); |
| 482 initializer.sessionId = sessionId; | 476 initializer.setSessionId(sessionId); |
| 483 initializer.errorCode = MediaKeyError::create(mediaKeyErrorCode); | 477 initializer.setErrorCode(MediaKeyError::create(mediaKeyErrorCode)); |
| 484 initializer.systemCode = systemCode; | 478 initializer.setSystemCode(systemCode); |
| 485 initializer.bubbles = false; | |
| 486 initializer.cancelable = false; | |
| 487 | 479 |
| 488 RefPtrWillBeRawPtr<Event> event = MediaKeyEvent::create(EventTypeNames::webk
itkeyerror, initializer); | 480 RefPtrWillBeRawPtr<Event> event = MediaKeyEvent::create(EventTypeNames::webk
itkeyerror, initializer); |
| 489 event->setTarget(&element); | 481 event->setTarget(&element); |
| 490 element.scheduleEvent(event.release()); | 482 element.scheduleEvent(event.release()); |
| 491 } | 483 } |
| 492 | 484 |
| 493 void HTMLMediaElementEncryptedMedia::keyMessage(HTMLMediaElement& element, const
String& keySystem, const String& sessionId, const unsigned char* message, unsig
ned messageLength, const WebURL& defaultURL) | 485 void HTMLMediaElementEncryptedMedia::keyMessage(HTMLMediaElement& element, const
String& keySystem, const String& sessionId, const unsigned char* message, unsig
ned messageLength, const WebURL& defaultURL) |
| 494 { | 486 { |
| 495 WTF_LOG(Media, "HTMLMediaElementEncryptedMedia::mediaPlayerKeyMessage: sessi
onID=%s", sessionId.utf8().data()); | 487 WTF_LOG(Media, "HTMLMediaElementEncryptedMedia::mediaPlayerKeyMessage: sessi
onID=%s", sessionId.utf8().data()); |
| 496 | 488 |
| 497 MediaKeyEventInit initializer; | 489 MediaKeyEventInit initializer; |
| 498 initializer.keySystem = keySystem; | 490 initializer.setKeySystem(keySystem); |
| 499 initializer.sessionId = sessionId; | 491 initializer.setSessionId(sessionId); |
| 500 initializer.message = DOMUint8Array::create(message, messageLength); | 492 initializer.setMessage(DOMUint8Array::create(message, messageLength)); |
| 501 initializer.defaultURL = KURL(defaultURL); | 493 initializer.setDefaultURL(KURL(defaultURL)); |
| 502 initializer.bubbles = false; | |
| 503 initializer.cancelable = false; | |
| 504 | 494 |
| 505 RefPtrWillBeRawPtr<Event> event = MediaKeyEvent::create(EventTypeNames::webk
itkeymessage, initializer); | 495 RefPtrWillBeRawPtr<Event> event = MediaKeyEvent::create(EventTypeNames::webk
itkeymessage, initializer); |
| 506 event->setTarget(&element); | 496 event->setTarget(&element); |
| 507 element.scheduleEvent(event.release()); | 497 element.scheduleEvent(event.release()); |
| 508 } | 498 } |
| 509 | 499 |
| 510 void HTMLMediaElementEncryptedMedia::encrypted(HTMLMediaElement& element, const
String& initDataType, const unsigned char* initData, unsigned initDataLength) | 500 void HTMLMediaElementEncryptedMedia::encrypted(HTMLMediaElement& element, const
String& initDataType, const unsigned char* initData, unsigned initDataLength) |
| 511 { | 501 { |
| 512 WTF_LOG(Media, "HTMLMediaElementEncryptedMedia::encrypted: initDataType=%s",
initDataType.utf8().data()); | 502 WTF_LOG(Media, "HTMLMediaElementEncryptedMedia::encrypted: initDataType=%s",
initDataType.utf8().data()); |
| 513 | 503 |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 549 return thisElement.contentDecryptionModule(); | 539 return thisElement.contentDecryptionModule(); |
| 550 } | 540 } |
| 551 | 541 |
| 552 void HTMLMediaElementEncryptedMedia::trace(Visitor* visitor) | 542 void HTMLMediaElementEncryptedMedia::trace(Visitor* visitor) |
| 553 { | 543 { |
| 554 visitor->trace(m_mediaKeys); | 544 visitor->trace(m_mediaKeys); |
| 555 WillBeHeapSupplement<HTMLMediaElement>::trace(visitor); | 545 WillBeHeapSupplement<HTMLMediaElement>::trace(visitor); |
| 556 } | 546 } |
| 557 | 547 |
| 558 } // namespace blink | 548 } // namespace blink |
| OLD | NEW |