Skip to content
  • commit-queue@webkit.org's avatar
    Add Encrypted Media Extensions methods to HTMLMediaElement · a2a07c04
    commit-queue@webkit.org authored
    https://bugs.webkit.org/show_bug.cgi?id=82971
    
    Patch by David Dorwin <ddorwin@chromium.org> on 2012-04-10
    Reviewed by Adam Barth.
    
    The extensions are behind the ENABLE(ENCRYPTED_MEDIA) feature define.
    Implementation is based on v0.1 of the draft proposal at
    http://dvcs.w3.org/hg/html-media/raw-file/tip/encrypted-media/encrypted-media.html.
    
    Source/WebCore:
    
    Tests: media/encrypted-media/encrypted-media-not-loaded.html
           media/encrypted-media/encrypted-media-syntax.html
    
    * bindings/generic/RuntimeEnabledFeatures.cpp:
    (WebCore):
    * bindings/generic/RuntimeEnabledFeatures.h:
    (RuntimeEnabledFeatures):
    (WebCore::RuntimeEnabledFeatures::webkitEncryptedMediaEnabled):
    (WebCore::RuntimeEnabledFeatures::setWebkitEncryptedMediaEnabled):
    * html/HTMLMediaElement.cpp:
    (WebCore):
    (WebCore::exceptionCodeForMediaKeyException):
    (WebCore::HTMLMediaElement::webkitGenerateKeyRequest):
    (WebCore::HTMLMediaElement::webkitAddKey):
    (WebCore::HTMLMediaElement::webkitCancelKeyRequest):
    (WebCore::HTMLMediaElement::setVolume):
    (WebCore::HTMLMediaElement::togglePlayState):
    (WebCore::HTMLMediaElement::beginScrubbing):
    (WebCore::HTMLMediaElement::addTextTrack):
    (WebCore::HTMLMediaElement::textTracks):
    (WebCore::HTMLMediaElement::showingTrackWithSameKind):
    (WebCore::HTMLMediaElement::didAddTrack):
    * html/HTMLMediaElement.h:
    * html/HTMLMediaElement.idl:
    * platform/graphics/MediaPlayer.cpp:
    (NullMediaPlayerPrivate):
    (WebCore):
    (WebCore::MediaPlayer::generateKeyRequest):
    (WebCore::MediaPlayer::addKey):
    (WebCore::MediaPlayer::cancelKeyRequest):
    * platform/graphics/MediaPlayer.h:
    * platform/graphics/MediaPlayerPrivate.h:
    (MediaPlayerPrivateInterface):
    (WebCore::MediaPlayerPrivateInterface::addKey):
    (WebCore::MediaPlayerPrivateInterface::generateKeyRequest):
    (WebCore::MediaPlayerPrivateInterface::cancelKeyRequest):
    
    Source/WebKit/chromium:
    
    * features.gypi:
    * public/WebMediaPlayer.h:
    (WebKit):
    (WebMediaPlayer):
    (WebKit::WebMediaPlayer::generateKeyRequest):
    (WebKit::WebMediaPlayer::addKey):
    (WebKit::WebMediaPlayer::cancelKeyRequest):
    * public/WebRuntimeFeatures.h:
    (WebRuntimeFeatures):
    * src/AssertMatchingEnums.cpp:
    * src/WebMediaPlayerClientImpl.cpp:
    (WebKit):
    (WebKit::WebMediaPlayerClientImpl::generateKeyRequest):
    (WebKit::WebMediaPlayerClientImpl::addKey):
    (WebKit::WebMediaPlayerClientImpl::cancelKeyRequest):
    * src/WebMediaPlayerClientImpl.h:
    (WebMediaPlayerClientImpl):
    * src/WebRuntimeFeatures.cpp:
    (WebKit::WebRuntimeFeatures::isMediaStreamEnabled):
    (WebKit::WebRuntimeFeatures::enableEncryptedMedia):
    (WebKit):
    (WebKit::WebRuntimeFeatures::isEncryptedMediaEnabled):
    
    Tools:
    
    * DumpRenderTree/chromium/TestShell.cpp:
    (TestShell::TestShell):
    
    LayoutTests:
    
    * media/encrypted-media/encrypted-media-not-loaded-expected.txt: Added.
    * media/encrypted-media/encrypted-media-not-loaded.html: Added.
    * media/encrypted-media/encrypted-media-syntax-expected.txt: Added.
    * media/encrypted-media/encrypted-media-syntax.html: Added.
    * platform/chromium/test_expectations.txt:
    * platform/efl/Skipped:
    * platform/gtk/Skipped:
    * platform/mac/Skipped:
    * platform/qt/Skipped:
    * platform/win/Skipped:
    * platform/wincairo/Skipped:
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@113736 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    a2a07c04