RemoteLegacyCDM.cpp [plain text]
#include "config.h"
#include "RemoteLegacyCDM.h"
#if ENABLE(GPU_PROCESS) && ENABLE(LEGACY_ENCRYPTED_MEDIA)
#include "GPUProcessConnection.h"
#include "RemoteLegacyCDMFactory.h"
#include "RemoteLegacyCDMProxyMessages.h"
#include "RemoteLegacyCDMSession.h"
namespace WebKit {
using namespace WebCore;
std::unique_ptr<RemoteLegacyCDM> RemoteLegacyCDM::create(WeakPtr<RemoteLegacyCDMFactory>&& factory, RemoteLegacyCDMIdentifier identifier)
{
return std::unique_ptr<RemoteLegacyCDM>(new RemoteLegacyCDM(WTFMove(factory), WTFMove(identifier)));
}
RemoteLegacyCDM::RemoteLegacyCDM(WeakPtr<RemoteLegacyCDMFactory>&& factory, RemoteLegacyCDMIdentifier&& identifier)
: m_factory(WTFMove(factory))
, m_identifier(WTFMove(identifier))
{
}
RemoteLegacyCDM::~RemoteLegacyCDM() = default;
bool RemoteLegacyCDM::supportsMIMEType(const String& mimeType)
{
if (!m_factory)
return false;
bool supported = false;
m_factory->gpuProcessConnection().connection().sendSync(Messages::RemoteLegacyCDMProxy::SupportsMIMEType(mimeType), Messages::RemoteLegacyCDMProxy::SupportsMIMEType::Reply(supported), m_identifier);
return supported;
}
std::unique_ptr<WebCore::LegacyCDMSession> RemoteLegacyCDM::createSession(WebCore::LegacyCDMSessionClient* client)
{
if (!m_factory)
return nullptr;
String storageDirectory = client ? client->mediaKeysStorageDirectory() : emptyString();
RemoteLegacyCDMSessionIdentifier identifier;
m_factory->gpuProcessConnection().connection().sendSync(Messages::RemoteLegacyCDMProxy::CreateSession(storageDirectory), Messages::RemoteLegacyCDMProxy::CreateSession::Reply(identifier), m_identifier);
if (!identifier)
return nullptr;
return RemoteLegacyCDMSession::create(m_factory, WTFMove(identifier));
}
void RemoteLegacyCDM::setPlayerId(MediaPlayerIdentifier identifier)
{
if (!m_factory)
return;
Optional<MediaPlayerIdentifier> optionalId;
if (identifier)
optionalId = identifier;
m_factory->gpuProcessConnection().connection().send(Messages::RemoteLegacyCDMProxy::SetPlayerId(optionalId), m_identifier);
}
}
#endif