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

Intentional manipulation of battery status #173

Closed
samuelweiler opened this issue Mar 19, 2021 · 10 comments
Closed

Intentional manipulation of battery status #173

samuelweiler opened this issue Mar 19, 2021 · 10 comments
Labels
privacy-tracker Group bringing to attention of Privacy, or tracked by the Privacy Group but not needing response. security-tracker Group bringing to attention of security, or tracked by the security Group but not needing response.

Comments

@samuelweiler
Copy link
Member

Breaking this item out from #170. (@NalaGinrut, for tracking)

  1. About the powerEfficient field of MediaCapabilitiesInfo

A MediaCapabilitiesInfo has associated supported, smooth, powerEfficient fields which are booleans.
Authors can use powerEfficient in concordance with the Battery Status API [battery-status] in order to determine whether the media they would like to play is appropriate for the user configuration. It is worth noting that even when a device is not power constrained, high power usage has side effects such as increasing the temperature or the fans noise.

...

Question 2: Is it possible to increase the temperature intendedly with powerEfficient field?

@samuelweiler samuelweiler added privacy-tracker Group bringing to attention of Privacy, or tracked by the Privacy Group but not needing response. security-needs-resolution Issue the security Group has raised and looks for a response on. labels Mar 19, 2021
@chcunningham
Copy link
Contributor

Is it possible to increase the temperature intendedly with powerEfficient field?

If used the powerEfficient field to determine which configurations were not power efficient, you could theoretically then play back videos meeting those criteria and potentially increase the machine temperature.

But, this is definitely not the most effective way to increase the machine temperature. For instance, you could do things like mine bitcoin or other computation intensive tasks that are not related to this API.

@pes10k pes10k added security-needs-resolution Issue the security Group has raised and looks for a response on. and removed security-needs-resolution Issue the security Group has raised and looks for a response on. labels Mar 26, 2021
@samuelweiler
Copy link
Member Author

@NalaGinrut, does this answer satisfy you?

Downgrading this to -tracker, pending any further discussion.

@samuelweiler samuelweiler added security-tracker Group bringing to attention of security, or tracked by the security Group but not needing response. and removed security-needs-resolution Issue the security Group has raised and looks for a response on. labels Mar 29, 2021
@NalaGinrut
Copy link
Member

NalaGinrut commented Mar 29, 2021

@chcunningham I still have concerns about this field.

I may want to keep my machine performance in a fair low efficiency. For example, I want to save the power of my laptop, or I'm an environmentalist so that I prefer to keep my device in a less carbon fingerprint, if the playback is good enough for me, I may not think a higher performance playback is better for me. When the power management of the OS was set to a demand policy, it may increase the power usage if the application requires it.

I'm a bit concern if the user has to passively accept this field to increase the power usage just because the application developers thought it's good. Is there any way to ignore this field or opt-out if users don't want it?

cc @pes10k @samuelweiler

@NalaGinrut
Copy link
Member

This may sound not a privacy issue. But I think privacy is not only about what could be leaked, but also about that people can refuse to accept what they don't want.

@chcunningham
Copy link
Contributor

I'm a bit concern if the user has to passively accept this field to increase the power usage just because the application developers thought it's good.

Ah, I think I understand the concern. Let me give a little more background. For this API 'powerEfficient' is not like the 'eco' mode of modern cars, where you are giving up performance to expend less energy. Instead, powerEfficient generally reflects that the machine has specialized gpu/cpu support for accelerating encoding or decoding a particular type of video. This means that, unlike the car example, for video powerEfficiency and performance are generally aligned. Sites will not choose to avoid powerEfficient=true out of concern for decreased performance.

@chcunningham
Copy link
Contributor

Instead, powerEfficient generally reflects that the machine has specialized gpu/cpu support for accelerating encoding or decoding a particular type of video.

Two things expand on this:

  • such GPU/CPU support is very common. This alone will not be uniquely identifying
  • we may also return powerEfficient = true in some cases where GPU/CPU support is not available, but the configuration is known to still draw a very small amount of power (e.g. lower resolutions of video)

@NalaGinrut
Copy link
Member

NalaGinrut commented Apr 1, 2021

Sites will not choose to avoid powerEfficient=true out of concern for decreased performance.

I understand the site developer will be inclined to set it to true. But is there a way for users to reject/ignore it if they want?

we may also return powerEfficient = true in some cases where GPU/CPU support is not available

I think you've explained this point in another issue, although I'm still confused about the formal expected activity of powerEfficient since it seems unnecessary to be real efficient even it's set to true.

Anyway, now that it's an option rather than a forced activity to configure powerEfficient, I think users may have the right to reject/ignore it. However, the current situation implies that only the site developer can decide whether to enable it.

@chcunningham
Copy link
Contributor

I understand the site developer will be inclined to set it to true. But is there a way for users to reject/ignore it if they want?

A site would not "set it to true". This boolean is set by the user agent. A site may read it and prefer configurations where the value was true.

User agents could implement MediaCapabilities (and <video> generally) in a way that only supports codecs that are (or are not) power efficient. I'm not sure if this is what you have in mind? I wouldn't recommend doing this, as it will constrain what types of videos a site may send you (generally reducing the sites ability to optimize for whatever experience metrics they prioritize).

@NalaGinrut
Copy link
Member

OK, I see, this option is not forced from the perspective of the standard. The site maker may provide an option for users if they really care (although we may think no one care). So it's not the issue of the spec or browser developers.
This one is clear and done, thanks!
@pes10k

@chcunningham
Copy link
Contributor

Awesome, thanks! Feel free to re-open if new questions arise.

@chrisn chrisn mentioned this issue Aug 27, 2024
5 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
privacy-tracker Group bringing to attention of Privacy, or tracked by the Privacy Group but not needing response. security-tracker Group bringing to attention of security, or tracked by the security Group but not needing response.
Projects
None yet
Development

No branches or pull requests

4 participants