Coverage Report

Created: 2018-09-25 14:53

/src/mozilla-central/dom/media/gmp/ChromiumCDMCallbackProxy.h
Line
Count
Source (jump to first uncovered line)
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
18
  ChromiumCDMCallbackProxy(ChromiumCDMProxy* aProxy,
19
                           nsIEventTarget* aMainThread)
20
    : mProxy(aProxy), mMainThread(aMainThread)
21
0
  {
22
0
  }
23
24
  void SetSessionId(uint32_t aPromiseId,
25
                    const nsCString& aSessionId) override;
26
27
  void ResolveLoadSessionPromise(uint32_t aPromiseId,
28
                                 bool aSuccessful) override;
29
30
  void ResolvePromiseWithKeyStatus(uint32_t aPromiseId,
31
                                   uint32_t aKeyStatus) override;
32
33
  void ResolvePromise(uint32_t aPromiseId) override;
34
35
  void RejectPromise(uint32_t aPromiseId,
36
                     nsresult aException,
37
                     const nsCString& aErrorMessage) override;
38
39
  void SessionMessage(const nsACString& aSessionId,
40
                      uint32_t aMessageType,
41
                      nsTArray<uint8_t>&& aMessage) override;
42
43
  void SessionKeysChange(const nsCString& aSessionId,
44
                         nsTArray<mozilla::gmp::CDMKeyInformation>&& aKeysInfo) override;
45
46
  void ExpirationChange(const nsCString& aSessionId,
47
                        double aSecondsSinceEpoch) override;
48
49
  void SessionClosed(const nsCString& aSessionId) override;
50
51
  void Terminated() override;
52
53
  void Shutdown() override;
54
55
private:
56
  template<class Func, class... Args>
57
  void DispatchToMainThread(const char* const aLabel,
58
                            Func aFunc,
59
                            Args&&... aArgs);
60
  // Warning: Weak ref.
61
  ChromiumCDMProxy* mProxy;
62
  const nsCOMPtr<nsIEventTarget> mMainThread;
63
64
};
65
66
} //namespace mozilla
67
#endif