Add CdmWrapper to support multiple CDM versions in CdmAdapter.

CdmWrapper wraps different versions of ContentDecryptionModule interfaces and exposes a common interface to the caller.

BUG=306647
TEST=none

Review URL: https://codereview.chromium.org/26155003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@229571 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/media/cdm/ppapi/cdm_adapter.cc b/media/cdm/ppapi/cdm_adapter.cc
index fb8e5f4..7fcd5f02 100644
--- a/media/cdm/ppapi/cdm_adapter.cc
+++ b/media/cdm/ppapi/cdm_adapter.cc
@@ -212,18 +212,12 @@
   callback_factory_.Initialize(this);
 }
 
-CdmAdapter::~CdmAdapter() {
-  if (cdm_)
-    cdm_->Destroy();
-}
+CdmAdapter::~CdmAdapter() {}
 
 bool CdmAdapter::CreateCdmInstance(const std::string& key_system) {
   PP_DCHECK(!cdm_);
-  cdm_ = static_cast<cdm::ContentDecryptionModule*>(
-      ::CreateCdmInstance(cdm::kCdmInterfaceVersion,
-                          key_system.data(), key_system.size(),
-                          GetCdmHost, this));
-
+  cdm_ = make_linked_ptr(CdmWrapper::Create(
+      key_system.data(), key_system.size(), GetCdmHost, this));
   return (cdm_ != NULL);
 }