@@ -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