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

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

Issue 1686483002: Oilpan: Remove most WillBe types from the code base (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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 "modules/encryptedmedia/HTMLMediaElementEncryptedMedia.h" 5 #include "modules/encryptedmedia/HTMLMediaElementEncryptedMedia.h"
6 6
7 #include "bindings/core/v8/ExceptionState.h" 7 #include "bindings/core/v8/ExceptionState.h"
8 #include "bindings/core/v8/ScriptPromise.h" 8 #include "bindings/core/v8/ScriptPromise.h"
9 #include "bindings/core/v8/ScriptPromiseResolver.h" 9 #include "bindings/core/v8/ScriptPromiseResolver.h"
10 #include "bindings/core/v8/ScriptState.h" 10 #include "bindings/core/v8/ScriptState.h"
(...skipping 28 matching lines...) Expand all
39 void clearExistingMediaKeys(); 39 void clearExistingMediaKeys();
40 void setNewMediaKeys(); 40 void setNewMediaKeys();
41 41
42 void finish(); 42 void finish();
43 void fail(ExceptionCode, const String& errorMessage); 43 void fail(ExceptionCode, const String& errorMessage);
44 44
45 void clearFailed(ExceptionCode, const String& errorMessage); 45 void clearFailed(ExceptionCode, const String& errorMessage);
46 void setFailed(ExceptionCode, const String& errorMessage); 46 void setFailed(ExceptionCode, const String& errorMessage);
47 47
48 // Keep media element alive until promise is fulfilled 48 // Keep media element alive until promise is fulfilled
49 RefPtrWillBeMember<HTMLMediaElement> m_element; 49 Member<HTMLMediaElement> m_element;
50 Member<MediaKeys> m_newMediaKeys; 50 Member<MediaKeys> m_newMediaKeys;
51 bool m_madeReservation; 51 bool m_madeReservation;
52 Timer<SetMediaKeysHandler> m_timer; 52 Timer<SetMediaKeysHandler> m_timer;
53 }; 53 };
54 54
55 typedef Function<void()> SuccessCallback; 55 typedef Function<void()> SuccessCallback;
56 typedef Function<void(ExceptionCode, const String&)> FailureCallback; 56 typedef Function<void(ExceptionCode, const String&)> FailureCallback;
57 57
58 // Represents the result used when setContentDecryptionModule() is called. 58 // Represents the result used when setContentDecryptionModule() is called.
59 // Calls |success| if result is resolved, |failure| is result is rejected. 59 // Calls |success| if result is resolved, |failure| is result is rejected.
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 #endif 293 #endif
294 } 294 }
295 295
296 const char* HTMLMediaElementEncryptedMedia::supplementName() 296 const char* HTMLMediaElementEncryptedMedia::supplementName()
297 { 297 {
298 return "HTMLMediaElementEncryptedMedia"; 298 return "HTMLMediaElementEncryptedMedia";
299 } 299 }
300 300
301 HTMLMediaElementEncryptedMedia& HTMLMediaElementEncryptedMedia::from(HTMLMediaEl ement& element) 301 HTMLMediaElementEncryptedMedia& HTMLMediaElementEncryptedMedia::from(HTMLMediaEl ement& element)
302 { 302 {
303 HTMLMediaElementEncryptedMedia* supplement = static_cast<HTMLMediaElementEnc ryptedMedia*>(WillBeHeapSupplement<HTMLMediaElement>::from(element, supplementNa me())); 303 HTMLMediaElementEncryptedMedia* supplement = static_cast<HTMLMediaElementEnc ryptedMedia*>(HeapSupplement<HTMLMediaElement>::from(element, supplementName())) ;
304 if (!supplement) { 304 if (!supplement) {
305 supplement = new HTMLMediaElementEncryptedMedia(element); 305 supplement = new HTMLMediaElementEncryptedMedia(element);
306 provideTo(element, supplementName(), adoptPtrWillBeNoop(supplement)); 306 provideTo(element, supplementName(), adoptPtrWillBeNoop(supplement));
307 } 307 }
308 return *supplement; 308 return *supplement;
309 } 309 }
310 310
311 MediaKeys* HTMLMediaElementEncryptedMedia::mediaKeys(HTMLMediaElement& element) 311 MediaKeys* HTMLMediaElementEncryptedMedia::mediaKeys(HTMLMediaElement& element)
312 { 312 {
313 HTMLMediaElementEncryptedMedia& thisElement = HTMLMediaElementEncryptedMedia ::from(element); 313 HTMLMediaElementEncryptedMedia& thisElement = HTMLMediaElementEncryptedMedia ::from(element);
(...skipping 20 matching lines...) Expand all
334 } 334 }
335 335
336 // 3. Let this object's attaching media keys value be true. 336 // 3. Let this object's attaching media keys value be true.
337 thisElement.m_isAttachingMediaKeys = true; 337 thisElement.m_isAttachingMediaKeys = true;
338 338
339 // 4. Let promise be a new promise. Remaining steps done in handler. 339 // 4. Let promise be a new promise. Remaining steps done in handler.
340 return SetMediaKeysHandler::create(scriptState, element, mediaKeys); 340 return SetMediaKeysHandler::create(scriptState, element, mediaKeys);
341 } 341 }
342 342
343 // Create a MediaEncryptedEvent for WD EME. 343 // Create a MediaEncryptedEvent for WD EME.
344 static PassRefPtrWillBeRawPtr<Event> createEncryptedEvent(WebEncryptedMediaInitD ataType initDataType, const unsigned char* initData, unsigned initDataLength) 344 static RawPtr<Event> createEncryptedEvent(WebEncryptedMediaInitDataType initData Type, const unsigned char* initData, unsigned initDataLength)
345 { 345 {
346 MediaEncryptedEventInit initializer; 346 MediaEncryptedEventInit initializer;
347 initializer.setInitDataType(EncryptedMediaUtils::convertFromInitDataType(ini tDataType)); 347 initializer.setInitDataType(EncryptedMediaUtils::convertFromInitDataType(ini tDataType));
348 initializer.setInitData(DOMArrayBuffer::create(initData, initDataLength)); 348 initializer.setInitData(DOMArrayBuffer::create(initData, initDataLength));
349 initializer.setBubbles(false); 349 initializer.setBubbles(false);
350 initializer.setCancelable(false); 350 initializer.setCancelable(false);
351 351
352 return MediaEncryptedEvent::create(EventTypeNames::encrypted, initializer); 352 return MediaEncryptedEvent::create(EventTypeNames::encrypted, initializer);
353 } 353 }
354 354
355 void HTMLMediaElementEncryptedMedia::encrypted(WebEncryptedMediaInitDataType ini tDataType, const unsigned char* initData, unsigned initDataLength) 355 void HTMLMediaElementEncryptedMedia::encrypted(WebEncryptedMediaInitDataType ini tDataType, const unsigned char* initData, unsigned initDataLength)
356 { 356 {
357 WTF_LOG(Media, "HTMLMediaElementEncryptedMedia::encrypted"); 357 WTF_LOG(Media, "HTMLMediaElementEncryptedMedia::encrypted");
358 358
359 RefPtrWillBeRawPtr<Event> event; 359 RawPtr<Event> event;
360 if (m_mediaElement->isMediaDataCORSSameOrigin(m_mediaElement->getExecutionCo ntext()->getSecurityOrigin())) { 360 if (m_mediaElement->isMediaDataCORSSameOrigin(m_mediaElement->getExecutionCo ntext()->getSecurityOrigin())) {
361 event = createEncryptedEvent(initDataType, initData, initDataLength); 361 event = createEncryptedEvent(initDataType, initData, initDataLength);
362 } else { 362 } else {
363 // Current page is not allowed to see content from the media file, 363 // Current page is not allowed to see content from the media file,
364 // so don't return the initData. However, they still get an event. 364 // so don't return the initData. However, they still get an event.
365 event = createEncryptedEvent(WebEncryptedMediaInitDataType::Unknown, nul lptr, 0); 365 event = createEncryptedEvent(WebEncryptedMediaInitDataType::Unknown, nul lptr, 0);
366 } 366 }
367 367
368 event->setTarget(m_mediaElement); 368 event->setTarget(m_mediaElement);
369 m_mediaElement->scheduleEvent(event.release()); 369 m_mediaElement->scheduleEvent(event.release());
370 } 370 }
371 371
372 void HTMLMediaElementEncryptedMedia::didBlockPlaybackWaitingForKey() 372 void HTMLMediaElementEncryptedMedia::didBlockPlaybackWaitingForKey()
373 { 373 {
374 WTF_LOG(Media, "HTMLMediaElementEncryptedMedia::didBlockPlaybackWaitingForKe y"); 374 WTF_LOG(Media, "HTMLMediaElementEncryptedMedia::didBlockPlaybackWaitingForKe y");
375 375
376 // From https://w3c.github.io/encrypted-media/#queue-waitingforkey: 376 // From https://w3c.github.io/encrypted-media/#queue-waitingforkey:
377 // It should only be called when the HTMLMediaElement object is potentially 377 // It should only be called when the HTMLMediaElement object is potentially
378 // playing and its readyState is equal to HAVE_FUTURE_DATA or greater. 378 // playing and its readyState is equal to HAVE_FUTURE_DATA or greater.
379 // FIXME: Is this really required? 379 // FIXME: Is this really required?
380 380
381 // 1. Let the media element be the specified HTMLMediaElement object. 381 // 1. Let the media element be the specified HTMLMediaElement object.
382 // 2. If the media element's waiting for key value is false, queue a task 382 // 2. If the media element's waiting for key value is false, queue a task
383 // to fire a simple event named waitingforkey at the media element. 383 // to fire a simple event named waitingforkey at the media element.
384 if (!m_isWaitingForKey) { 384 if (!m_isWaitingForKey) {
385 RefPtrWillBeRawPtr<Event> event = Event::create(EventTypeNames::waitingf orkey); 385 RawPtr<Event> event = Event::create(EventTypeNames::waitingforkey);
386 event->setTarget(m_mediaElement); 386 event->setTarget(m_mediaElement);
387 m_mediaElement->scheduleEvent(event.release()); 387 m_mediaElement->scheduleEvent(event.release());
388 } 388 }
389 389
390 // 3. Set the media element's waiting for key value to true. 390 // 3. Set the media element's waiting for key value to true.
391 m_isWaitingForKey = true; 391 m_isWaitingForKey = true;
392 392
393 // 4. Suspend playback. 393 // 4. Suspend playback.
394 // (Already done on the Chromium side by the decryptors.) 394 // (Already done on the Chromium side by the decryptors.)
395 } 395 }
(...skipping 10 matching lines...) Expand all
406 406
407 WebContentDecryptionModule* HTMLMediaElementEncryptedMedia::contentDecryptionMod ule() 407 WebContentDecryptionModule* HTMLMediaElementEncryptedMedia::contentDecryptionMod ule()
408 { 408 {
409 return m_mediaKeys ? m_mediaKeys->contentDecryptionModule() : 0; 409 return m_mediaKeys ? m_mediaKeys->contentDecryptionModule() : 0;
410 } 410 }
411 411
412 DEFINE_TRACE(HTMLMediaElementEncryptedMedia) 412 DEFINE_TRACE(HTMLMediaElementEncryptedMedia)
413 { 413 {
414 visitor->trace(m_mediaElement); 414 visitor->trace(m_mediaElement);
415 visitor->trace(m_mediaKeys); 415 visitor->trace(m_mediaKeys);
416 WillBeHeapSupplement<HTMLMediaElement>::trace(visitor); 416 HeapSupplement<HTMLMediaElement>::trace(visitor);
417 } 417 }
418 418
419 } // namespace blink 419 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698