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

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: rebase Created 6 years 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 335 matching lines...) Expand 10 before | Expand all | Expand 10 after
346 WTF_LOG(Media, "MediaKeySession(%p)::~MediaKeySession", this); 346 WTF_LOG(Media, "MediaKeySession(%p)::~MediaKeySession", this);
347 m_session.clear(); 347 m_session.clear();
348 #if !ENABLE(OILPAN) 348 #if !ENABLE(OILPAN)
349 // MediaKeySession and m_asyncEventQueue always become unreachable 349 // MediaKeySession and m_asyncEventQueue always become unreachable
350 // together. So MediaKeySession and m_asyncEventQueue are destructed in the 350 // together. So MediaKeySession and m_asyncEventQueue are destructed in the
351 // same GC. We don't need to call cancelAllEvents explicitly in Oilpan. 351 // same GC. We don't need to call cancelAllEvents explicitly in Oilpan.
352 m_asyncEventQueue->cancelAllEvents(); 352 m_asyncEventQueue->cancelAllEvents();
353 #endif 353 #endif
354 } 354 }
355 355
356 void MediaKeySession::setError(MediaKeyError* error)
357 {
358 m_error = error;
359 }
360
361 String MediaKeySession::sessionId() const 356 String MediaKeySession::sessionId() const
362 { 357 {
363 return m_session->sessionId(); 358 return m_session->sessionId();
364 } 359 }
365 360
366 ScriptPromise MediaKeySession::closed(ScriptState* scriptState) 361 ScriptPromise MediaKeySession::closed(ScriptState* scriptState)
367 { 362 {
368 return m_closedPromise->promise(scriptState->world()); 363 return m_closedPromise->promise(scriptState->world());
369 } 364 }
370 365
(...skipping 459 matching lines...) Expand 10 before | Expand all | Expand 10 after
830 init.bubbles = false; 825 init.bubbles = false;
831 init.cancelable = false; 826 init.cancelable = false;
832 init.message = DOMArrayBuffer::create(static_cast<const void*>(message), mes sageLength); 827 init.message = DOMArrayBuffer::create(static_cast<const void*>(message), mes sageLength);
833 init.destinationURL = destinationURL.string(); 828 init.destinationURL = destinationURL.string();
834 829
835 RefPtrWillBeRawPtr<MediaKeyMessageEvent> event = MediaKeyMessageEvent::creat e(EventTypeNames::message, init); 830 RefPtrWillBeRawPtr<MediaKeyMessageEvent> event = MediaKeyMessageEvent::creat e(EventTypeNames::message, init);
836 event->setTarget(this); 831 event->setTarget(this);
837 m_asyncEventQueue->enqueueEvent(event.release()); 832 m_asyncEventQueue->enqueueEvent(event.release());
838 } 833 }
839 834
840 void MediaKeySession::ready()
841 {
842 WTF_LOG(Media, "MediaKeySession(%p)::ready", this);
843
844 RefPtrWillBeRawPtr<Event> event = Event::create(EventTypeNames::ready);
845 event->setTarget(this);
846 m_asyncEventQueue->enqueueEvent(event.release());
847 }
848
849 void MediaKeySession::close() 835 void MediaKeySession::close()
850 { 836 {
851 WTF_LOG(Media, "MediaKeySession(%p)::close", this); 837 WTF_LOG(Media, "MediaKeySession(%p)::close", this);
852 838
853 // Once closed, the session can no longer be the target of events from 839 // Once closed, the session can no longer be the target of events from
854 // the CDM so this object can be garbage collected. 840 // the CDM so this object can be garbage collected.
855 m_isClosed = true; 841 m_isClosed = true;
856 842
857 // Resolve the closed promise. 843 // Resolve the closed promise.
858 m_closedPromise->resolve(ToV8UndefinedGenerator()); 844 m_closedPromise->resolve(ToV8UndefinedGenerator());
859 } 845 }
860 846
861 // Queue a task to fire a simple event named keyadded at the MediaKeySession obj ect.
862 void MediaKeySession::error(MediaKeyErrorCode errorCode, unsigned long systemCod e)
863 {
864 WTF_LOG(Media, "MediaKeySession(%p)::error: errorCode=%d, systemCode=%lu", t his, errorCode, systemCode);
865
866 MediaKeyError::Code mediaKeyErrorCode = MediaKeyError::MEDIA_KEYERR_UNKNOWN;
867 switch (errorCode) {
868 case MediaKeyErrorCodeUnknown:
869 mediaKeyErrorCode = MediaKeyError::MEDIA_KEYERR_UNKNOWN;
870 break;
871 case MediaKeyErrorCodeClient:
872 mediaKeyErrorCode = MediaKeyError::MEDIA_KEYERR_CLIENT;
873 break;
874 }
875
876 // 1. Create a new MediaKeyError object with the following attributes:
877 // code = the appropriate MediaKeyError code
878 // systemCode = a Key System-specific value, if provided, and 0 otherwise
879 // 2. Set the MediaKeySession object's error attribute to the error object c reated in the previous step.
880 m_error = MediaKeyError::create(mediaKeyErrorCode, systemCode);
881
882 // 3. queue a task to fire a simple event named keyerror at the MediaKeySess ion object.
883 RefPtrWillBeRawPtr<Event> event = Event::create(EventTypeNames::error);
884 event->setTarget(this);
885 m_asyncEventQueue->enqueueEvent(event.release());
886 }
887
888 void MediaKeySession::error(WebContentDecryptionModuleException exception, unsig ned long systemCode, const WebString& errorMessage)
889 {
890 WTF_LOG(Media, "MediaKeySession::error: exception=%d, systemCode=%lu", excep tion, systemCode);
891
892 // FIXME: EME-WD MediaKeyError now derives from DOMException. Figure out how
893 // to implement this without breaking prefixed EME, which has a totally
894 // different definition. The spec may also change to be just a DOMException.
895 // For now, simply generate an existing MediaKeyError.
896 MediaKeyErrorCode errorCode;
897 switch (exception) {
898 case WebContentDecryptionModuleExceptionClientError:
899 errorCode = MediaKeyErrorCodeClient;
900 break;
901 default:
902 // All other exceptions get converted into Unknown.
903 errorCode = MediaKeyErrorCodeUnknown;
904 break;
905 }
906 error(errorCode, systemCode);
907 }
908
909 void MediaKeySession::expirationChanged(double updatedExpiryTimeInMS) 847 void MediaKeySession::expirationChanged(double updatedExpiryTimeInMS)
910 { 848 {
911 m_expiration = updatedExpiryTimeInMS; 849 m_expiration = updatedExpiryTimeInMS;
912 } 850 }
913 851
914 const AtomicString& MediaKeySession::interfaceName() const 852 const AtomicString& MediaKeySession::interfaceName() const
915 { 853 {
916 return EventTargetNames::MediaKeySession; 854 return EventTargetNames::MediaKeySession;
917 } 855 }
918 856
(...skipping 25 matching lines...) Expand all
944 m_isClosed = true; 882 m_isClosed = true;
945 883
946 if (m_actionTimer.isActive()) 884 if (m_actionTimer.isActive())
947 m_actionTimer.stop(); 885 m_actionTimer.stop();
948 m_pendingActions.clear(); 886 m_pendingActions.clear();
949 m_asyncEventQueue->close(); 887 m_asyncEventQueue->close();
950 } 888 }
951 889
952 void MediaKeySession::trace(Visitor* visitor) 890 void MediaKeySession::trace(Visitor* visitor)
953 { 891 {
954 visitor->trace(m_error);
955 visitor->trace(m_asyncEventQueue); 892 visitor->trace(m_asyncEventQueue);
956 visitor->trace(m_pendingActions); 893 visitor->trace(m_pendingActions);
957 visitor->trace(m_mediaKeys); 894 visitor->trace(m_mediaKeys);
958 visitor->trace(m_closedPromise); 895 visitor->trace(m_closedPromise);
959 EventTargetWithInlineData::trace(visitor); 896 EventTargetWithInlineData::trace(visitor);
960 } 897 }
961 898
962 } // namespace blink 899 } // 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