tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

ChromiumCDMCallbackProxy.h (2059B)


      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 ChromiumCDMCallbackProxy_h_
      7 #define ChromiumCDMCallbackProxy_h_
      8 
      9 #include "ChromiumCDMCallback.h"
     10 #include "ChromiumCDMProxy.h"
     11 #include "nsThreadUtils.h"
     12 
     13 namespace mozilla {
     14 
     15 class ChromiumCDMCallbackProxy : public ChromiumCDMCallback {
     16 public:
     17  ChromiumCDMCallbackProxy(ChromiumCDMProxy* aProxy,
     18                           nsIEventTarget* aMainThread)
     19      : mProxy(aProxy), mMainThread(aMainThread) {}
     20 
     21  void SetSessionId(uint32_t aPromiseId, const nsCString& aSessionId) override;
     22 
     23  void ResolveLoadSessionPromise(uint32_t aPromiseId,
     24                                 bool aSuccessful) override;
     25 
     26  void ResolvePromiseWithKeyStatus(uint32_t aPromiseId,
     27                                   uint32_t aKeyStatus) override;
     28 
     29  void ResolvePromise(uint32_t aPromiseId) override;
     30 
     31  void RejectPromise(uint32_t aPromiseId, ErrorResult&& aException,
     32                     const nsCString& aErrorMessage) override;
     33 
     34  void SessionMessage(const nsACString& aSessionId, uint32_t aMessageType,
     35                      nsTArray<uint8_t>&& aMessage) override;
     36 
     37  void SessionKeysChange(
     38      const nsCString& aSessionId,
     39      nsTArray<mozilla::gmp::CDMKeyInformation>&& aKeysInfo) override;
     40 
     41  void ExpirationChange(const nsCString& aSessionId,
     42                        double aSecondsSinceEpoch) override;
     43 
     44  void SessionClosed(const nsCString& aSessionId) override;
     45 
     46  void QueryOutputProtectionStatus() override;
     47 
     48  void Terminated() override;
     49 
     50  void Shutdown() override;
     51 
     52 private:
     53  template <class Func, class... Args>
     54  void DispatchToMainThread(const char* const aLabel, Func aFunc,
     55                            Args&&... aArgs);
     56  // Warning: Weak ref.
     57  ChromiumCDMProxy* mProxy;
     58  const nsCOMPtr<nsIEventTarget> mMainThread;
     59 };
     60 
     61 }  // namespace mozilla
     62 #endif