1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
/* 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/. */
#ifndef _WEBRTC_GLOBAL_INFORMATION_H_
#define _WEBRTC_GLOBAL_INFORMATION_H_
#include "mozilla/Attributes.h"
#include "mozilla/dom/WebrtcGlobalInformationBinding.h"
#include "mozilla/dom/BindingDeclarations.h" // for Optional
#include "nsDOMNavigationTiming.h"
#include "WebrtcGlobalStatsHistory.h"
namespace mozilla {
class PeerConnectionImpl;
class ErrorResult;
namespace dom {
class GlobalObject;
class WebrtcGlobalStatisticsCallback;
class WebrtcGlobalStatisticsHistoryPcIdsCallback;
class WebrtcGlobalLoggingCallback;
struct RTCStatsReportInternal;
class WebrtcGlobalInformation {
public:
MOZ_CAN_RUN_SCRIPT
static void GetAllStats(const GlobalObject& aGlobal,
WebrtcGlobalStatisticsCallback& aStatsCallback,
const Optional<nsAString>& aPcIdFilter,
ErrorResult& aRv);
MOZ_CAN_RUN_SCRIPT
static void GetStatsHistoryPcIds(
const GlobalObject& aGlobal,
WebrtcGlobalStatisticsHistoryPcIdsCallback& aPcIdsCallback,
ErrorResult& aRv);
MOZ_CAN_RUN_SCRIPT
static void GetStatsHistorySince(
const GlobalObject& aGlobal,
WebrtcGlobalStatisticsHistoryCallback& aStatsCallback,
const nsAString& aPcIdFilter, const Optional<DOMHighResTimeStamp>& aAfter,
const Optional<DOMHighResTimeStamp>& aSdpAfter, ErrorResult& aRv);
static void GetMediaContext(const GlobalObject& aGlobal,
WebrtcGlobalMediaContext& aContext);
static void GatherHistory();
static void ClearAllStats(const GlobalObject& aGlobal);
MOZ_CAN_RUN_SCRIPT
static void GetLogging(const GlobalObject& aGlobal, const nsAString& aPattern,
WebrtcGlobalLoggingCallback& aLoggingCallback,
ErrorResult& aRv);
static void ClearLogging(const GlobalObject& aGlobal);
static void SetAecDebug(const GlobalObject& aGlobal, bool aEnable);
static bool AecDebug(const GlobalObject& aGlobal);
static void GetAecDebugLogDir(const GlobalObject& aGlobal, nsAString& aDir);
static void StashStats(const RTCStatsReportInternal& aReport);
WebrtcGlobalInformation() = delete;
WebrtcGlobalInformation(const WebrtcGlobalInformation& aOrig) = delete;
WebrtcGlobalInformation& operator=(const WebrtcGlobalInformation& aRhs) =
delete;
struct PcTrackingUpdate {
static PcTrackingUpdate Add(const nsString& aPcid,
const bool& aLongTermStatsDisabled) {
return PcTrackingUpdate{aPcid, Some(aLongTermStatsDisabled)};
}
static PcTrackingUpdate Remove(const nsString& aPcid) {
return PcTrackingUpdate{aPcid, Nothing()};
}
nsString mPcid;
Maybe<bool> mLongTermStatsDisabled;
enum class Type {
Add,
Remove,
};
Type Type() const {
return mLongTermStatsDisabled ? Type::Add : Type::Remove;
}
};
static void PeerConnectionTracking(PcTrackingUpdate& aUpdate) {
AdjustTimerReferences(std::move(aUpdate));
}
private:
static void AdjustTimerReferences(PcTrackingUpdate&& aUpdate);
};
} // namespace dom
} // namespace mozilla
#endif // _WEBRTC_GLOBAL_INFORMATION_H_
|