You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
"title": "Dubbing and Audio description Profiles of TTML2",
4
+
"url": "https://www.w3.org/TR/dapt/"
5
+
},
6
+
"algorithms": [
7
+
{
8
+
"html": "In the absence of consensus to approve the expectation is\n that a discussion will happen, to include the\n change requester.\n The result of this discussion can be any one of:",
9
+
"rationale": "if",
10
+
"steps": [
11
+
{
12
+
"html": "the <a href=\"https://www.w3.org/TR/dapt/#dfn-change-request\" class=\"internalDFN\" data-link-type=\"dfn\" id=\"ref-for-dfn-change-request-5\">change request</a> is abandoned;"
13
+
},
14
+
{
15
+
"html": "the <a href=\"https://www.w3.org/TR/dapt/#dfn-change-request\" class=\"internalDFN\" data-link-type=\"dfn\" id=\"ref-for-dfn-change-request-6\">change request</a> is modified for another review;"
16
+
},
17
+
{
18
+
"html": "if the discussion resolves the objections,\n and a <abbr title=\"Timed Text Working Group\">TTWG</abbr> Chair declares consensus to approve,\n the <a href=\"https://www.w3.org/TR/dapt/#dfn-change-request\" class=\"internalDFN\" data-link-type=\"dfn\" id=\"ref-for-dfn-change-request-7\">change request</a> can be approved."
"html": "The arguments to <a class=\"idl-code\" data-link-type=\"method\" href=\"https://www.w3.org/TR/privacy-preserving-attribution/#dom-privateattribution-saveimpression\" id=\"ref-for-dom-privateattribution-saveimpression②\">saveImpression()</a> are as follows:",
9
+
"rationale": "collect",
10
+
"steps": [
11
+
{
12
+
"html": "<p>Collect the implicit API inputs:</p>",
13
+
"ignored": [
14
+
"The current timestamp The impression site domain The iframe site domain"
15
+
]
16
+
},
17
+
{
18
+
"html": "<p>Validate the page-supplied API inputs</p>"
19
+
},
20
+
{
21
+
"html": "<p>If the private attribution API is enabled, save the impression to the <a data-link-type=\"dfn\" href=\"https://www.w3.org/TR/privacy-preserving-attribution/#impression-store\" id=\"ref-for-impression-store①\">impression store</a>.</p>"
22
+
}
23
+
]
24
+
},
25
+
{
26
+
"html": "The arguments to <a class=\"idl-code\" data-link-type=\"method\" href=\"https://www.w3.org/TR/privacy-preserving-attribution/#dom-privateattribution-measureconversion\" id=\"ref-for-dom-privateattribution-measureconversion⑧\">measureConversion()</a> are as follows:",
27
+
"rationale": "collect",
28
+
"steps": [
29
+
{
30
+
"html": "<p>Collect the implicit API inputs</p>",
31
+
"ignored": [
32
+
"The current timestamp The conversion site domain The iframe site domain"
33
+
]
34
+
},
35
+
{
36
+
"html": "Validate the page-supplied API inputs",
37
+
"rationale": "if",
38
+
"steps": [
39
+
{
40
+
"html": "<p>If <a class=\"idl-code\" data-link-type=\"dict-member\" href=\"https://www.w3.org/TR/privacy-preserving-attribution/#dom-privateattributionconversionoptions-logic\" id=\"ref-for-dom-privateattributionconversionoptions-logic①\">logic</a> is specified, and the value is anything other than <a class=\"idl-code\" data-link-type=\"enum-value\" href=\"https://www.w3.org/TR/privacy-preserving-attribution/#dom-privateattributionlogic-last-touch\" id=\"ref-for-dom-privateattributionlogic-last-touch\">\"last-touch\"</a>,\nreturn an error.</p>"
41
+
}
42
+
]
43
+
},
44
+
{
45
+
"html": "<p>If the private attribution API is enabled,\ninvoke the routine to <a data-link-type=\"dfn\" href=\"https://www.w3.org/TR/privacy-preserving-attribution/#do-attribution-and-fill-a-histogram\" id=\"ref-for-do-attribution-and-fill-a-histogram\">do attribution and fill a histogram</a>.</p>"
"html": "To <dfn class=\"dfn-paneled has-dfn-panel\" data-dfn-type=\"dfn\" data-noexport=\"\" id=\"do-attribution-and-fill-a-histogram\" role=\"button\" aria-expanded=\"false\" tabindex=\"0\">do attribution and fill a histogram</dfn>, given <a class=\"idl-code\" data-link-type=\"dictionary\" href=\"https://www.w3.org/TR/privacy-preserving-attribution/#dictdef-privateattributionconversionoptions\" id=\"ref-for-dictdef-privateattributionconversionoptions②\"><var>options</var></a>:",
59
+
"rationale": "initialize",
60
+
"steps": [
61
+
{
62
+
"html": "<p>Initialize <var>matchedImpressions</var> to the empty <a data-link-type=\"dfn\" href=\"https://infra.spec.whatwg.org/#ordered-set\" id=\"ref-for-ordered-set\">set</a>.</p>"
63
+
},
64
+
{
65
+
"html": "<p>Let <var>now</var> be the current time.</p>"
66
+
},
67
+
{
68
+
"html": "For each <var>epoch</var> starting from the oldest epoch supported by the <a data-link-type=\"dfn\" href=\"https://infra.spec.whatwg.org/#user-agent\" id=\"ref-for-user-agent⑦\">user agent</a> to the current <a data-link-type=\"dfn\" href=\"https://www.w3.org/TR/privacy-preserving-attribution/#privacy-budget-epoch\" id=\"ref-for-privacy-budget-epoch\">privacy budget epoch</a>:",
69
+
"rationale": "let",
70
+
"steps": [
71
+
{
72
+
"html": "<p>Let <var>impressions</var> be the result of invoking <a data-link-type=\"dfn\" href=\"https://www.w3.org/TR/privacy-preserving-attribution/#common-matching-logic\" id=\"ref-for-common-matching-logic①\">common matching logic</a> with <var>options</var>, <var>epoch</var>, and <var>now</var>.</p>"
73
+
},
74
+
{
75
+
"html": "If <var>impressions</var> is not empty:",
76
+
"rationale": "let",
77
+
"steps": [
78
+
{
79
+
"html": "<p>Let <var>budgetOk</var> be the result of <a data-link-type=\"dfn\" href=\"https://www.w3.org/TR/privacy-preserving-attribution/#deduct-privacy-budget\" id=\"ref-for-deduct-privacy-budget①\">deduct privacy budget</a> with <var>epoch</var> and <var>options</var>.<code class=\"idl\"><a data-link-type=\"idl\" href=\"https://www.w3.org/TR/privacy-preserving-attribution/#dom-privateattributionconversionoptions-epsilon\" id=\"ref-for-dom-privateattributionconversionoptions-epsilon①\">epsilon</a></code>.</p>"
80
+
},
81
+
{
82
+
"html": "<p>If <var>budgetOk</var> is true, <a data-link-type=\"dfn\" href=\"https://infra.spec.whatwg.org/#set-extend\" id=\"ref-for-set-extend\">extend</a> <var>matchedImpressions</var> with <var>impressions</var>.</p>"
83
+
}
84
+
]
85
+
}
86
+
]
87
+
},
88
+
{
89
+
"html": "<p>If <var>matchedImpressions</var> is <a data-link-type=\"dfn\" href=\"https://infra.spec.whatwg.org/#list-empty\" id=\"ref-for-list-empty\">empty</a>, return the all-zero histogram containing <var>options</var>.<code class=\"idl\"><a data-link-type=\"idl\" href=\"https://www.w3.org/TR/privacy-preserving-attribution/#dom-privateattributionconversionoptions-histogramsize\" id=\"ref-for-dom-privateattributionconversionoptions-histogramsize①\">histogramSize</a></code> values.</p>"
90
+
},
91
+
{
92
+
"html": "Switch on <var>options</var>.<code class=\"idl\"><a data-link-type=\"idl\" href=\"https://www.w3.org/TR/privacy-preserving-attribution/#dom-privateattributionconversionoptions-logic\" id=\"ref-for-dom-privateattributionconversionoptions-logic③\">logic</a></code>:",
93
+
"rationale": ".switch",
94
+
"steps": [
95
+
{
96
+
"operation": "switch",
97
+
"steps": [
98
+
{
99
+
"case": "\"last-touch\"",
100
+
"html": "<p>Return the result of <a data-link-type=\"dfn\" href=\"https://www.w3.org/TR/privacy-preserving-attribution/#fill-a-histogram-with-last-touch-attribution\" id=\"ref-for-fill-a-histogram-with-last-touch-attribution\">fill a histogram with last-touch attribution</a> with <var>matchedImpressions</var>, <var>options</var>.<code class=\"idl\"><a data-link-type=\"idl\" href=\"https://www.w3.org/TR/privacy-preserving-attribution/#dom-privateattributionconversionoptions-histogramsize\" id=\"ref-for-dom-privateattributionconversionoptions-histogramsize②\">histogramSize</a></code>, and <var>options</var>.<code class=\"idl\"><a data-link-type=\"idl\" href=\"https://www.w3.org/TR/privacy-preserving-attribution/#dom-privateattributionconversionoptions-value\" id=\"ref-for-dom-privateattributionconversionoptions-value①\">value</a></code>.</p>"
101
+
}
102
+
]
103
+
}
104
+
]
105
+
}
106
+
]
107
+
},
108
+
{
109
+
"name": "fill a histogram with last-touch attribution",
"html": "To <dfn class=\"dfn-paneled has-dfn-panel\" data-dfn-type=\"dfn\" data-noexport=\"\" id=\"fill-a-histogram-with-last-touch-attribution\" role=\"button\" aria-expanded=\"false\" tabindex=\"0\">fill a histogram with last-touch attribution</dfn>, given a <a data-link-type=\"dfn\" href=\"https://infra.spec.whatwg.org/#ordered-set\" id=\"ref-for-ordered-set①\">set</a> of <a data-link-type=\"dfn\" href=\"https://www.w3.org/TR/privacy-preserving-attribution/#impression\" id=\"ref-for-impression②⓪\">impressions</a> <var>matchedImpressions</var>, a <var>histogramSize</var>, and a <var>value</var>:",
112
+
"rationale": "assert",
113
+
"steps": [
114
+
{
115
+
"html": "<p><a data-link-type=\"dfn\" href=\"https://infra.spec.whatwg.org/#assert\" id=\"ref-for-assert\">assert</a> <var>matchedImpressions</var> is not <a data-link-type=\"dfn\" href=\"https://infra.spec.whatwg.org/#list-empty\" id=\"ref-for-list-empty①\">empty</a>.</p>"
116
+
},
117
+
{
118
+
"html": "<p>Set <var>impression</var> to the value in <var>matchedImpressions</var> with the most recent <var>impression</var>.timestamp.</p>"
119
+
},
120
+
{
121
+
"html": "<p>If <var>histogramSize</var> is less than or equal to <var>impression</var>.<var>histogramIndex</var>,\nreturn the all-zero histogram containing <var>histogramSize</var> values.</p>"
122
+
},
123
+
{
124
+
"html": "<p>Return a histogram containing <var>histogramSize</var> values, with a value of <var>value</var> at an index of <var>impression</var>.<code class=\"idl\"><a data-link-type=\"idl\" href=\"https://www.w3.org/TR/privacy-preserving-attribution/#dom-privateattributionimpressionoptions-histogramindex\" id=\"ref-for-dom-privateattributionimpressionoptions-histogramindex①\">histogramIndex</a></code>,\nand a value of zero at all other indices.</p>"
"html": "<p>If number of days since the end of <var>epoch</var> exceeds <var>lookbackDays</var>,\nreturn an empty set.</p>"
136
+
},
137
+
{
138
+
"html": "<p>Initialize <var>matching</var> to an empty set.</p>"
139
+
},
140
+
{
141
+
"html": "For each <var>impression</var> in the saved impressions for the <var>epoch</var>:",
142
+
"rationale": "if",
143
+
"steps": [
144
+
{
145
+
"html": "<p>If <var>now</var> - <var>lookbackDays</var> is after <var>impression</var>.timestamp,\ncontinue the loop.</p>"
146
+
},
147
+
{
148
+
"html": "<p>If <var>options</var>.<code class=\"idl\"><a data-link-type=\"idl\" href=\"https://www.w3.org/TR/privacy-preserving-attribution/#dom-privateattributionconversionoptions-filterdata\" id=\"ref-for-dom-privateattributionconversionoptions-filterdata②\">filterData</a></code> does not match <var>impression</var>.filterData,\ncontinue the loop.</p>"
149
+
},
150
+
{
151
+
"html": "<p>If <var>options</var>.<code class=\"idl\"><a data-link-type=\"idl\" href=\"https://www.w3.org/TR/privacy-preserving-attribution/#dom-privateattributionconversionoptions-impressionsites\" id=\"ref-for-dom-privateattributionconversionoptions-impressionsites①\">impressionSites</a></code> does not contain <var>impression</var>.impressionSite,\ncontinue the loop.</p>"
152
+
},
153
+
{
154
+
"html": "<p>Add <var>impression</var> to <var>matching</var>.</p>"
0 commit comments