Diff
Modified: trunk/Source/WebCore/ChangeLog (137723 => 137724)
--- trunk/Source/WebCore/ChangeLog 2012-12-14 08:19:46 UTC (rev 137723)
+++ trunk/Source/WebCore/ChangeLog 2012-12-14 08:25:00 UTC (rev 137724)
@@ -1,3 +1,28 @@
+2012-12-14 David Dorwin <[email protected]>
+
+ EME v0.1: Report defaultURL in KeyMessage.
+ https://bugs.webkit.org/show_bug.cgi?id=104284
+
+ Reviewed by Darin Fisher.
+
+ Passes defaultURL down from the media engine to HTMLMediaElement.
+ Only Valid URLs will be passed.
+
+ No test because Clear Key does not provide a defaultURL (in v0.1).
+
+ * html/HTMLMediaElement.cpp:
+ (WebCore::HTMLMediaElement::mediaPlayerKeyMessage):
+ * html/HTMLMediaElement.h:
+ (HTMLMediaElement):
+ * platform/graphics/MediaPlayer.cpp:
+ (WebCore::MediaPlayer::keyMessage):
+ * platform/graphics/MediaPlayer.h:
+ (WebCore::MediaPlayerClient::mediaPlayerKeyAdded):
+ (WebCore::MediaPlayerClient::mediaPlayerKeyError):
+ (WebCore::MediaPlayerClient::mediaPlayerKeyMessage):
+ (WebCore::MediaPlayerClient::mediaPlayerKeyNeeded):
+ (MediaPlayer):
+
2012-12-13 Hajime Morrita <[email protected]>
ContentDistributor and ShadowRootContentDistributionData should use RefPtr to hold elements.
Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (137723 => 137724)
--- trunk/Source/WebCore/html/HTMLMediaElement.cpp 2012-12-14 08:19:46 UTC (rev 137723)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp 2012-12-14 08:25:00 UTC (rev 137724)
@@ -1870,12 +1870,13 @@
m_asyncEventQueue->enqueueEvent(event.release());
}
-void HTMLMediaElement::mediaPlayerKeyMessage(MediaPlayer*, const String& keySystem, const String& sessionId, const unsigned char* message, unsigned messageLength)
+void HTMLMediaElement::mediaPlayerKeyMessage(MediaPlayer*, const String& keySystem, const String& sessionId, const unsigned char* message, unsigned messageLength, const KURL& defaultURL)
{
MediaKeyEventInit initializer;
initializer.keySystem = keySystem;
initializer.sessionId = sessionId;
initializer.message = Uint8Array::create(message, messageLength);
+ initializer.defaultURL = defaultURL;
initializer.bubbles = false;
initializer.cancelable = false;
Modified: trunk/Source/WebCore/html/HTMLMediaElement.h (137723 => 137724)
--- trunk/Source/WebCore/html/HTMLMediaElement.h 2012-12-14 08:19:46 UTC (rev 137723)
+++ trunk/Source/WebCore/html/HTMLMediaElement.h 2012-12-14 08:25:00 UTC (rev 137724)
@@ -428,7 +428,7 @@
#if ENABLE(ENCRYPTED_MEDIA)
virtual void mediaPlayerKeyAdded(MediaPlayer*, const String& keySystem, const String& sessionId) OVERRIDE;
virtual void mediaPlayerKeyError(MediaPlayer*, const String& keySystem, const String& sessionId, MediaPlayerClient::MediaKeyErrorCode, unsigned short systemCode) OVERRIDE;
- virtual void mediaPlayerKeyMessage(MediaPlayer*, const String& keySystem, const String& sessionId, const unsigned char* message, unsigned messageLength) OVERRIDE;
+ virtual void mediaPlayerKeyMessage(MediaPlayer*, const String& keySystem, const String& sessionId, const unsigned char* message, unsigned messageLength, const KURL& defaultURL) OVERRIDE;
virtual bool mediaPlayerKeyNeeded(MediaPlayer*, const String& keySystem, const String& sessionId, const unsigned char* initData, unsigned initDataLength) OVERRIDE;
#endif
Modified: trunk/Source/WebCore/platform/graphics/MediaPlayer.cpp (137723 => 137724)
--- trunk/Source/WebCore/platform/graphics/MediaPlayer.cpp 2012-12-14 08:19:46 UTC (rev 137723)
+++ trunk/Source/WebCore/platform/graphics/MediaPlayer.cpp 2012-12-14 08:25:00 UTC (rev 137724)
@@ -1057,10 +1057,10 @@
m_mediaPlayerClient->mediaPlayerKeyError(this, keySystem, sessionId, errorCode, systemCode);
}
-void MediaPlayer::keyMessage(const String& keySystem, const String& sessionId, const unsigned char* message, unsigned messageLength)
+void MediaPlayer::keyMessage(const String& keySystem, const String& sessionId, const unsigned char* message, unsigned messageLength, const KURL& defaultURL)
{
if (m_mediaPlayerClient)
- m_mediaPlayerClient->mediaPlayerKeyMessage(this, keySystem, sessionId, message, messageLength);
+ m_mediaPlayerClient->mediaPlayerKeyMessage(this, keySystem, sessionId, message, messageLength, defaultURL);
}
bool MediaPlayer::keyNeeded(const String& keySystem, const String& sessionId, const unsigned char* initData, unsigned initDataLength)
Modified: trunk/Source/WebCore/platform/graphics/MediaPlayer.h (137723 => 137724)
--- trunk/Source/WebCore/platform/graphics/MediaPlayer.h 2012-12-14 08:19:46 UTC (rev 137723)
+++ trunk/Source/WebCore/platform/graphics/MediaPlayer.h 2012-12-14 08:25:00 UTC (rev 137724)
@@ -186,10 +186,10 @@
#if ENABLE(ENCRYPTED_MEDIA)
enum MediaKeyErrorCode { UnknownError = 1, ClientError, ServiceError, OutputError, HardwareChangeError, DomainError };
- virtual void mediaPlayerKeyAdded(MediaPlayer*, const String&, const String&) { }
- virtual void mediaPlayerKeyError(MediaPlayer*, const String&, const String&, MediaKeyErrorCode, unsigned short) { }
- virtual void mediaPlayerKeyMessage(MediaPlayer*, const String&, const String&, const unsigned char*, unsigned) { }
- virtual bool mediaPlayerKeyNeeded(MediaPlayer*, const String&, const String&, const unsigned char*, unsigned) { return false; }
+ virtual void mediaPlayerKeyAdded(MediaPlayer*, const String& keySystem, const String& sessionId) { }
+ virtual void mediaPlayerKeyError(MediaPlayer*, const String& keySystem, const String& sessionId, MediaKeyErrorCode, unsigned short systemCode) { }
+ virtual void mediaPlayerKeyMessage(MediaPlayer*, const String& keySystem, const String& sessionId, const unsigned char* message, unsigned messageLength, const KURL& defaultURL) { }
+ virtual bool mediaPlayerKeyNeeded(MediaPlayer*, const String& keySystem, const String& sessionId, const unsigned char* initData, unsigned initDataLength) { return false; }
#endif
virtual String mediaPlayerReferrer() const { return String(); }
@@ -422,7 +422,7 @@
#if ENABLE(ENCRYPTED_MEDIA)
void keyAdded(const String& keySystem, const String& sessionId);
void keyError(const String& keySystem, const String& sessionId, MediaPlayerClient::MediaKeyErrorCode, unsigned short systemCode);
- void keyMessage(const String& keySystem, const String& sessionId, const unsigned char* message, unsigned messageLength);
+ void keyMessage(const String& keySystem, const String& sessionId, const unsigned char* message, unsigned messageLength, const KURL& defaultURL);
bool keyNeeded(const String& keySystem, const String& sessionId, const unsigned char* initData, unsigned initDataLength);
#endif
Modified: trunk/Source/WebKit/chromium/ChangeLog (137723 => 137724)
--- trunk/Source/WebKit/chromium/ChangeLog 2012-12-14 08:19:46 UTC (rev 137723)
+++ trunk/Source/WebKit/chromium/ChangeLog 2012-12-14 08:25:00 UTC (rev 137724)
@@ -1,3 +1,23 @@
+2012-12-14 David Dorwin <[email protected]>
+
+ EME v0.1: Report defaultURL in KeyMessage.
+ https://bugs.webkit.org/show_bug.cgi?id=104284
+
+ Reviewed by Darin Fisher.
+
+ Passes defaultURL down from the media engine to HTMLMediaElement.
+ Only Valid URLs will be passed.
+
+ No test because Clear Key does not provide a defaultURL (in v0.1).
+
+ * public/WebMediaPlayerClient.h:
+ * src/WebMediaPlayerClientImpl.cpp:
+ (WebKit::WebMediaPlayerClientImpl::keyMessage):
+ (WebKit):
+ (WebKit::WebMediaPlayerClient::keyMessage):
+ * src/WebMediaPlayerClientImpl.h:
+ (WebMediaPlayerClientImpl):
+
2012-12-13 Tien-Ren Chen <[email protected]>
Don't consider container nodes of other disambiguated nodes
Modified: trunk/Source/WebKit/chromium/public/WebMediaPlayerClient.h (137723 => 137724)
--- trunk/Source/WebKit/chromium/public/WebMediaPlayerClient.h 2012-12-14 08:19:46 UTC (rev 137723)
+++ trunk/Source/WebKit/chromium/public/WebMediaPlayerClient.h 2012-12-14 08:25:00 UTC (rev 137724)
@@ -73,10 +73,12 @@
virtual WebMediaPlayer::Preload preload() const = 0;
virtual void sourceOpened() = 0;
virtual WebKit::WebURL sourceURL() const = 0;
- virtual void keyAdded(const WebString&, const WebString&) = 0;
- virtual void keyError(const WebString&, const WebString&, MediaKeyErrorCode, unsigned short systemCode) = 0;
- virtual void keyMessage(const WebString&, const WebString&, const unsigned char*, unsigned) = 0;
- virtual void keyNeeded(const WebString&, const WebString&, const unsigned char* initData, unsigned initDataLength) = 0;
+ virtual void keyAdded(const WebString& keySystem, const WebString& sessionId) = 0;
+ virtual void keyError(const WebString& keySystem, const WebString& sessionId, MediaKeyErrorCode, unsigned short systemCode) = 0;
+ virtual void keyMessage(const WebString& keySystem, const WebString& sessionId, const unsigned char* message, unsigned messageLength, const WebURL& defaultURL) = 0;
+ // FIXME(ddorwin): Remove after rolling WebKit in Chromium and Chromium is updated to use the new signature.
+ virtual void keyMessage(const WebString& keySystem, const WebString& sessionId, const unsigned char* message, unsigned messageLength);
+ virtual void keyNeeded(const WebString& keySystem, const WebString& sessionId, const unsigned char* initData, unsigned initDataLength) = 0;
// The returned pointer is valid until closeHelperPlugin() is called.
// Returns 0 if the plugin could not be instantiated.
virtual WebPlugin* createHelperPlugin(const WebString& pluginType, WebFrame*) = 0;
Modified: trunk/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp (137723 => 137724)
--- trunk/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp 2012-12-14 08:19:46 UTC (rev 137723)
+++ trunk/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp 2012-12-14 08:25:00 UTC (rev 137724)
@@ -251,19 +251,26 @@
#endif
}
-void WebMediaPlayerClientImpl::keyMessage(const WebString& keySystem, const WebString& sessionId, const unsigned char* message, unsigned messageLength)
+void WebMediaPlayerClientImpl::keyMessage(const WebString& keySystem, const WebString& sessionId, const unsigned char* message, unsigned messageLength, const WebURL& defaultURL)
{
#if ENABLE(ENCRYPTED_MEDIA)
ASSERT(m_mediaPlayer);
- m_mediaPlayer->keyMessage(keySystem, sessionId, message, messageLength);
+ m_mediaPlayer->keyMessage(keySystem, sessionId, message, messageLength, defaultURL);
#else
UNUSED_PARAM(keySystem);
UNUSED_PARAM(sessionId);
UNUSED_PARAM(message);
UNUSED_PARAM(messageLength);
+ UNUSED_PARAM(defaultURL);
#endif
}
+// FIXME(ddorwin): Remove after rolling WebKit in Chromium and Chromium is updated to use the new signature.
+void WebMediaPlayerClient::keyMessage(const WebString& keySystem, const WebString& sessionId, const unsigned char* message, unsigned messageLength)
+{
+ keyMessage(keySystem, sessionId, message, messageLength, WebURL());
+}
+
void WebMediaPlayerClientImpl::keyNeeded(const WebString& keySystem, const WebString& sessionId, const unsigned char* initData, unsigned initDataLength)
{
#if ENABLE(ENCRYPTED_MEDIA)
Modified: trunk/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.h (137723 => 137724)
--- trunk/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.h 2012-12-14 08:19:46 UTC (rev 137723)
+++ trunk/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.h 2012-12-14 08:25:00 UTC (rev 137724)
@@ -88,7 +88,7 @@
virtual WebKit::WebURL sourceURL() const;
virtual void keyAdded(const WebString& keySystem, const WebString& sessionId);
virtual void keyError(const WebString& keySystem, const WebString& sessionId, MediaKeyErrorCode, unsigned short systemCode);
- virtual void keyMessage(const WebString& keySystem, const WebString& sessionId, const unsigned char* message, unsigned messageLength);
+ virtual void keyMessage(const WebString& keySystem, const WebString& sessionId, const unsigned char* message, unsigned messageLength, const WebURL& defaultURL);
virtual void keyNeeded(const WebString& keySystem, const WebString& sessionId, const unsigned char* initData, unsigned initDataLength);
virtual WebPlugin* createHelperPlugin(const WebString& pluginType, WebFrame*);
virtual void closeHelperPlugin();