RemoteCDMInstance.h [plain text]
#pragma once
#if ENABLE(GPU_PROCESS) && ENABLE(ENCRYPTED_MEDIA)
#include "RemoteCDMFactory.h"
#include "RemoteCDMInstanceConfiguration.h"
#include "RemoteCDMInstanceIdentifier.h"
#include <WebCore/CDMInstance.h>
namespace WebKit {
class RemoteCDMInstance final : public WebCore::CDMInstance {
public:
virtual ~RemoteCDMInstance() = default;
static Ref<RemoteCDMInstance> create(WeakPtr<RemoteCDMFactory>&&, RemoteCDMInstanceIdentifier&&, RemoteCDMInstanceConfiguration&&);
const RemoteCDMInstanceIdentifier& identifier() const { return m_identifier; }
private:
RemoteCDMInstance(WeakPtr<RemoteCDMFactory>&&, RemoteCDMInstanceIdentifier&&, RemoteCDMInstanceConfiguration&&);
ImplementationType implementationType() const final { return ImplementationType::Remote; }
void initializeWithConfiguration(const WebCore::CDMKeySystemConfiguration&, AllowDistinctiveIdentifiers, AllowPersistentState, SuccessCallback&&) final;
void setServerCertificate(Ref<WebCore::SharedBuffer>&&, SuccessCallback&&) final;
void setStorageDirectory(const String&) final;
const String& keySystem() const final { return m_configuration.keySystem; }
RefPtr<WebCore::CDMInstanceSession> createSession() final;
WeakPtr<RemoteCDMFactory> m_factory;
RemoteCDMInstanceIdentifier m_identifier;
RemoteCDMInstanceConfiguration m_configuration;
};
}
SPECIALIZE_TYPE_TRAITS_CDM_INSTANCE(WebKit::RemoteCDMInstance, WebCore::CDMInstance::ImplementationType::Remote)
#endif