blob: 6a2a46d7a0c590b49ad49a940b7aa59705b34b72 [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "modules/encryptedmedia/EncryptedMediaUtils.h"
namespace blink {
namespace {
const char kTemporary[] = "temporary";
const char kPersistentLicense[] = "persistent-license";
} // namespace
WebEncryptedMediaInitDataType EncryptedMediaUtils::convertToInitDataType(const String& initDataType)
{
if (initDataType == "cenc")
return WebEncryptedMediaInitDataType::Cenc;
if (initDataType == "keyids")
return WebEncryptedMediaInitDataType::Keyids;
if (initDataType == "webm")
return WebEncryptedMediaInitDataType::Webm;
// |initDataType| is not restricted in the idl, so anything is possible.
return WebEncryptedMediaInitDataType::Unknown;
}
String EncryptedMediaUtils::convertFromInitDataType(WebEncryptedMediaInitDataType initDataType)
{
switch (initDataType) {
case WebEncryptedMediaInitDataType::Cenc:
return "cenc";
case WebEncryptedMediaInitDataType::Keyids:
return "keyids";
case WebEncryptedMediaInitDataType::Webm:
return "webm";
case WebEncryptedMediaInitDataType::Unknown:
// Chromium should not use Unknown, but we use it in Blink when the
// actual value has been blocked for non-same-origin or mixed content.
return String();
}
ASSERT_NOT_REACHED();
return String();
}
WebEncryptedMediaSessionType EncryptedMediaUtils::convertToSessionType(const String& sessionType)
{
if (sessionType == kTemporary)
return WebEncryptedMediaSessionType::Temporary;
if (sessionType == kPersistentLicense)
return WebEncryptedMediaSessionType::PersistentLicense;
// |sessionType| is not restricted in the idl, so anything is possible.
return WebEncryptedMediaSessionType::Unknown;
}
String EncryptedMediaUtils::convertFromSessionType(WebEncryptedMediaSessionType sessionType)
{
switch (sessionType) {
case WebEncryptedMediaSessionType::Temporary:
return kTemporary;
case WebEncryptedMediaSessionType::PersistentLicense:
return kPersistentLicense;
// FIXME: Remove once removed from Chromium (crbug.com/448888).
case WebEncryptedMediaSessionType::PersistentReleaseMessage:
case WebEncryptedMediaSessionType::Unknown:
// Chromium should not use Unknown.
ASSERT_NOT_REACHED();
return String();
}
ASSERT_NOT_REACHED();
return String();
}
} // namespace blink