Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(114)

Side by Side Diff: Source/modules/encryptedmedia/HTMLMediaElementEncryptedMedia.cpp

Issue 950813005: Change initDataType and sessionType to be enums (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: android compile issues Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 289 matching lines...) Expand 10 before | Expand all | Expand 10 after
300 // 1. If mediaKeys and the mediaKeys attribute are the same object, return 300 // 1. If mediaKeys and the mediaKeys attribute are the same object, return
301 // a promise resolved with undefined. 301 // a promise resolved with undefined.
302 if (thisElement.m_mediaKeys == mediaKeys) 302 if (thisElement.m_mediaKeys == mediaKeys)
303 return ScriptPromise::cast(scriptState, v8::Undefined(scriptState->isola te())); 303 return ScriptPromise::cast(scriptState, v8::Undefined(scriptState->isola te()));
304 304
305 // 2. Let promise be a new promise. Remaining steps done in handler. 305 // 2. Let promise be a new promise. Remaining steps done in handler.
306 return SetMediaKeysHandler::create(scriptState, element, mediaKeys); 306 return SetMediaKeysHandler::create(scriptState, element, mediaKeys);
307 } 307 }
308 308
309 // Create a MediaEncryptedEvent for WD EME. 309 // Create a MediaEncryptedEvent for WD EME.
310 static PassRefPtrWillBeRawPtr<Event> createEncryptedEvent(const String& initData Type, const unsigned char* initData, unsigned initDataLength) 310 static PassRefPtrWillBeRawPtr<Event> createEncryptedEvent(WebEncryptedMediaInitD ataType initDataType, const unsigned char* initData, unsigned initDataLength)
311 { 311 {
312 MediaEncryptedEventInit initializer; 312 MediaEncryptedEventInit initializer;
313 initializer.setInitDataType(initDataType); 313 switch (initDataType) {
314 case WebEncryptedMediaInitDataType::Cenc:
315 initializer.setInitDataType("cenc");
316 break;
317 case WebEncryptedMediaInitDataType::Keyids:
318 initializer.setInitDataType("keyids");
319 break;
320 case WebEncryptedMediaInitDataType::Webm:
321 initializer.setInitDataType("webm");
322 break;
323 case WebEncryptedMediaInitDataType::Unknown:
324 initializer.setInitDataType(emptyString());
325 break;
326 }
314 initializer.setInitData(DOMArrayBuffer::create(initData, initDataLength)); 327 initializer.setInitData(DOMArrayBuffer::create(initData, initDataLength));
315 initializer.setBubbles(false); 328 initializer.setBubbles(false);
316 initializer.setCancelable(false); 329 initializer.setCancelable(false);
317 330
318 return MediaEncryptedEvent::create(EventTypeNames::encrypted, initializer); 331 return MediaEncryptedEvent::create(EventTypeNames::encrypted, initializer);
319 } 332 }
320 333
321 // Create a 'needkey' MediaKeyEvent for v0.1b EME. 334 // Create a 'needkey' MediaKeyEvent for v0.1b EME.
322 static PassRefPtrWillBeRawPtr<Event> createWebkitNeedKeyEvent(const unsigned cha r* initData, unsigned initDataLength) 335 static PassRefPtrWillBeRawPtr<Event> createWebkitNeedKeyEvent(const unsigned cha r* initData, unsigned initDataLength)
323 { 336 {
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
503 initializer.setKeySystem(keySystem); 516 initializer.setKeySystem(keySystem);
504 initializer.setSessionId(sessionId); 517 initializer.setSessionId(sessionId);
505 initializer.setMessage(DOMUint8Array::create(message, messageLength)); 518 initializer.setMessage(DOMUint8Array::create(message, messageLength));
506 initializer.setDefaultURL(KURL(defaultURL)); 519 initializer.setDefaultURL(KURL(defaultURL));
507 520
508 RefPtrWillBeRawPtr<Event> event = MediaKeyEvent::create(EventTypeNames::webk itkeymessage, initializer); 521 RefPtrWillBeRawPtr<Event> event = MediaKeyEvent::create(EventTypeNames::webk itkeymessage, initializer);
509 event->setTarget(&element); 522 event->setTarget(&element);
510 element.scheduleEvent(event.release()); 523 element.scheduleEvent(event.release());
511 } 524 }
512 525
513 void HTMLMediaElementEncryptedMedia::encrypted(HTMLMediaElement& element, const String& initDataType, const unsigned char* initData, unsigned initDataLength) 526 void HTMLMediaElementEncryptedMedia::encrypted(HTMLMediaElement& element, WebEnc ryptedMediaInitDataType initDataType, const unsigned char* initData, unsigned in itDataLength)
514 { 527 {
515 WTF_LOG(Media, "HTMLMediaElementEncryptedMedia::encrypted: initDataType=%s", initDataType.utf8().data()); 528 WTF_LOG(Media, "HTMLMediaElementEncryptedMedia::encrypted");
516 529
517 if (RuntimeEnabledFeatures::encryptedMediaEnabled()) { 530 if (RuntimeEnabledFeatures::encryptedMediaEnabled()) {
518 // Send event for WD EME. 531 // Send event for WD EME.
519 RefPtrWillBeRawPtr<Event> event; 532 RefPtrWillBeRawPtr<Event> event;
520 if (element.isMediaDataCORSSameOrigin(element.executionContext()->securi tyOrigin())) { 533 if (element.isMediaDataCORSSameOrigin(element.executionContext()->securi tyOrigin())) {
521 event = createEncryptedEvent(initDataType, initData, initDataLength) ; 534 event = createEncryptedEvent(initDataType, initData, initDataLength) ;
522 } else { 535 } else {
523 // Current page is not allowed to see content from the media file, 536 // Current page is not allowed to see content from the media file,
524 // so don't return the initData. However, they still get an event. 537 // so don't return the initData. However, they still get an event.
525 event = createEncryptedEvent(emptyString(), nullptr, 0); 538 event = createEncryptedEvent(WebEncryptedMediaInitDataType::Unknown, nullptr, 0);
526 } 539 }
527 540
528 event->setTarget(&element); 541 event->setTarget(&element);
529 element.scheduleEvent(event.release()); 542 element.scheduleEvent(event.release());
530 } 543 }
531 544
532 if (RuntimeEnabledFeatures::prefixedEncryptedMediaEnabled()) { 545 if (RuntimeEnabledFeatures::prefixedEncryptedMediaEnabled()) {
533 // Send event for v0.1b EME. 546 // Send event for v0.1b EME.
534 RefPtrWillBeRawPtr<Event> event = createWebkitNeedKeyEvent(initData, ini tDataLength); 547 RefPtrWillBeRawPtr<Event> event = createWebkitNeedKeyEvent(initData, ini tDataLength);
535 event->setTarget(&element); 548 event->setTarget(&element);
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
597 return thisElement.contentDecryptionModule(); 610 return thisElement.contentDecryptionModule();
598 } 611 }
599 612
600 DEFINE_TRACE(HTMLMediaElementEncryptedMedia) 613 DEFINE_TRACE(HTMLMediaElementEncryptedMedia)
601 { 614 {
602 visitor->trace(m_mediaKeys); 615 visitor->trace(m_mediaKeys);
603 WillBeHeapSupplement<HTMLMediaElement>::trace(visitor); 616 WillBeHeapSupplement<HTMLMediaElement>::trace(visitor);
604 } 617 }
605 618
606 } // namespace blink 619 } // namespace blink
OLDNEW
« no previous file with comments | « Source/modules/encryptedmedia/HTMLMediaElementEncryptedMedia.h ('k') | Source/modules/encryptedmedia/MediaKeySession.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698