diff --git a/api.bs b/api.bs index dd81075..167e40e 100644 --- a/api.bs +++ b/api.bs @@ -1306,34 +1306,25 @@ temporarily makes the API available. A number of differences distinguish this design from [=transient activation-consuming APIs=]: -* Any [=activation triggering input event|user activation=] - makes the Attribution API available for a short period. +* The API becomes available for a short period when either: -* Additionally, when [=navigate|navigation=] is initiated - by a user - (that is, where the [=user navigation involvement=] is "browser UI"), - the Attribution API is available for a short period. + * A [=activation triggering input event|user activation event=] is received + (that is, a click, keypress, or similar action). -* The first attempt to access the API by invoking - either saveImpression() - or measureConversion() - within an [=implementation-defined=] duration of the last activation, - enables the API for that site. + * [=navigate|Navigation=] is initiated by a user + (that is, where the [=user navigation involvement=] is "browser UI"). -* Each activation makes the API available to at most one site. - Similar to [=transient activation=], - where [=transient activation-consuming API|consuming the activation=] - causes other similar APIs to be unavailable - until another activation occurs, - using the API on one site makes the API unavailable to other sites. - -* When the API is successfully used, - the API is enabled for use by all [=descendent navigables=] +* Invoking either saveImpression() + or measureConversion() + while the API is available + enables the API for that [=site=]. + All [=descendent navigables=] of the [=top-level traversable=]'s [=active document=] (that is, all frames on the current page) - until the next cross-site navigation. + can access the API without further availability checks. -* Any [=navigate|navigation=] of the [=top-level traversable=] +* Each activation makes the API available to at most one site. + Any [=navigate|navigation=] of the [=top-level traversable=] to a different [=site=] disables the API. However, any [=activation triggering input event|activation=], which might include the action that initiated the navigation, @@ -1386,9 +1377,9 @@ do not cause the Attribution API to become inaccessible.

Implementations might choose to extend the time allowed -to account for the delays involved in page loading time. +to account for the delays involved in loading page content during navigation. A fixed value might not account for performance differences -in devices or in the network they use. +in devices or in the network. Implementations could extend the value of [=attribution activation duration=] based on an understanding of performance chararacteristics. Alternatively, an implementation might suspend any timer @@ -1452,6 +1443,8 @@ throwing a {{"NotAllowedError"}} {{DOMException}} on failure: is less than the [=current high resolution time=], throw a {{"NotAllowedError"}} {{DOMException}}. +1. Set [=attribution activation timestamp=] to the [=unix epoch=]. + 1. Set |top|'s [=attribution enabled flag=] to true.