Skip to content

Commit

Permalink
Add powerEfficient[En/De]coder (#666) and fingerprint mitigations (#675
Browse files Browse the repository at this point in the history
…). (#670)

* Fixes #666

* Add fingerprint warning

* Fix #675

* Add 'check if hardware exposure is allowed' algorithm

* Remove double-the
  • Loading branch information
henbos committed Sep 27, 2022
1 parent 48530b8 commit 93df8b6
Showing 1 changed file with 73 additions and 8 deletions.
81 changes: 73 additions & 8 deletions webrtc-stats.html
Expand Up @@ -356,6 +356,39 @@ <h3>
</p>
</section>
</section>
<section>
<h2>
Privacy considerations
</h2>
<p class="fingerprint">
The WebRTC's Statistics API exposes information about the system,
including hardware capabilities and network characteristics. To limit
the finger printing surface imposed by this API, some metrics are only
exposed if allowed by the algorithms in this section.
</p>
<section>
<h3>
Limiting exposure of hardware capabilities
</h3>
<p>
To <dfn data-lt="exposing hardware is allowed">check if hardware
exposure is allowed</dfn>, run the following steps:
<ol>
<li>
<p>
If the <a href="https://w3c.github.io/mediacapture-main/#context-capturing-state">
context capturing state</a> is true, return true.
</p>
</li>
<li>
<p>
Return false.
</p>
</li>
</ol>
</p>
</section>
</section>
<section id="rtctatstype-*">
<h2>
{{RTCStatsType}}
Expand Down Expand Up @@ -961,6 +994,7 @@ <h3>
unsigned long framesReceived;
DOMString decoderImplementation;
DOMString playoutId;
boolean powerEfficientDecoder;
};</pre>
<section>
<h2>
Expand Down Expand Up @@ -1509,13 +1543,12 @@ <h2>
"idlMemberType">DOMString</span>
</dt>
<dd>
<p>
Identifies the decoder implementation used. This is useful for diagnosing
interoperability issues.
</p>
<p class="fingerprint">
If too much information is given here, it increases the fingerprint surface.
Since it is only given for active tracks, the incremental exposure is small.
Only defined when [= exposing hardware is allowed =].
</p>
<p>
Identifies the decoder implementation used. This is useful for
diagnosing interoperability issues.
</p>
</dd>
<dt>
Expand All @@ -1528,6 +1561,22 @@ <h2>
corresponding {{RTCAudioPlayoutStats}}.
</p>
</dd>
<dt>
<dfn>powerEfficientDecoder</dfn> of type <span class=
"idlMemberType">boolean</span>
</dt>
<dd>
<p class="fingerprint">
Only defined when [= exposing hardware is allowed =].
</p>
<p>
Whether the decoder currently used is considered power
efficient by the user agent. This SHOULD reflect if the
configuration results in hardware acceleration, but the user
agent MAY take other information into account when deciding if
the configuration is considered power efficient.
</p>
</dd>
</dl>
</section>
</div>
Expand Down Expand Up @@ -1692,6 +1741,7 @@ <h3>
unsigned long firCount;
unsigned long pliCount;
DOMString encoderImplementation;
boolean powerEfficientEncoder;
boolean active;
};</pre>
<section>
Expand Down Expand Up @@ -2030,13 +2080,28 @@ <h2>
"idlMemberType">DOMString</span>
</dt>
<dd>
<p class="fingerprint">
Only defined when [= exposing hardware is allowed =].
</p>
<p>
Identifies the encoder implementation used. This is useful for diagnosing
interoperability issues.
</p>
</dd>
<dt>
<dfn>powerEfficientEncoder</dfn> of type <span class=
"idlMemberType">boolean</span>
</dt>
<dd>
<p class="fingerprint">
If too much information is given here, it increases the fingerprint surface.
Since it is only given for active tracks, the incremental exposure is small.
Only defined when [= exposing hardware is allowed =].
</p>
<p>
Whether the encoder currently used is considered power
efficient by the user agent. This SHOULD reflect if the
configuration results in hardware acceleration, but the user
agent MAY take other information into account when deciding if
the configuration is considered power efficient.
</p>
</dd>
<dt>
Expand Down

0 comments on commit 93df8b6

Please sign in to comment.