Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add powerEfficient[En/De]coder (#666) and fingerprint mitigations (#675). #670

Merged
merged 7 commits into from
Sep 27, 2022

Conversation

henbos
Copy link
Collaborator

@henbos henbos commented Sep 7, 2022

Fixes #666, #675


Preview | Diff

@henbos
Copy link
Collaborator Author

henbos commented Sep 7, 2022

@vr000m PTAL, @eshrubs is ready to implement this right now so we can add it to webrtc-stats rather than provisional

@henbos henbos changed the title Adds powerEfficientDecoder/powerEfficientEncoder. Add powerEfficient[En/De]coder (#666) and fingerprint mitigations (#675). Sep 13, 2022
@henbos
Copy link
Collaborator Author

henbos commented Sep 13, 2022

Please take another look @youennf, @vr000m and @alvestrand. I've added the sentence from #675 to both powerEfficientEncoder and encoderImplementation (and dec).

@henbos
Copy link
Collaborator Author

henbos commented Sep 13, 2022

FYI @eshrubs

webrtc-stats.html Outdated Show resolved Hide resolved
Copy link
Contributor

@vr000m vr000m left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, modulo the language around permissions

@henbos
Copy link
Collaborator Author

henbos commented Sep 20, 2022

@youennf Are you happy with the current fingerprinting language?

@youennf
Copy link
Contributor

youennf commented Sep 21, 2022

Please take another look @youennf

The fingerprinting mitigation sounds like an improvement to me.
Since this includes a tentative solution to #550, it would be good to have @pes10k input on this.
I would tend to split the PR in two (one for #550, and one for #666), but this is small enough text that we might be able to tackle both in the same PR.

@henbos
Copy link
Collaborator Author

henbos commented Sep 22, 2022

@pes10k what are your thoughts on this PR? By not exposing unless deep user interaction such as the context capturing (requires user to approve a capture prompt) this limits the ability for a web app to use this for fingerprinting to a context where more sensitive information is already exposed (VC use case).

@henbos
Copy link
Collaborator Author

henbos commented Sep 26, 2022

Please take a look at the this updated PR with a well defined algorithm for determining whether or not to expose the HW information. @pes10k @youennf

@pes10k
Copy link

pes10k commented Sep 26, 2022

@henbos thank you for this. Just to check my understanding, this would effectively only reveal these endpoints to the page if the user had already given the page permission to access at least one protected device, is that correct?

If so, i think thats a fine mitigation and works well enough to protect users from most realistic passive fingerprinters.

If i've misunderstood though, could you please kindly correct me?

@henbos
Copy link
Collaborator Author

henbos commented Sep 27, 2022

Just to check my understanding, this would effectively only reveal these endpoints to the page if the user had already given the page permission to access at least one protected device, is that correct?

Correct, you would also need to currently be capturing (e.g. microphone or camera). For a page to be granted permissions for capture, the user would need to have accepted a browser permissions prompt.

webrtc-stats.html Outdated Show resolved Hide resolved
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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we have examples of such information? Is it to cover the case of small resolutions for instance where some OSes may decide to go with software implementations

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It gives implementations some wiggle-room, like if a HW implementation isn't performant we could still report false without violating the spec. I don't know if this is a real problem in practise though.

I also think that it is OK for an implementation to say that SW is power efficient if the resolution is so small that SW would be more performant than HW, but I don't think finding that cutoff point is required of the implementation.

@henbos henbos merged commit 93df8b6 into w3c:main Sep 27, 2022
@pes10k
Copy link

pes10k commented Sep 27, 2022

Thanks @henbos for the explanation, i think this is a great change

@henbos
Copy link
Collaborator Author

henbos commented Sep 27, 2022

👍

Copy link
Contributor

@alvestrand alvestrand left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am happy with this doc. Suggesting a refinement.

webrtc-stats.html Show resolved Hide resolved
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

powerEfficientEncoder/powerEfficientDecoder
5 participants