tor-browser

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

WMFClearKeyInputTrustAuthority.h (2078B)


      1 /* This Source Code Form is subject to the terms of the Mozilla Public
      2 * License, v. 2.0. If a copy of the MPL was not distributed with this
      3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      4 
      5 #ifndef DOM_MEDIA_PLATFORM_WMF_CLEARKEY_WMFCLEARKEYINPUTTRUSTAUTHORITY_H
      6 #define DOM_MEDIA_PLATFORM_WMF_CLEARKEY_WMFCLEARKEYINPUTTRUSTAUTHORITY_H
      7 
      8 #include <wrl.h>
      9 #include <wrl/client.h>
     10 
     11 #include "MFCDMExtra.h"
     12 #include "RefCounted.h"
     13 
     14 namespace mozilla {
     15 
     16 class SessionManagerWrapper;
     17 
     18 // This class is used to provide WMFClearKeyActivate and WMFClearKeyDecryptor.
     19 class WMFClearKeyInputTrustAuthority final
     20    : public Microsoft::WRL::RuntimeClass<
     21          Microsoft::WRL::RuntimeClassFlags<Microsoft::WRL::ClassicCom>,
     22          IMFInputTrustAuthority, IMFShutdown, Microsoft::WRL::FtmBase> {
     23 public:
     24  WMFClearKeyInputTrustAuthority() = default;
     25  ~WMFClearKeyInputTrustAuthority() = default;
     26  WMFClearKeyInputTrustAuthority(const WMFClearKeyInputTrustAuthority&) =
     27      delete;
     28  WMFClearKeyInputTrustAuthority& operator=(
     29      const WMFClearKeyInputTrustAuthority&) = delete;
     30 
     31  HRESULT RuntimeClassInitialize(UINT32 aStreamId,
     32                                 SessionManagerWrapper* aSessionManager);
     33 
     34  // IMFInputTrustAuthority
     35  STDMETHODIMP GetDecrypter(REFIID aRiid, void** aPpv) override;
     36  STDMETHODIMP RequestAccess(MFPOLICYMANAGER_ACTION aAction,
     37                             IMFActivate** aContentEnablerActivate) override;
     38  STDMETHODIMP GetPolicy(MFPOLICYMANAGER_ACTION aAction,
     39                         IMFOutputPolicy** aPolicy) override;
     40  STDMETHODIMP BindAccess(
     41      MFINPUTTRUSTAUTHORITY_ACCESS_PARAMS* aParams) override;
     42  STDMETHODIMP UpdateAccess(
     43      MFINPUTTRUSTAUTHORITY_ACCESS_PARAMS* aParams) override;
     44  STDMETHODIMP Reset() override;
     45 
     46  // IMFShutdown
     47  STDMETHODIMP GetShutdownStatus(MFSHUTDOWN_STATUS* aStatus) override;
     48  STDMETHODIMP Shutdown() override;
     49 
     50 private:
     51  RefPtr<SessionManagerWrapper> mSessionManager;
     52 };
     53 
     54 }  // namespace mozilla
     55 
     56 #endif  // DOM_MEDIA_PLATFORM_WMF_CLEARKEY_WMFCLEARKEYINPUTTRUSTAUTHORITY_H