Chromium Code Reviews| Index: Source/core/platform/graphics/CDMChromium.cpp |
| diff --git a/Source/modules/donottrack/NavigatorDoNotTrack.cpp b/Source/core/platform/graphics/CDMChromium.cpp |
| similarity index 55% |
| copy from Source/modules/donottrack/NavigatorDoNotTrack.cpp |
| copy to Source/core/platform/graphics/CDMChromium.cpp |
| index 5fee3b5536ae29b0637a6b4b389cf8727490f158..0770f24e6aad5e785511f72584e8c0799867c9ad 100644 |
| --- a/Source/modules/donottrack/NavigatorDoNotTrack.cpp |
| +++ b/Source/core/platform/graphics/CDMChromium.cpp |
| @@ -29,48 +29,53 @@ |
| */ |
| #include "config.h" |
| -#include "modules/donottrack/NavigatorDoNotTrack.h" |
| +#include "core/platform/graphics/CDMChromium.h" |
| -#include "core/loader/FrameLoader.h" |
| -#include "core/loader/FrameLoaderClient.h" |
| -#include "core/page/Frame.h" |
| -#include "core/page/Navigator.h" |
| -#include "wtf/PassOwnPtr.h" |
| +#include "core/platform/NotImplemented.h" |
| +#include "core/platform/graphics/CDMSessionChromium.h" |
| +#include "public/platform/Platform.h" |
| +#include "wtf/text/WTFString.h" |
| namespace WebCore { |
| -NavigatorDoNotTrack::NavigatorDoNotTrack(Frame* frame) |
| - : DOMWindowProperty(frame) |
| +bool CDM::supportsKeySystem(const WTF::String& keySystem) |
| { |
| -} |
| + // FIXME: Chromium should handle this, possibly using |
| + // MIMETypeRegistry::isSupportedEncryptedMediaMIMEType(). |
| + notImplemented(); |
| + if (keySystem == "org.w3.clearkey") |
| + return true; |
| -NavigatorDoNotTrack::~NavigatorDoNotTrack() |
| -{ |
| + return false; |
| } |
| -const char* NavigatorDoNotTrack::supplementName() |
| +// Factory method: Chromium-implementation |
| +PassOwnPtr<CDM> CDM::create(const WTF::String& keySystem) |
|
abarth-chromium
2013/06/07 00:08:23
No need for the WTF:: prefix
ddorwin
2013/06/10 22:52:34
Done.
|
| { |
| - return "NavigatorDoNotTrack"; |
| + ASSERT(!keySystem.isNull() && !keySystem.isEmpty()); |
| + OwnPtr<WebKit::WebCDM> cdm = adoptPtr(WebKit::Platform::current()->createCDM(keySystem)); |
| + if (!cdm) |
| + return PassOwnPtr<CDM>(); |
|
abarth-chromium
2013/06/07 00:08:23
You can just write:
return nullptr;
ddorwin
2013/06/10 22:52:34
Done.
|
| + return adoptPtr(new CDMChromium(cdm.release())); |
| } |
| -NavigatorDoNotTrack* NavigatorDoNotTrack::from(Navigator* navigator) |
| +CDMChromium::CDMChromium(PassOwnPtr<WebKit::WebCDM> cdm) |
| + : m_cdm(cdm) |
| { |
| - NavigatorDoNotTrack* supplement = static_cast<NavigatorDoNotTrack*>(Supplement<Navigator>::from(navigator, supplementName())); |
| - if (!supplement) { |
| - supplement = new NavigatorDoNotTrack(navigator->frame()); |
| - provideTo(navigator, supplementName(), adoptPtr(supplement)); |
| - } |
| - return supplement; |
| + ASSERT(m_cdm); |
| } |
| -String NavigatorDoNotTrack::doNotTrack(Navigator* navigator) |
| +bool CDMChromium::supportsMIMEType(const WTF::String& mimeType) |
| { |
| - return NavigatorDoNotTrack::from(navigator)->doNotTrack(); |
| + // FIXME: Chromium should handle this, possibly using |
| + // MIMETypeRegistry::isSupportedEncryptedMediaMIMEType(). |
| + notImplemented(); |
| + return mimeType == "video/webm"; |
| } |
| -String NavigatorDoNotTrack::doNotTrack() |
| +PassOwnPtr<CDMSession> CDMChromium::createSession(CDMSessionClient* client) |
| { |
| - return frame() ? frame()->loader()->client()->doNotTrackValue() : String(); |
| + return adoptPtr(new CDMSessionChromium(*m_cdm, client)); |
| } |
| } // namespace WebCore |