Skip to content

Commit 4381043

Browse files
committed
Add security and privacy considerations for OCE
1 parent 5551e89 commit 4381043

File tree

1 file changed

+50
-1
lines changed

1 file changed

+50
-1
lines changed

index.html

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@ <h3>Sampling and Reporting Rate</h3>
307307
factors=] obtained from the underlying hardware and operating system or,
308308
in the case of a [=virtual pressure source=], a {{PressureState}}
309309
<span class="experimental">
310-
and a {{double?}} representing the {{PressureRecord/ownContributionEstimate}}
310+
and a {{double?}} representing the [=own contribution estimate=]
311311
</span>.
312312
</li>
313313
<li>
@@ -1771,6 +1771,50 @@ <h3>Handling changes to worker status</h3>
17711771
<h2>
17721772
Security and privacy considerations
17731773
</h2>
1774+
<section>
1775+
<h3>Own contribution estimate</h3>
1776+
<p>
1777+
The <dfn>own contribution estimate</dfn> provides a percentage-based indication of how much the current
1778+
site contributes to the global system pressure. This insight helps developers determine whether
1779+
a critical or serious pressure state originates primarily from their own application or from
1780+
external sources.
1781+
</p>
1782+
<p>
1783+
<em>If the majority of the pressure comes from external sources</em>, the site may choose to simplify
1784+
its features to maintain a smooth experience. It may also prompt users to close other
1785+
applications to reduce overall system pressure.
1786+
</p>
1787+
<p>
1788+
<em>If the pressure is largely self-inflicted</em>, it indicates that the site's code paths may
1789+
be too resource-intensive for the device. In such cases, developers might experiment with
1790+
alternative code paths—for example, offloading calculations from the CPU (via Wasm or
1791+
JavaScript) to WebGPU—in an effort to enhance performance.
1792+
</p>
1793+
<p>
1794+
We determined that the cost of exposing this additional estimate is negligible. In scenarios
1795+
where the site contributes most of the pressure (e.g., under a critical pressure state),
1796+
the key takeaway is that the rest of the system is stable—so there is limited new insight to extract.
1797+
Conversely, if the site's contribution is minimal, the site gains little beyond what the global
1798+
pressure state already reveals.
1799+
</p>
1800+
<p>
1801+
That said, since global pressure states are abstracted into four broad categories, having visibility
1802+
into one's own contribution offers a more granular view of system behavior. This can be especially
1803+
valuable. For example, developers might:
1804+
<ul>
1805+
<li>
1806+
Prompt users to close background applications when external pressure is high.
1807+
</li>
1808+
<li>
1809+
Identify when it's time to optimize internal processes if their own contribution is the bottleneck.
1810+
</li>
1811+
<li>
1812+
Do A/B testing in live deployments with different code paths to determine what results in the
1813+
lowest pressure on device types.
1814+
</li>
1815+
</ul>
1816+
</p>
1817+
</section>
17741818

17751819
<section>
17761820
<h3>Types of privacy and security threats</h3>
@@ -1886,6 +1930,11 @@ <h4>Rate obfuscation</h4>
18861930
observe any abnormal activity such as a high number of pressure state changes
18871931
spanning across multiple states, and set this flag similarly.
18881932
</p>
1933+
<p>
1934+
The platforms exposing the [=own contribution estimate=] will fire events more frequently
1935+
as the estimate may change independent of the global pressure state, but as these are not
1936+
separate events they are also subject to the rate obfuscation.
1937+
</p>
18891938
<p>
18901939
If this flag is set, the implementation is recommended to give the pressure observer
18911940
a penalty during which it will not be able to inform scripts of changes in its

0 commit comments

Comments
 (0)