Convert OwnPtr to std::unique_ptr in CDM
[WebKit-https.git] / Source / WebCore / Modules / encryptedmedia / MediaKeys.cpp
index a07bc12..286af20 100644 (file)
@@ -57,18 +57,18 @@ PassRefPtr<MediaKeys> MediaKeys::create(const String& keySystem, ExceptionCode&
 
     // 3. Let cdm be the content decryption module corresponding to keySystem.
     // 4. Load cdm if necessary.
-    OwnPtr<CDM> cdm = CDM::create(keySystem);
+    std::unique_ptr<CDM> cdm = CDM::create(keySystem);
 
     // 5. Create a new MediaKeys object.
     // 5.1 Let the keySystem attribute be keySystem.
     // 6. Return the new object to the caller.
-    return adoptRef(new MediaKeys(keySystem, cdm.release()));
+    return adoptRef(new MediaKeys(keySystem, std::move(cdm)));
 }
 
-MediaKeys::MediaKeys(const String& keySystem, PassOwnPtr<CDM> cdm)
+MediaKeys::MediaKeys(const String& keySystem, std::unique_ptr<CDM> cdm)
     : m_mediaElement(0)
     , m_keySystem(keySystem)
-    , m_cdm(cdm)
+    , m_cdm(std::move(cdm))
 {
     m_cdm->setClient(this);
 }
@@ -89,29 +89,33 @@ PassRefPtr<MediaKeySession> MediaKeys::createSession(ScriptExecutionContext* con
     // The createSession(type, initData) method must run the following steps:
     // Note: The contents of initData are container-specific Initialization Data.
 
-    // 1. If type is null or an empty string and initData is not null or an empty string, throw an
-    // INVALID_ACCESS_ERR exception and abort these steps.
-    if ((type.isNull() || type.isEmpty()) && (!initData || initData->length())) {
+    // 1. If contentType is null or an empty string, throw an INVALID_ACCESS_ERR exception and abort these steps.
+    if (type.isEmpty()) {
         ec = INVALID_ACCESS_ERR;
         return 0;
     }
 
-    // 2. If type contains a MIME type that is not supported or is not supported by the keySystem, throw
+    // 2. If initData is null or an empty array, throw an INVALID_ACCESS_ERR exception and abort these steps.
+    if (!initData || !initData->length()) {
+        ec = INVALID_ACCESS_ERR;
+        return 0;
+    }
+
+    // 3. If type contains a MIME type that is not supported or is not supported by the keySystem, throw
     // a NOT_SUPPORTED_ERR exception and abort these steps.
     if (!type.isNull() && !type.isEmpty() && !m_cdm->supportsMIMEType(type)) {
         ec = NOT_SUPPORTED_ERR;
         return 0;
     }
 
-    // 3. Create a new MediaKeySession object.
-    // 3.1 Let the keySystem attribute be keySystem.
-    // 3.2 Let the sessionId attribute be a unique Session ID string. It may be generated by cdm.
+    // 4. Create a new MediaKeySession object.
+    // 4.1 Let the keySystem attribute be keySystem.
+    // 4.2 Let the sessionId attribute be a unique Session ID string. It may be generated by cdm.
     RefPtr<MediaKeySession> session = MediaKeySession::create(context, this, keySystem());
 
-    // 4. Add the new object to an internal list of session objects.
     m_sessions.append(session);
 
-    // 5. Schedule a task to generate a key request, providing type, initData, and the new object.
+    // 5. Schedule a task to initialize the session, providing contentType, initData, and the new object.
     session->generateKeyRequest(type, initData);
 
     // 6. Return the new object to the caller.