<div dir="ltr"><div dir="ltr"><div dir="ltr">On Wed, May 5, 2021 at 11:37 AM Olivier Yiptong via webkit-dev <<a href="mailto:webkit-dev@lists.webkit.org">webkit-dev@lists.webkit.org</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><br></div><div>We propose a new API that conveys the utilization of CPU resources on the user's device. This API targets applications that can trade off CPU resources for an improved user experience. For example, many applications can render video effects with varying degrees of sophistication. These applications aim to provide the best user experience, while avoiding driving the user's device in a high CPU utilization regime.<br><br>High CPU utilization is undesirable because it strongly degrades the user experience. Many smartphones, tablets and laptops become uncomfortably hot to the touch. The fans in laptops and desktops become so loud that they disrupt conversations or the users’ ability to focus. In many cases, a device under high CPU utilization appears to be unresponsive, as the operating system may fail to schedule the threads advancing the task that the user is waiting for.<br></div><div><br></div><div>Thanks!</div><div><br></div><div><ul style="box-sizing:border-box;padding-left:2em;margin-top:0px;margin-bottom:16px;color:rgb(36,41,46)"><li style="margin-left:0px;box-sizing:border-box"><font face="arial, sans-serif">Specification Title: Compute Pressure API</font></li><li style="margin-left:0px;box-sizing:border-box;margin-top:0.25em"><font face="arial, sans-serif">Specification URL: <a href="https://oyiptong.github.io/compute-pressure/" target="_blank">https://oyiptong.github.io/compute-pressure/</a></font></li><li style="margin-left:0px;box-sizing:border-box;margin-top:0.25em"><font face="arial, sans-serif">Explainger: <a href="https://github.com/oyiptong/compute-pressure/blob/main/README.md" target="_blank">https://github.com/oyiptong/compute-pressure/blob/main/README.md</a><br></font></li><li style="margin-left:0px;box-sizing:border-box;margin-top:0.25em"><font face="arial, sans-serif">ChromeStatus.com entry: <a href="https://chromestatus.com/features/5597608644968448" target="_blank">https://chromestatus.com/features/5597608644968448</a></font></li><li style="margin-left:0px;box-sizing:border-box;margin-top:0.25em"><font face="arial, sans-serif">TAG design review request: <a href="https://github.com/w3ctag/design-reviews/issues/621" target="_blank">https://github.com/w3ctag/design-reviews/issues/621</a><br></font></li><li style="margin-left:0px;box-sizing:border-box;margin-top:0.25em"><font face="arial, sans-serif">Mozilla Request for Position: <a href="https://github.com/mozilla/standards-positions/issues/521" target="_blank">https://github.com/mozilla/standards-positions/issues/521</a></font></li></ul></div></div></blockquote><div>We do not support this proposal for the reasons including but not limited to: </div><div><ol><li>CPU utilization isn't something which can be easily computed or reasoned on asymmetric multi-core CPUs, not to mention the dynamic adjustment of CPU frequency further complicates the matter.</li><li>Whether the system itself is under a heavy CPU load or not should not have any bearing on how much CPU time a website is entitled to use because the background CPU utilization may spontaneously change, and the reason of a high or a low CPU utilization may depend on what the website is doing; e.g. a daemon which wakes up in a response to a network request or some file access.<br></li><li>The proposal as it currently stands seems to allow a side channel communication between different top-level origins (i.e. bypasses storage partitioning). A possible attack may involve busy looping or doing some heavy computation in one origin and then observing that CPU utilization goes up in another. We've reported an attack of a similar nature in <a href="https://bugs.chromium.org/p/chromium/issues/detail?id=1126324">https://bugs.chromium.org/p/chromium/issues/detail?id=1126324</a>.</li></ol></div><div>- R. Niwa<br></div><div><br></div></div></div></div>