Title: [142819] trunk/Source/WebCore
Revision
142819
Author
jer.no...@apple.com
Date
2013-02-13 16:02:12 -0800 (Wed, 13 Feb 2013)

Log Message

EME: MediaPlayer::keyNeede() should return a bool indicating whether an event listener was triggered.
https://bugs.webkit.org/show_bug.cgi?id=109701

Reviewed by Eric Carlson.

Clients of MediaPlayer may need to do cleanup if calling keyNeeded()
results in no event listener being triggered. Return a bool (like the
v1 equivalent keyNeeded method) to indicate this.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerKeyNeeded):
* html/HTMLMediaElement.h:
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::keyNeeded):
* platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::mediaPlayerKeyNeeded):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (142818 => 142819)


--- trunk/Source/WebCore/ChangeLog	2013-02-13 23:57:33 UTC (rev 142818)
+++ trunk/Source/WebCore/ChangeLog	2013-02-14 00:02:12 UTC (rev 142819)
@@ -1,3 +1,22 @@
+2013-02-13  Jer Noble  <jer.no...@apple.com>
+
+        EME: MediaPlayer::keyNeede() should return a bool indicating whether an event listener was triggered.
+        https://bugs.webkit.org/show_bug.cgi?id=109701
+
+        Reviewed by Eric Carlson.
+
+        Clients of MediaPlayer may need to do cleanup if calling keyNeeded()
+        results in no event listener being triggered. Return a bool (like the
+        v1 equivalent keyNeeded method) to indicate this.
+
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::mediaPlayerKeyNeeded):
+        * html/HTMLMediaElement.h:
+        * platform/graphics/MediaPlayer.cpp:
+        (WebCore::MediaPlayer::keyNeeded):
+        * platform/graphics/MediaPlayer.h:
+        (WebCore::MediaPlayerClient::mediaPlayerKeyNeeded):
+
 2013-02-13  Abhishek Arya  <infe...@chromium.org>
 
         ASSERTION FAILED: !object || object->isBox(), Bad cast in RenderBox::computeLogicalHeight

Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (142818 => 142819)


--- trunk/Source/WebCore/html/HTMLMediaElement.cpp	2013-02-13 23:57:33 UTC (rev 142818)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp	2013-02-14 00:02:12 UTC (rev 142819)
@@ -1973,8 +1973,14 @@
 #endif
 
 #if ENABLE(ENCRYPTED_MEDIA_V2)
-void HTMLMediaElement::mediaPlayerKeyNeeded(MediaPlayer*, Uint8Array* initData)
+bool HTMLMediaElement::mediaPlayerKeyNeeded(MediaPlayer*, Uint8Array* initData)
 {
+    if (!hasEventListeners("webkitneedkey")) {
+        m_error = MediaError::create(MediaError::MEDIA_ERR_ENCRYPTED);
+        scheduleEvent(eventNames().errorEvent);
+        return false;
+    }
+
     MediaKeyNeededEventInit initializer;
     initializer.initData = initData;
     initializer.bubbles = false;
@@ -1983,6 +1989,8 @@
     RefPtr<Event> event = MediaKeyNeededEvent::create(eventNames().webkitneedkeyEvent, initializer);
     event->setTarget(this);
     m_asyncEventQueue->enqueueEvent(event.release());
+
+    return true;
 }
 
 void HTMLMediaElement::setMediaKeys(MediaKeys* mediaKeys)

Modified: trunk/Source/WebCore/html/HTMLMediaElement.h (142818 => 142819)


--- trunk/Source/WebCore/html/HTMLMediaElement.h	2013-02-13 23:57:33 UTC (rev 142818)
+++ trunk/Source/WebCore/html/HTMLMediaElement.h	2013-02-14 00:02:12 UTC (rev 142819)
@@ -455,7 +455,7 @@
 #endif
 
 #if ENABLE(ENCRYPTED_MEDIA_V2)
-    virtual void mediaPlayerKeyNeeded(MediaPlayer*, Uint8Array*);
+    virtual bool mediaPlayerKeyNeeded(MediaPlayer*, Uint8Array*);
 #endif
 
     virtual String mediaPlayerReferrer() const OVERRIDE;

Modified: trunk/Source/WebCore/platform/graphics/MediaPlayer.cpp (142818 => 142819)


--- trunk/Source/WebCore/platform/graphics/MediaPlayer.cpp	2013-02-13 23:57:33 UTC (rev 142818)
+++ trunk/Source/WebCore/platform/graphics/MediaPlayer.cpp	2013-02-14 00:02:12 UTC (rev 142819)
@@ -1082,10 +1082,11 @@
 #endif
 
 #if ENABLE(ENCRYPTED_MEDIA_V2)
-void MediaPlayer::keyNeeded(Uint8Array* initData)
+bool MediaPlayer::keyNeeded(Uint8Array* initData)
 {
     if (m_mediaPlayerClient)
-        m_mediaPlayerClient->mediaPlayerKeyNeeded(this, initData);
+        return m_mediaPlayerClient->mediaPlayerKeyNeeded(this, initData);
+    return false;
 }
 #endif
 

Modified: trunk/Source/WebCore/platform/graphics/MediaPlayer.h (142818 => 142819)


--- trunk/Source/WebCore/platform/graphics/MediaPlayer.h	2013-02-13 23:57:33 UTC (rev 142818)
+++ trunk/Source/WebCore/platform/graphics/MediaPlayer.h	2013-02-14 00:02:12 UTC (rev 142819)
@@ -194,7 +194,7 @@
 #endif
 
 #if ENABLE(ENCRYPTED_MEDIA_V2)
-    virtual void mediaPlayerKeyNeeded(MediaPlayer*, Uint8Array*) { }
+    virtual bool mediaPlayerKeyNeeded(MediaPlayer*, Uint8Array*) { return false; }
 #endif
     
     virtual String mediaPlayerReferrer() const { return String(); }
@@ -435,7 +435,7 @@
 #endif
 
 #if ENABLE(ENCRYPTED_MEDIA_V2)
-    void keyNeeded(Uint8Array* initData);
+    bool keyNeeded(Uint8Array* initData);
 #endif
 
     String referrer() const;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to