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 |