From 93df8b6165b611a3c82986e6dd1fd4c32f3d1728 Mon Sep 17 00:00:00 2001 From: henbos Date: Tue, 27 Sep 2022 13:06:46 +0200 Subject: [PATCH] Add powerEfficient[En/De]coder (#666) and fingerprint mitigations (#675). (#670) * Fixes #666 * Add fingerprint warning * Fix #675 * Add 'check if hardware exposure is allowed' algorithm * Remove double-the --- webrtc-stats.html | 81 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 73 insertions(+), 8 deletions(-) diff --git a/webrtc-stats.html b/webrtc-stats.html index d0eb564..bb29381 100644 --- a/webrtc-stats.html +++ b/webrtc-stats.html @@ -356,6 +356,39 @@

+
+

+ Privacy considerations +

+

+ 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. +

+
+

+ Limiting exposure of hardware capabilities +

+

+ To check if hardware + exposure is allowed, run the following steps: +

    +
  1. +

    + If the + context capturing state is true, return true. +

    +
  2. +
  3. +

    + Return false. +

    +
  4. +
+

+
+

{{RTCStatsType}} @@ -961,6 +994,7 @@

unsigned long framesReceived; DOMString decoderImplementation; DOMString playoutId; + boolean powerEfficientDecoder; };

@@ -1509,13 +1543,12 @@

"idlMemberType">DOMString
-

- Identifies the decoder implementation used. This is useful for diagnosing - interoperability issues. -

- 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 =]. +

+

+ Identifies the decoder implementation used. This is useful for + diagnosing interoperability issues.

@@ -1528,6 +1561,22 @@

corresponding {{RTCAudioPlayoutStats}}.

+
+ powerEfficientDecoder of type boolean +
+
+

+ Only defined when [= exposing hardware is allowed =]. +

+

+ 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. +

+

@@ -1692,6 +1741,7 @@

unsigned long firCount; unsigned long pliCount; DOMString encoderImplementation; + boolean powerEfficientEncoder; boolean active; };
@@ -2030,13 +2080,28 @@

"idlMemberType">DOMString
+

+ Only defined when [= exposing hardware is allowed =]. +

Identifies the encoder implementation used. This is useful for diagnosing interoperability issues.

+
+
+ powerEfficientEncoder of type boolean +
+

- 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 =]. +

+

+ 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.