diff options
Diffstat (limited to 'dom/media/gmp/PGMPDecryptor.ipdl')
-rw-r--r-- | dom/media/gmp/PGMPDecryptor.ipdl | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/dom/media/gmp/PGMPDecryptor.ipdl b/dom/media/gmp/PGMPDecryptor.ipdl new file mode 100644 index 0000000000..06b9b9cb60 --- /dev/null +++ b/dom/media/gmp/PGMPDecryptor.ipdl @@ -0,0 +1,92 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* 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 protocol PGMPContent; +include GMPTypes; + +using GMPSessionMessageType from "gmp-decryption.h"; +using GMPSessionType from "gmp-decryption.h"; +using GMPDOMException from "gmp-decryption.h"; +using GMPErr from "gmp-errors.h"; + +namespace mozilla { +namespace gmp { + +async protocol PGMPDecryptor +{ + manager PGMPContent; +child: + + async Init(bool aDistinctiveIdentifierRequired, + bool aPersistentStateRequired); + + async CreateSession(uint32_t aCreateSessionToken, + uint32_t aPromiseId, + nsCString aInitDataType, + uint8_t[] aInitData, + GMPSessionType aSessionType); + + async LoadSession(uint32_t aPromiseId, + nsCString aSessionId); + + async UpdateSession(uint32_t aPromiseId, + nsCString aSessionId, + uint8_t[] aResponse); + + async CloseSession(uint32_t aPromiseId, + nsCString aSessionId); + + async RemoveSession(uint32_t aPromiseId, + nsCString aSessionId); + + async SetServerCertificate(uint32_t aPromiseId, + uint8_t[] aServerCert); + + async Decrypt(uint32_t aId, + uint8_t[] aBuffer, + GMPDecryptionData aMetadata); + + async DecryptingComplete(); + +parent: + async __delete__(); + + async SetDecryptorId(uint32_t aId); + + async SetSessionId(uint32_t aCreateSessionToken, + nsCString aSessionId); + + async ResolveLoadSessionPromise(uint32_t aPromiseId, + bool aSuccess); + + async ResolvePromise(uint32_t aPromiseId); + + async RejectPromise(uint32_t aPromiseId, + GMPDOMException aDOMExceptionCode, + nsCString aMessage); + + async SessionMessage(nsCString aSessionId, + GMPSessionMessageType aMessageType, + uint8_t[] aMessage); + + async ExpirationChange(nsCString aSessionId, double aExpiryTime); + + async SessionClosed(nsCString aSessionId); + + async SessionError(nsCString aSessionId, + GMPDOMException aDOMExceptionCode, + uint32_t aSystemCode, + nsCString aMessage); + + async Decrypted(uint32_t aId, GMPErr aResult, uint8_t[] aBuffer); + + async Shutdown(); + + async BatchedKeyStatusChanged(nsCString aSessionId, + GMPKeyInformation[] aKeyInfos); +}; + +} // namespace gmp +} // namespace mozilla |