Chromium Code Reviews| Index: Source/web/WebMediaPlayerClientImpl.cpp |
| diff --git a/Source/web/WebMediaPlayerClientImpl.cpp b/Source/web/WebMediaPlayerClientImpl.cpp |
| index 059913134535b8455caaea8df1bcf90ab41cfbb8..4c14d9297659519459081c63e17c05d2ec995cd7 100644 |
| --- a/Source/web/WebMediaPlayerClientImpl.cpp |
| +++ b/Source/web/WebMediaPlayerClientImpl.cpp |
| @@ -13,6 +13,7 @@ |
| #include "modules/encryptedmedia/HTMLMediaElementEncryptedMedia.h" |
| #include "modules/encryptedmedia/MediaKeyNeededEvent.h" |
| #include "modules/mediastream/MediaStreamRegistry.h" |
| +#include "platform/ContentDecryptionModuleResult.h" |
| #include "platform/audio/AudioBus.h" |
| #include "platform/audio/AudioSourceProviderClient.h" |
| #include "platform/geometry/IntSize.h" |
| @@ -52,6 +53,19 @@ using namespace blink; |
| namespace blink { |
| +// Represents the result used when setContentDecryptionModule() is called. |
| +// This happens asynchronously. Since there is no way to report an error, |
|
ddorwin
2014/07/31 00:56:36
This is the scenario xhwang was referring to in th
jrummell
2014/08/07 01:43:02
Remove this in favor of having a synchronous metho
|
| +// simply ignore any result. |
| +class IgnoreResponseContentDecryptionModuleResult FINAL : public ContentDecryptionModuleResult { |
|
ddorwin
2014/07/31 00:56:36
We should come up with a better name, especially i
jrummell
2014/08/07 01:43:02
Gone.
|
| +public: |
| + IgnoreResponseContentDecryptionModuleResult() { } |
| + |
| + // ContentDecryptionModuleResult implementation. |
| + virtual void complete() OVERRIDE { } |
| + virtual void completeWithSession(blink::WebContentDecryptionModuleResult::SessionStatus status) OVERRIDE { } |
| + virtual void completeWithError(blink::WebContentDecryptionModuleException code, unsigned long systemCode, const blink::WebString& message) OVERRIDE { } |
| +}; |
| + |
| static PassOwnPtr<WebMediaPlayer> createWebMediaPlayer(WebMediaPlayerClient* client, const WebURL& url, LocalFrame* frame) |
| { |
| WebLocalFrameImpl* webFrame = WebLocalFrameImpl::fromFrame(frame); |
| @@ -220,8 +234,10 @@ void WebMediaPlayerClientImpl::load(WebMediaPlayer::LoadType loadType, const WTF |
| m_usePaintOnAndroid = (loadType != WebMediaPlayer::LoadTypeMediaStream); |
| #endif |
| - // Tell WebMediaPlayer about any connected CDM (may be null). |
| - m_webMediaPlayer->setContentDecryptionModule(HTMLMediaElementEncryptedMedia::contentDecryptionModule(mediaElement())); |
| + // Tell WebMediaPlayer about any connected CDM (may be null). Ignore any |
| + // errors that happen while setting the CDM. |
| + ContentDecryptionModuleResult* result = new IgnoreResponseContentDecryptionModuleResult(); |
| + m_webMediaPlayer->setContentDecryptionModule(HTMLMediaElementEncryptedMedia::contentDecryptionModule(mediaElement()), result->result()); |
|
ddorwin
2014/07/31 00:56:36
Hmm, I wonder if this needs to be synchronous due
jrummell
2014/08/07 01:43:02
Done.
|
| m_webMediaPlayer->load(loadType, kurl, corsMode); |
| } |