Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(600)

Side by Side Diff: content/renderer/media/webrtc/rtc_stats.h

Issue 2490183002: Filter webrtc::RTCStats by whitelist in surfacing them to Blink. (Closed)
Patch Set: Make win compile: BLINK_PLATFORM_EXPORT and cpp file (also rebase /w master) Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2016 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CONTENT_RENDERER_MEDIA_WEBRTC_RTC_STATS_H_ 5 #ifndef CONTENT_RENDERER_MEDIA_WEBRTC_RTC_STATS_H_
6 #define CONTENT_RENDERER_MEDIA_WEBRTC_RTC_STATS_H_ 6 #define CONTENT_RENDERER_MEDIA_WEBRTC_RTC_STATS_H_
7 7
8 #include "base/memory/ref_counted.h" 8 #include "base/memory/ref_counted.h"
9 #include "content/common/content_export.h"
9 #include "third_party/WebKit/public/platform/WebRTCStats.h" 10 #include "third_party/WebKit/public/platform/WebRTCStats.h"
10 #include "third_party/webrtc/api/stats/rtcstats.h" 11 #include "third_party/webrtc/api/stats/rtcstats.h"
11 #include "third_party/webrtc/api/stats/rtcstatsreport.h" 12 #include "third_party/webrtc/api/stats/rtcstatsreport.h"
12 13
13 namespace content { 14 namespace content {
14 15
15 class RTCStatsReport : public blink::WebRTCStatsReport { 16 class CONTENT_EXPORT RTCStatsReport : public blink::WebRTCStatsReport {
16 public: 17 public:
17 RTCStatsReport( 18 RTCStatsReport(
18 const scoped_refptr<const webrtc::RTCStatsReport>& stats_report); 19 const scoped_refptr<const webrtc::RTCStatsReport>& stats_report);
19 ~RTCStatsReport() override; 20 ~RTCStatsReport() override;
20 std::unique_ptr<blink::WebRTCStatsReport> copyHandle() const override; 21 std::unique_ptr<blink::WebRTCStatsReport> copyHandle() const override;
21 22
22 std::unique_ptr<blink::WebRTCStats> getStats( 23 std::unique_ptr<blink::WebRTCStats> getStats(
23 blink::WebString id) const override; 24 blink::WebString id) const override;
24 std::unique_ptr<blink::WebRTCStats> next() override; 25 std::unique_ptr<blink::WebRTCStats> next() override;
25 26
26 private: 27 private:
27 const scoped_refptr<const webrtc::RTCStatsReport> stats_report_; 28 const scoped_refptr<const webrtc::RTCStatsReport> stats_report_;
28 webrtc::RTCStatsReport::ConstIterator it_; 29 webrtc::RTCStatsReport::ConstIterator it_;
29 const webrtc::RTCStatsReport::ConstIterator end_; 30 const webrtc::RTCStatsReport::ConstIterator end_;
30 }; 31 };
31 32
32 class RTCStats : public blink::WebRTCStats { 33 class CONTENT_EXPORT RTCStats : public blink::WebRTCStats {
33 public: 34 public:
34 RTCStats(const scoped_refptr<const webrtc::RTCStatsReport>& stats_owner, 35 RTCStats(const scoped_refptr<const webrtc::RTCStatsReport>& stats_owner,
35 const webrtc::RTCStats* stats); 36 const webrtc::RTCStats* stats);
36 ~RTCStats() override; 37 ~RTCStats() override;
37 38
38 blink::WebString id() const override; 39 blink::WebString id() const override;
39 blink::WebString type() const override; 40 blink::WebString type() const override;
40 double timestamp() const override; 41 double timestamp() const override;
41 42
42 size_t membersCount() const override; 43 size_t membersCount() const override;
43 std::unique_ptr<blink::WebRTCStatsMember> getMember(size_t i) const override; 44 std::unique_ptr<blink::WebRTCStatsMember> getMember(size_t i) const override;
44 45
45 private: 46 private:
46 // Reference to keep the report that owns |stats_| alive. 47 // Reference to keep the report that owns |stats_| alive.
47 const scoped_refptr<const webrtc::RTCStatsReport> stats_owner_; 48 const scoped_refptr<const webrtc::RTCStatsReport> stats_owner_;
48 // Pointer to a stats object that is owned by |stats_owner_|. 49 // Pointer to a stats object that is owned by |stats_owner_|.
49 const webrtc::RTCStats* const stats_; 50 const webrtc::RTCStats* const stats_;
50 // Members of the |stats_| object, equivalent to |stats_->Members()|. 51 // Members of the |stats_| object, equivalent to |stats_->Members()|.
51 const std::vector<const webrtc::RTCStatsMemberInterface*> stats_members_; 52 const std::vector<const webrtc::RTCStatsMemberInterface*> stats_members_;
52 }; 53 };
53 54
54 class RTCStatsMember : public blink::WebRTCStatsMember { 55 class CONTENT_EXPORT RTCStatsMember : public blink::WebRTCStatsMember {
55 public: 56 public:
56 RTCStatsMember(const scoped_refptr<const webrtc::RTCStatsReport>& stats_owner, 57 RTCStatsMember(const scoped_refptr<const webrtc::RTCStatsReport>& stats_owner,
57 const webrtc::RTCStatsMemberInterface* member); 58 const webrtc::RTCStatsMemberInterface* member);
58 ~RTCStatsMember() override; 59 ~RTCStatsMember() override;
59 60
60 blink::WebString name() const override; 61 blink::WebString name() const override;
61 blink::WebRTCStatsMemberType type() const override; 62 blink::WebRTCStatsMemberType type() const override;
62 bool isDefined() const override; 63 bool isDefined() const override;
63 64
64 bool valueBool() const override; 65 bool valueBool() const override;
(...skipping 11 matching lines...) Expand all
76 blink::WebVector<double> valueSequenceDouble() const override; 77 blink::WebVector<double> valueSequenceDouble() const override;
77 blink::WebVector<blink::WebString> valueSequenceString() const override; 78 blink::WebVector<blink::WebString> valueSequenceString() const override;
78 79
79 private: 80 private:
80 // Reference to keep the report that owns |member_|'s stats object alive. 81 // Reference to keep the report that owns |member_|'s stats object alive.
81 const scoped_refptr<const webrtc::RTCStatsReport> stats_owner_; 82 const scoped_refptr<const webrtc::RTCStatsReport> stats_owner_;
82 // Pointer to member of a stats object that is owned by |stats_owner_|. 83 // Pointer to member of a stats object that is owned by |stats_owner_|.
83 const webrtc::RTCStatsMemberInterface* const member_; 84 const webrtc::RTCStatsMemberInterface* const member_;
84 }; 85 };
85 86
87 CONTENT_EXPORT void WhitelistStatsForTesting(const char* type);
88
86 } // namespace content 89 } // namespace content
87 90
88 #endif // CONTENT_RENDERER_MEDIA_WEBRTC_RTC_STATS_H_ 91 #endif // CONTENT_RENDERER_MEDIA_WEBRTC_RTC_STATS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698