| 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 497 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 508 event->setTarget(&element); | 508 event->setTarget(&element); |
| 509 element.scheduleEvent(event.release()); | 509 element.scheduleEvent(event.release()); |
| 510 } | 510 } |
| 511 | 511 |
| 512 void HTMLMediaElementEncryptedMedia::encrypted(HTMLMediaElement& element, const
String& initDataType, const unsigned char* initData, unsigned initDataLength) | 512 void HTMLMediaElementEncryptedMedia::encrypted(HTMLMediaElement& element, const
String& initDataType, const unsigned char* initData, unsigned initDataLength) |
| 513 { | 513 { |
| 514 WTF_LOG(Media, "HTMLMediaElementEncryptedMedia::encrypted: initDataType=%s",
initDataType.utf8().data()); | 514 WTF_LOG(Media, "HTMLMediaElementEncryptedMedia::encrypted: initDataType=%s",
initDataType.utf8().data()); |
| 515 | 515 |
| 516 if (RuntimeEnabledFeatures::encryptedMediaEnabled()) { | 516 if (RuntimeEnabledFeatures::encryptedMediaEnabled()) { |
| 517 // Send event for WD EME. | 517 // Send event for WD EME. |
| 518 // FIXME: Check origin before providing initData. http://crbug.com/41823
3. | 518 RefPtrWillBeRawPtr<Event> event; |
| 519 RefPtrWillBeRawPtr<Event> event = createEncryptedEvent(initDataType, ini
tData, initDataLength); | 519 if (element.mediaDataIsCORSSameOrigin(element.executionContext()->securi
tyOrigin())) { |
| 520 event = createEncryptedEvent(initDataType, initData, initDataLength)
; |
| 521 } else { |
| 522 // Current page is not allowed to see content from the media file, |
| 523 // so don't return the initData. However, they still get an event. |
| 524 event = createEncryptedEvent(emptyString(), nullptr, 0); |
| 525 } |
| 526 |
| 520 event->setTarget(&element); | 527 event->setTarget(&element); |
| 521 element.scheduleEvent(event.release()); | 528 element.scheduleEvent(event.release()); |
| 522 } | 529 } |
| 523 | 530 |
| 524 if (RuntimeEnabledFeatures::prefixedEncryptedMediaEnabled()) { | 531 if (RuntimeEnabledFeatures::prefixedEncryptedMediaEnabled()) { |
| 525 // Send event for v0.1b EME. | 532 // Send event for v0.1b EME. |
| 526 RefPtrWillBeRawPtr<Event> event = createWebkitNeedKeyEvent(initData, ini
tDataLength); | 533 RefPtrWillBeRawPtr<Event> event = createWebkitNeedKeyEvent(initData, ini
tDataLength); |
| 527 event->setTarget(&element); | 534 event->setTarget(&element); |
| 528 element.scheduleEvent(event.release()); | 535 element.scheduleEvent(event.release()); |
| 529 } | 536 } |
| (...skipping 21 matching lines...) Expand all Loading... |
| 551 return thisElement.contentDecryptionModule(); | 558 return thisElement.contentDecryptionModule(); |
| 552 } | 559 } |
| 553 | 560 |
| 554 void HTMLMediaElementEncryptedMedia::trace(Visitor* visitor) | 561 void HTMLMediaElementEncryptedMedia::trace(Visitor* visitor) |
| 555 { | 562 { |
| 556 visitor->trace(m_mediaKeys); | 563 visitor->trace(m_mediaKeys); |
| 557 WillBeHeapSupplement<HTMLMediaElement>::trace(visitor); | 564 WillBeHeapSupplement<HTMLMediaElement>::trace(visitor); |
| 558 } | 565 } |
| 559 | 566 |
| 560 } // namespace blink | 567 } // namespace blink |
| OLD | NEW |