зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1315850 - Stub out ChromiumCDMProxy. r=gerald
This will eventually replace GMPCDMProxy. Methods will be implemented in later patches. MozReview-Commit-ID: 86pwo81tFZv --HG-- extra : rebase_source : df41a20a0fefaf26a63ed18f1ccdf7fa5a3a1e89
This commit is contained in:
Родитель
dd0f308205
Коммит
57b480eb64
|
@ -0,0 +1,203 @@
|
|||
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#include "ChromiumCDMProxy.h"
|
||||
#include "GMPUtils.h"
|
||||
|
||||
namespace mozilla {
|
||||
|
||||
ChromiumCDMProxy::ChromiumCDMProxy(dom::MediaKeys* aKeys,
|
||||
const nsAString& aKeySystem,
|
||||
GMPCrashHelper* aCrashHelper,
|
||||
bool aDistinctiveIdentifierRequired,
|
||||
bool aPersistentStateRequired,
|
||||
nsIEventTarget* aMainThread)
|
||||
: CDMProxy(aKeys,
|
||||
aKeySystem,
|
||||
aDistinctiveIdentifierRequired,
|
||||
aPersistentStateRequired,
|
||||
aMainThread)
|
||||
, mCrashHelper(aCrashHelper)
|
||||
, mCDM(nullptr)
|
||||
, mGMPThread(GetGMPAbstractThread())
|
||||
{
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
MOZ_COUNT_CTOR(ChromiumCDMProxy);
|
||||
}
|
||||
|
||||
ChromiumCDMProxy::~ChromiumCDMProxy()
|
||||
{
|
||||
MOZ_COUNT_DTOR(ChromiumCDMProxy);
|
||||
}
|
||||
|
||||
void
|
||||
ChromiumCDMProxy::Init(PromiseId aPromiseId,
|
||||
const nsAString& aOrigin,
|
||||
const nsAString& aTopLevelOrigin,
|
||||
const nsAString& aGMPName)
|
||||
{
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
bool
|
||||
ChromiumCDMProxy::IsOnOwnerThread()
|
||||
{
|
||||
return mGMPThread->IsCurrentThreadIn();
|
||||
}
|
||||
#endif
|
||||
|
||||
void
|
||||
ChromiumCDMProxy::CreateSession(uint32_t aCreateSessionToken,
|
||||
dom::MediaKeySessionType aSessionType,
|
||||
PromiseId aPromiseId,
|
||||
const nsAString& aInitDataType,
|
||||
nsTArray<uint8_t>& aInitData)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
ChromiumCDMProxy::LoadSession(PromiseId aPromiseId, const nsAString& aSessionId)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
ChromiumCDMProxy::SetServerCertificate(PromiseId aPromiseId,
|
||||
nsTArray<uint8_t>& aCert)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
ChromiumCDMProxy::UpdateSession(const nsAString& aSessionId,
|
||||
PromiseId aPromiseId,
|
||||
nsTArray<uint8_t>& aResponse)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
ChromiumCDMProxy::CloseSession(const nsAString& aSessionId,
|
||||
PromiseId aPromiseId)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
ChromiumCDMProxy::RemoveSession(const nsAString& aSessionId,
|
||||
PromiseId aPromiseId)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
ChromiumCDMProxy::Shutdown()
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
ChromiumCDMProxy::RejectPromise(PromiseId aId,
|
||||
nsresult aCode,
|
||||
const nsCString& aReason)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
ChromiumCDMProxy::ResolvePromise(PromiseId aId)
|
||||
{
|
||||
}
|
||||
|
||||
const nsCString&
|
||||
ChromiumCDMProxy::GetNodeId() const
|
||||
{
|
||||
return mNodeId;
|
||||
}
|
||||
|
||||
void
|
||||
ChromiumCDMProxy::OnSetSessionId(uint32_t aCreateSessionToken,
|
||||
const nsAString& aSessionId)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
ChromiumCDMProxy::OnResolveLoadSessionPromise(uint32_t aPromiseId,
|
||||
bool aSuccess)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
ChromiumCDMProxy::OnSessionMessage(const nsAString& aSessionId,
|
||||
dom::MediaKeyMessageType aMessageType,
|
||||
nsTArray<uint8_t>& aMessage)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
ChromiumCDMProxy::OnKeyStatusesChange(const nsAString& aSessionId)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
ChromiumCDMProxy::OnExpirationChange(const nsAString& aSessionId,
|
||||
GMPTimestamp aExpiryTime)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
ChromiumCDMProxy::OnSessionClosed(const nsAString& aSessionId)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
ChromiumCDMProxy::OnDecrypted(uint32_t aId,
|
||||
DecryptStatus aResult,
|
||||
const nsTArray<uint8_t>& aDecryptedData)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
ChromiumCDMProxy::OnSessionError(const nsAString& aSessionId,
|
||||
nsresult aException,
|
||||
uint32_t aSystemCode,
|
||||
const nsAString& aMsg)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
ChromiumCDMProxy::OnRejectPromise(uint32_t aPromiseId,
|
||||
nsresult aDOMException,
|
||||
const nsCString& aMsg)
|
||||
{
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
RejectPromise(aPromiseId, aDOMException, aMsg);
|
||||
}
|
||||
|
||||
const nsString&
|
||||
ChromiumCDMProxy::KeySystem() const
|
||||
{
|
||||
return mKeySystem;
|
||||
}
|
||||
|
||||
CDMCaps&
|
||||
ChromiumCDMProxy::Capabilites()
|
||||
{
|
||||
return mCapabilites;
|
||||
}
|
||||
|
||||
RefPtr<DecryptPromise>
|
||||
ChromiumCDMProxy::Decrypt(MediaRawData* aSample)
|
||||
{
|
||||
return DecryptPromise::CreateAndReject(DecryptResult(GenericErr, nullptr),
|
||||
__func__);
|
||||
}
|
||||
|
||||
void
|
||||
ChromiumCDMProxy::GetSessionIdsForKeyId(const nsTArray<uint8_t>& aKeyId,
|
||||
nsTArray<nsCString>& aSessionIds)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
ChromiumCDMProxy::Terminated()
|
||||
{
|
||||
}
|
||||
|
||||
} // namespace mozilla
|
|
@ -0,0 +1,121 @@
|
|||
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#ifndef ChromiumCDMProxy_h_
|
||||
#define ChromiumCDMProxy_h_
|
||||
|
||||
#include "mozilla/CDMProxy.h"
|
||||
#include "mozilla/AbstractThread.h"
|
||||
#include "ChromiumCDMParent.h"
|
||||
|
||||
namespace mozilla {
|
||||
|
||||
class MediaRawData;
|
||||
class DecryptJob;
|
||||
|
||||
class ChromiumCDMProxy : public CDMProxy
|
||||
{
|
||||
public:
|
||||
NS_INLINE_DECL_THREADSAFE_REFCOUNTING(ChromiumCDMProxy, override)
|
||||
|
||||
ChromiumCDMProxy(dom::MediaKeys* aKeys,
|
||||
const nsAString& aKeySystem,
|
||||
GMPCrashHelper* aCrashHelper,
|
||||
bool aAllowDistinctiveIdentifier,
|
||||
bool aAllowPersistentState,
|
||||
nsIEventTarget* aMainThread);
|
||||
|
||||
void Init(PromiseId aPromiseId,
|
||||
const nsAString& aOrigin,
|
||||
const nsAString& aTopLevelOrigin,
|
||||
const nsAString& aGMPName) override;
|
||||
|
||||
void CreateSession(uint32_t aCreateSessionToken,
|
||||
dom::MediaKeySessionType aSessionType,
|
||||
PromiseId aPromiseId,
|
||||
const nsAString& aInitDataType,
|
||||
nsTArray<uint8_t>& aInitData) override;
|
||||
|
||||
void LoadSession(PromiseId aPromiseId, const nsAString& aSessionId) override;
|
||||
|
||||
void SetServerCertificate(PromiseId aPromiseId,
|
||||
nsTArray<uint8_t>& aCert) override;
|
||||
|
||||
void UpdateSession(const nsAString& aSessionId,
|
||||
PromiseId aPromiseId,
|
||||
nsTArray<uint8_t>& aResponse) override;
|
||||
|
||||
void CloseSession(const nsAString& aSessionId, PromiseId aPromiseId) override;
|
||||
|
||||
void RemoveSession(const nsAString& aSessionId,
|
||||
PromiseId aPromiseId) override;
|
||||
|
||||
void Shutdown() override;
|
||||
|
||||
void Terminated() override;
|
||||
|
||||
const nsCString& GetNodeId() const override;
|
||||
|
||||
void OnSetSessionId(uint32_t aCreateSessionToken,
|
||||
const nsAString& aSessionId) override;
|
||||
|
||||
void OnResolveLoadSessionPromise(uint32_t aPromiseId, bool aSuccess) override;
|
||||
|
||||
void OnSessionMessage(const nsAString& aSessionId,
|
||||
dom::MediaKeyMessageType aMessageType,
|
||||
nsTArray<uint8_t>& aMessage) override;
|
||||
|
||||
void OnExpirationChange(const nsAString& aSessionId,
|
||||
GMPTimestamp aExpiryTime) override;
|
||||
|
||||
void OnSessionClosed(const nsAString& aSessionId) override;
|
||||
|
||||
void OnSessionError(const nsAString& aSessionId,
|
||||
nsresult aException,
|
||||
uint32_t aSystemCode,
|
||||
const nsAString& aMsg) override;
|
||||
|
||||
void OnRejectPromise(uint32_t aPromiseId,
|
||||
nsresult aDOMException,
|
||||
const nsCString& aMsg) override;
|
||||
|
||||
RefPtr<DecryptPromise> Decrypt(MediaRawData* aSample) override;
|
||||
|
||||
void OnDecrypted(uint32_t aId,
|
||||
DecryptStatus aResult,
|
||||
const nsTArray<uint8_t>& aDecryptedData) override;
|
||||
|
||||
void RejectPromise(PromiseId aId,
|
||||
nsresult aExceptionCode,
|
||||
const nsCString& aReason) override;
|
||||
|
||||
void ResolvePromise(PromiseId aId) override;
|
||||
|
||||
const nsString& KeySystem() const override;
|
||||
|
||||
CDMCaps& Capabilites() override;
|
||||
|
||||
void OnKeyStatusesChange(const nsAString& aSessionId) override;
|
||||
|
||||
void GetSessionIdsForKeyId(const nsTArray<uint8_t>& aKeyId,
|
||||
nsTArray<nsCString>& aSessionIds) override;
|
||||
|
||||
#ifdef DEBUG
|
||||
bool IsOnOwnerThread() override;
|
||||
#endif
|
||||
|
||||
private:
|
||||
~ChromiumCDMProxy();
|
||||
|
||||
GMPCrashHelper* mCrashHelper;
|
||||
|
||||
RefPtr<gmp::ChromiumCDMParent> mCDM;
|
||||
RefPtr<AbstractThread> mGMPThread;
|
||||
};
|
||||
|
||||
} // namespace mozilla
|
||||
|
||||
#endif // GMPCDMProxy_h_
|
|
@ -13,6 +13,7 @@ XPIDL_SOURCES += [
|
|||
|
||||
EXPORTS += [
|
||||
'ChromiumCDMParent.h',
|
||||
'ChromiumCDMProxy.h',
|
||||
'DecryptJob.h',
|
||||
'gmp-api/gmp-decryption.h',
|
||||
'gmp-api/gmp-entrypoints.h',
|
||||
|
@ -72,6 +73,7 @@ UNIFIED_SOURCES += [
|
|||
'ChromiumCDMAdapter.cpp',
|
||||
'ChromiumCDMChild.cpp',
|
||||
'ChromiumCDMParent.cpp',
|
||||
'ChromiumCDMProxy.cpp',
|
||||
'DecryptJob.cpp',
|
||||
'GMPCDMCallbackProxy.cpp',
|
||||
'GMPCDMProxy.cpp',
|
||||
|
|
Загрузка…
Ссылка в новой задаче