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

Unified Diff: Source/modules/encryptedmedia/HTMLMediaElementEncryptedMedia.cpp

Issue 1055503002: Eliminate MediaPlayer & MediaPlayerClient abstractions (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: address comments Created 5 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: Source/modules/encryptedmedia/HTMLMediaElementEncryptedMedia.cpp
diff --git a/Source/modules/encryptedmedia/HTMLMediaElementEncryptedMedia.cpp b/Source/modules/encryptedmedia/HTMLMediaElementEncryptedMedia.cpp
index 9481a5252b8f75099a01bd75cdb91fdefbb5358f..27b056e131c86ed94d02000bb4f4a8910756c9c8 100644
--- a/Source/modules/encryptedmedia/HTMLMediaElementEncryptedMedia.cpp
+++ b/Source/modules/encryptedmedia/HTMLMediaElementEncryptedMedia.cpp
@@ -290,8 +290,9 @@ DEFINE_TRACE(SetMediaKeysHandler)
ScriptPromiseResolver::trace(visitor);
}
-HTMLMediaElementEncryptedMedia::HTMLMediaElementEncryptedMedia()
- : m_emeMode(EmeModeNotSelected)
+HTMLMediaElementEncryptedMedia::HTMLMediaElementEncryptedMedia(HTMLMediaElement& element)
+ : m_mediaElement(element)
+ , m_emeMode(EmeModeNotSelected)
, m_isWaitingForKey(false)
{
}
@@ -314,7 +315,7 @@ HTMLMediaElementEncryptedMedia& HTMLMediaElementEncryptedMedia::from(HTMLMediaEl
{
HTMLMediaElementEncryptedMedia* supplement = static_cast<HTMLMediaElementEncryptedMedia*>(WillBeHeapSupplement<HTMLMediaElement>::from(element, supplementName()));
if (!supplement) {
- supplement = new HTMLMediaElementEncryptedMedia();
+ supplement = new HTMLMediaElementEncryptedMedia(element);
provideTo(element, supplementName(), adoptPtrWillBeNoop(supplement));
}
return *supplement;
@@ -329,11 +330,6 @@ bool HTMLMediaElementEncryptedMedia::setEmeMode(EmeMode emeMode)
return true;
}
-WebContentDecryptionModule* HTMLMediaElementEncryptedMedia::contentDecryptionModule()
-{
- return m_mediaKeys ? m_mediaKeys->contentDecryptionModule() : 0;
-}
-
MediaKeys* HTMLMediaElementEncryptedMedia::mediaKeys(HTMLMediaElement& element)
{
HTMLMediaElementEncryptedMedia& thisElement = HTMLMediaElementEncryptedMedia::from(element);
@@ -496,7 +492,7 @@ void HTMLMediaElementEncryptedMedia::cancelKeyRequest(WebMediaPlayer* webMediaPl
throwExceptionIfMediaKeyExceptionOccurred(keySystem, sessionId, result, exceptionState);
}
-void HTMLMediaElementEncryptedMedia::keyAdded(HTMLMediaElement& element, const String& keySystem, const String& sessionId)
+void HTMLMediaElementEncryptedMedia::keyAdded(const WebString& keySystem, const WebString& sessionId)
{
WTF_LOG(Media, "HTMLMediaElementEncryptedMedia::mediaPlayerKeyAdded");
@@ -505,32 +501,32 @@ void HTMLMediaElementEncryptedMedia::keyAdded(HTMLMediaElement& element, const S
initializer.setSessionId(sessionId);
RefPtrWillBeRawPtr<Event> event = MediaKeyEvent::create(EventTypeNames::webkitkeyadded, initializer);
- event->setTarget(&element);
- element.scheduleEvent(event.release());
+ event->setTarget(&m_mediaElement);
+ m_mediaElement.scheduleEvent(event.release());
}
-void HTMLMediaElementEncryptedMedia::keyError(HTMLMediaElement& element, const String& keySystem, const String& sessionId, WebMediaPlayerClient::MediaKeyErrorCode errorCode, unsigned short systemCode)
+void HTMLMediaElementEncryptedMedia::keyError(const WebString& keySystem, const WebString& sessionId, WebMediaPlayerEncryptedMediaClient::MediaKeyErrorCode errorCode, unsigned short systemCode)
{
WTF_LOG(Media, "HTMLMediaElementEncryptedMedia::mediaPlayerKeyError: sessionID=%s, errorCode=%d, systemCode=%d", sessionId.utf8().data(), errorCode, systemCode);
MediaKeyError::Code mediaKeyErrorCode = MediaKeyError::MEDIA_KEYERR_UNKNOWN;
switch (errorCode) {
- case WebMediaPlayerClient::MediaKeyErrorCodeUnknown:
+ case WebMediaPlayerEncryptedMediaClient::MediaKeyErrorCodeUnknown:
mediaKeyErrorCode = MediaKeyError::MEDIA_KEYERR_UNKNOWN;
break;
- case WebMediaPlayerClient::MediaKeyErrorCodeClient:
+ case WebMediaPlayerEncryptedMediaClient::MediaKeyErrorCodeClient:
mediaKeyErrorCode = MediaKeyError::MEDIA_KEYERR_CLIENT;
break;
- case WebMediaPlayerClient::MediaKeyErrorCodeService:
+ case WebMediaPlayerEncryptedMediaClient::MediaKeyErrorCodeService:
mediaKeyErrorCode = MediaKeyError::MEDIA_KEYERR_SERVICE;
break;
- case WebMediaPlayerClient::MediaKeyErrorCodeOutput:
+ case WebMediaPlayerEncryptedMediaClient::MediaKeyErrorCodeOutput:
mediaKeyErrorCode = MediaKeyError::MEDIA_KEYERR_OUTPUT;
break;
- case WebMediaPlayerClient::MediaKeyErrorCodeHardwareChange:
+ case WebMediaPlayerEncryptedMediaClient::MediaKeyErrorCodeHardwareChange:
mediaKeyErrorCode = MediaKeyError::MEDIA_KEYERR_HARDWARECHANGE;
break;
- case WebMediaPlayerClient::MediaKeyErrorCodeDomain:
+ case WebMediaPlayerEncryptedMediaClient::MediaKeyErrorCodeDomain:
mediaKeyErrorCode = MediaKeyError::MEDIA_KEYERR_DOMAIN;
break;
}
@@ -542,11 +538,11 @@ void HTMLMediaElementEncryptedMedia::keyError(HTMLMediaElement& element, const S
initializer.setSystemCode(systemCode);
RefPtrWillBeRawPtr<Event> event = MediaKeyEvent::create(EventTypeNames::webkitkeyerror, initializer);
- event->setTarget(&element);
- element.scheduleEvent(event.release());
+ event->setTarget(&m_mediaElement);
+ m_mediaElement.scheduleEvent(event.release());
}
-void HTMLMediaElementEncryptedMedia::keyMessage(HTMLMediaElement& element, const String& keySystem, const String& sessionId, const unsigned char* message, unsigned messageLength, const WebURL& defaultURL)
+void HTMLMediaElementEncryptedMedia::keyMessage(const WebString& keySystem, const WebString& sessionId, const unsigned char* message, unsigned messageLength, const WebURL& defaultURL)
{
WTF_LOG(Media, "HTMLMediaElementEncryptedMedia::mediaPlayerKeyMessage: sessionID=%s", sessionId.utf8().data());
@@ -557,18 +553,18 @@ void HTMLMediaElementEncryptedMedia::keyMessage(HTMLMediaElement& element, const
initializer.setDefaultURL(KURL(defaultURL));
RefPtrWillBeRawPtr<Event> event = MediaKeyEvent::create(EventTypeNames::webkitkeymessage, initializer);
- event->setTarget(&element);
- element.scheduleEvent(event.release());
+ event->setTarget(&m_mediaElement);
+ m_mediaElement.scheduleEvent(event.release());
}
-void HTMLMediaElementEncryptedMedia::encrypted(HTMLMediaElement& element, WebEncryptedMediaInitDataType initDataType, const unsigned char* initData, unsigned initDataLength)
+void HTMLMediaElementEncryptedMedia::encrypted(WebEncryptedMediaInitDataType initDataType, const unsigned char* initData, unsigned initDataLength)
{
WTF_LOG(Media, "HTMLMediaElementEncryptedMedia::encrypted");
if (RuntimeEnabledFeatures::encryptedMediaEnabled()) {
// Send event for WD EME.
RefPtrWillBeRawPtr<Event> event;
- if (element.isMediaDataCORSSameOrigin(element.executionContext()->securityOrigin())) {
+ if (m_mediaElement.isMediaDataCORSSameOrigin(m_mediaElement.executionContext()->securityOrigin())) {
event = createEncryptedEvent(initDataType, initData, initDataLength);
} else {
// Current page is not allowed to see content from the media file,
@@ -576,19 +572,19 @@ void HTMLMediaElementEncryptedMedia::encrypted(HTMLMediaElement& element, WebEnc
event = createEncryptedEvent(WebEncryptedMediaInitDataType::Unknown, nullptr, 0);
}
- event->setTarget(&element);
- element.scheduleEvent(event.release());
+ event->setTarget(&m_mediaElement);
+ m_mediaElement.scheduleEvent(event.release());
}
if (RuntimeEnabledFeatures::prefixedEncryptedMediaEnabled()) {
// Send event for v0.1b EME.
RefPtrWillBeRawPtr<Event> event = createWebkitNeedKeyEvent(initData, initDataLength);
- event->setTarget(&element);
- element.scheduleEvent(event.release());
+ event->setTarget(&m_mediaElement);
+ m_mediaElement.scheduleEvent(event.release());
}
}
-void HTMLMediaElementEncryptedMedia::didBlockPlaybackWaitingForKey(HTMLMediaElement& element)
+void HTMLMediaElementEncryptedMedia::didBlockPlaybackWaitingForKey()
{
WTF_LOG(Media, "HTMLMediaElementEncryptedMedia::didBlockPlaybackWaitingForKey");
@@ -598,38 +594,34 @@ void HTMLMediaElementEncryptedMedia::didBlockPlaybackWaitingForKey(HTMLMediaElem
// FIXME: Is this really required?
// 1. Let the media element be the specified HTMLMediaElement object.
- HTMLMediaElementEncryptedMedia& thisElement = HTMLMediaElementEncryptedMedia::from(element);
-
// 2. If the media element's waiting for key value is false, queue a task
// to fire a simple event named waitingforkey at the media element.
- if (!thisElement.m_isWaitingForKey) {
+ if (!m_isWaitingForKey) {
RefPtrWillBeRawPtr<Event> event = Event::create(EventTypeNames::waitingforkey);
- event->setTarget(&element);
- element.scheduleEvent(event.release());
+ event->setTarget(&m_mediaElement);
+ m_mediaElement.scheduleEvent(event.release());
}
// 3. Set the media element's waiting for key value to true.
- thisElement.m_isWaitingForKey = true;
+ m_isWaitingForKey = true;
// 4. Suspend playback.
// (Already done on the Chromium side by the decryptors.)
}
-void HTMLMediaElementEncryptedMedia::didResumePlaybackBlockedForKey(HTMLMediaElement& element)
+void HTMLMediaElementEncryptedMedia::didResumePlaybackBlockedForKey()
{
WTF_LOG(Media, "HTMLMediaElementEncryptedMedia::didResumePlaybackBlockedForKey");
// Logic is on the Chromium side to attempt to resume playback when a new
// key is available. However, |m_isWaitingForKey| needs to be cleared so
// that a later waitingForKey() call can generate the event.
- HTMLMediaElementEncryptedMedia& thisElement = HTMLMediaElementEncryptedMedia::from(element);
- thisElement.m_isWaitingForKey = false;
+ m_isWaitingForKey = false;
}
-WebContentDecryptionModule* HTMLMediaElementEncryptedMedia::contentDecryptionModule(HTMLMediaElement& element)
+WebContentDecryptionModule* HTMLMediaElementEncryptedMedia::contentDecryptionModule()
{
- HTMLMediaElementEncryptedMedia& thisElement = HTMLMediaElementEncryptedMedia::from(element);
- return thisElement.contentDecryptionModule();
+ return m_mediaKeys ? m_mediaKeys->contentDecryptionModule() : 0;
}
DEFINE_TRACE(HTMLMediaElementEncryptedMedia)

Powered by Google App Engine
This is Rietveld 408576698