ChromiumCDMCallback.h (1950B)
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 2 /* This Source Code Form is subject to the terms of the Mozilla Public 3 * License, v. 2.0. If a copy of the MPL was not distributed with this 4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 5 6 #ifndef ChromiumCDMCallback_h_ 7 #define ChromiumCDMCallback_h_ 8 9 #include "mozilla/CDMProxy.h" 10 #include "mozilla/dom/MediaKeyMessageEventBinding.h" // For MediaKeyMessageType 11 #include "mozilla/dom/MediaKeyStatusMapBinding.h" // For MediaKeyStatus 12 #include "mozilla/gmp/GMPTypes.h" // For CDMKeyInformation 13 14 namespace mozilla { 15 class ErrorResult; 16 } 17 18 class ChromiumCDMCallback { 19 public: 20 virtual ~ChromiumCDMCallback() = default; 21 22 virtual void SetSessionId(uint32_t aPromiseId, 23 const nsCString& aSessionId) = 0; 24 25 virtual void ResolveLoadSessionPromise(uint32_t aPromiseId, 26 bool aSuccessful) = 0; 27 28 virtual void ResolvePromiseWithKeyStatus(uint32_t aPromiseId, 29 uint32_t aKeyStatus) = 0; 30 31 virtual void ResolvePromise(uint32_t aPromiseId) = 0; 32 33 virtual void RejectPromise(uint32_t aPromiseId, mozilla::ErrorResult&& aError, 34 const nsCString& aErrorMessage) = 0; 35 36 virtual void SessionMessage(const nsACString& aSessionId, 37 uint32_t aMessageType, 38 nsTArray<uint8_t>&& aMessage) = 0; 39 40 virtual void SessionKeysChange( 41 const nsCString& aSessionId, 42 nsTArray<mozilla::gmp::CDMKeyInformation>&& aKeysInfo) = 0; 43 44 virtual void ExpirationChange(const nsCString& aSessionId, 45 double aSecondsSinceEpoch) = 0; 46 47 virtual void SessionClosed(const nsCString& aSessionId) = 0; 48 49 virtual void QueryOutputProtectionStatus() = 0; 50 51 virtual void Terminated() = 0; 52 53 virtual void Shutdown() = 0; 54 }; 55 56 #endif