Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1028)

Unified Diff: Source/core/platform/graphics/CDMChromium.cpp

Issue 16387015: Make unprefixed EME APIs use platform and Chromium. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698