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

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

Issue 686893004: Remove obsolete ready and error events from MediaKeySession. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Completely remove events Created 6 years, 1 month 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 /* 1 /*
2 * Copyright (C) 2013 Apple Inc. All rights reserved. 2 * Copyright (C) 2013 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 384 matching lines...) Expand 10 before | Expand all | Expand 10 after
395 WTF_LOG(Media, "MediaKeySession(%p)::~MediaKeySession", this); 395 WTF_LOG(Media, "MediaKeySession(%p)::~MediaKeySession", this);
396 m_session.clear(); 396 m_session.clear();
397 #if !ENABLE(OILPAN) 397 #if !ENABLE(OILPAN)
398 // MediaKeySession and m_asyncEventQueue always become unreachable 398 // MediaKeySession and m_asyncEventQueue always become unreachable
399 // together. So MediaKeySession and m_asyncEventQueue are destructed in the 399 // together. So MediaKeySession and m_asyncEventQueue are destructed in the
400 // same GC. We don't need to call cancelAllEvents explicitly in Oilpan. 400 // same GC. We don't need to call cancelAllEvents explicitly in Oilpan.
401 m_asyncEventQueue->cancelAllEvents(); 401 m_asyncEventQueue->cancelAllEvents();
402 #endif 402 #endif
403 } 403 }
404 404
405 void MediaKeySession::setError(MediaKeyError* error)
406 {
407 m_error = error;
408 }
409
410 String MediaKeySession::sessionId() const 405 String MediaKeySession::sessionId() const
411 { 406 {
412 return m_session->sessionId(); 407 return m_session->sessionId();
413 } 408 }
414 409
415 ScriptPromise MediaKeySession::closed(ScriptState* scriptState) 410 ScriptPromise MediaKeySession::closed(ScriptState* scriptState)
416 { 411 {
417 return m_closedPromise->promise(scriptState->world()); 412 return m_closedPromise->promise(scriptState->world());
418 } 413 }
419 414
(...skipping 459 matching lines...) Expand 10 before | Expand all | Expand 10 after
879 init.bubbles = false; 874 init.bubbles = false;
880 init.cancelable = false; 875 init.cancelable = false;
881 init.message = DOMArrayBuffer::create(static_cast<const void*>(message), mes sageLength); 876 init.message = DOMArrayBuffer::create(static_cast<const void*>(message), mes sageLength);
882 init.destinationURL = destinationURL.string(); 877 init.destinationURL = destinationURL.string();
883 878
884 RefPtrWillBeRawPtr<MediaKeyMessageEvent> event = MediaKeyMessageEvent::creat e(EventTypeNames::message, init); 879 RefPtrWillBeRawPtr<MediaKeyMessageEvent> event = MediaKeyMessageEvent::creat e(EventTypeNames::message, init);
885 event->setTarget(this); 880 event->setTarget(this);
886 m_asyncEventQueue->enqueueEvent(event.release()); 881 m_asyncEventQueue->enqueueEvent(event.release());
887 } 882 }
888 883
889 void MediaKeySession::ready()
890 {
891 WTF_LOG(Media, "MediaKeySession(%p)::ready", this);
892
893 RefPtrWillBeRawPtr<Event> event = Event::create(EventTypeNames::ready);
ddorwin 2014/11/03 19:50:50 Did we add this event name? If so, we should remov
jrummell 2014/11/03 20:47:32 Done.
894 event->setTarget(this);
895 m_asyncEventQueue->enqueueEvent(event.release());
896 }
897
898 void MediaKeySession::close() 884 void MediaKeySession::close()
899 { 885 {
900 WTF_LOG(Media, "MediaKeySession(%p)::close", this); 886 WTF_LOG(Media, "MediaKeySession(%p)::close", this);
901 887
902 // Once closed, the session can no longer be the target of events from 888 // Once closed, the session can no longer be the target of events from
903 // the CDM so this object can be garbage collected. 889 // the CDM so this object can be garbage collected.
904 m_isClosed = true; 890 m_isClosed = true;
905 891
906 // Resolve the closed promise. 892 // Resolve the closed promise.
907 m_closedPromise->resolve(V8UndefinedType()); 893 m_closedPromise->resolve(V8UndefinedType());
908 } 894 }
909 895
910 // Queue a task to fire a simple event named keyadded at the MediaKeySession obj ect.
911 void MediaKeySession::error(MediaKeyErrorCode errorCode, unsigned long systemCod e)
912 {
913 WTF_LOG(Media, "MediaKeySession(%p)::error: errorCode=%d, systemCode=%lu", t his, errorCode, systemCode);
914
915 MediaKeyError::Code mediaKeyErrorCode = MediaKeyError::MEDIA_KEYERR_UNKNOWN;
916 switch (errorCode) {
917 case MediaKeyErrorCodeUnknown:
918 mediaKeyErrorCode = MediaKeyError::MEDIA_KEYERR_UNKNOWN;
919 break;
920 case MediaKeyErrorCodeClient:
921 mediaKeyErrorCode = MediaKeyError::MEDIA_KEYERR_CLIENT;
922 break;
923 }
924
925 // 1. Create a new MediaKeyError object with the following attributes:
926 // code = the appropriate MediaKeyError code
927 // systemCode = a Key System-specific value, if provided, and 0 otherwise
928 // 2. Set the MediaKeySession object's error attribute to the error object c reated in the previous step.
929 m_error = MediaKeyError::create(mediaKeyErrorCode, systemCode);
930
931 // 3. queue a task to fire a simple event named keyerror at the MediaKeySess ion object.
932 RefPtrWillBeRawPtr<Event> event = Event::create(EventTypeNames::error);
ddorwin 2014/11/03 19:50:50 ditto
jrummell 2014/11/03 20:47:32 error event used in a bunch of places (e.g. core/e
933 event->setTarget(this);
934 m_asyncEventQueue->enqueueEvent(event.release());
935 }
936
937 void MediaKeySession::error(WebContentDecryptionModuleException exception, unsig ned long systemCode, const WebString& errorMessage)
938 {
939 WTF_LOG(Media, "MediaKeySession::error: exception=%d, systemCode=%lu", excep tion, systemCode);
940
941 // FIXME: EME-WD MediaKeyError now derives from DOMException. Figure out how
942 // to implement this without breaking prefixed EME, which has a totally
943 // different definition. The spec may also change to be just a DOMException.
944 // For now, simply generate an existing MediaKeyError.
945 MediaKeyErrorCode errorCode;
946 switch (exception) {
947 case WebContentDecryptionModuleExceptionClientError:
948 errorCode = MediaKeyErrorCodeClient;
949 break;
950 default:
951 // All other exceptions get converted into Unknown.
952 errorCode = MediaKeyErrorCodeUnknown;
953 break;
954 }
955 error(errorCode, systemCode);
956 }
957
958 void MediaKeySession::expirationChanged(double updatedExpiryTimeInMS) 896 void MediaKeySession::expirationChanged(double updatedExpiryTimeInMS)
959 { 897 {
960 m_expiration = updatedExpiryTimeInMS; 898 m_expiration = updatedExpiryTimeInMS;
961 } 899 }
962 900
963 const AtomicString& MediaKeySession::interfaceName() const 901 const AtomicString& MediaKeySession::interfaceName() const
964 { 902 {
965 return EventTargetNames::MediaKeySession; 903 return EventTargetNames::MediaKeySession;
966 } 904 }
967 905
(...skipping 25 matching lines...) Expand all
993 m_isClosed = true; 931 m_isClosed = true;
994 932
995 if (m_actionTimer.isActive()) 933 if (m_actionTimer.isActive())
996 m_actionTimer.stop(); 934 m_actionTimer.stop();
997 m_pendingActions.clear(); 935 m_pendingActions.clear();
998 m_asyncEventQueue->close(); 936 m_asyncEventQueue->close();
999 } 937 }
1000 938
1001 void MediaKeySession::trace(Visitor* visitor) 939 void MediaKeySession::trace(Visitor* visitor)
1002 { 940 {
1003 visitor->trace(m_error);
1004 visitor->trace(m_asyncEventQueue); 941 visitor->trace(m_asyncEventQueue);
1005 visitor->trace(m_pendingActions); 942 visitor->trace(m_pendingActions);
1006 visitor->trace(m_mediaKeys); 943 visitor->trace(m_mediaKeys);
1007 visitor->trace(m_closedPromise); 944 visitor->trace(m_closedPromise);
1008 EventTargetWithInlineData::trace(visitor); 945 EventTargetWithInlineData::trace(visitor);
1009 } 946 }
1010 947
1011 } // namespace blink 948 } // namespace blink
OLDNEW
« no previous file with comments | « Source/modules/encryptedmedia/MediaKeySession.h ('k') | Source/modules/encryptedmedia/MediaKeySession.idl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698