diff --git a/ed/algorithms/appmanifest.json b/ed/algorithms/appmanifest.json
index f1796e7d5747..80e1455a4f8d 100644
--- a/ed/algorithms/appmanifest.json
+++ b/ed/algorithms/appmanifest.json
@@ -7,23 +7,23 @@
{
"name": "process the dir member",
"href": "https://w3c.github.io/manifest/#dfn-process-the-dir-member",
- "html": "To process the dir
member, given ordered map\n json and ordered map manifest:",
+ "html": "To process the dir
member, given ordered map\n json and ordered map manifest:",
"rationale": ".algorithm",
"steps": [
{
"html": "Set manifest[\"dir\"] to \"auto\"."
},
{
- "html": "If json[\"dir\"] doesn't exist or if json[\"dir\"] is not\n a string, return."
+ "html": "If json[\"dir\"] doesn't exist or if json[\"dir\"] is not\n a string, return."
},
{
- "html": "Strip leading and trailing ASCII whitespace from\n json[\"dir\"]."
+ "html": "Strip leading and trailing ASCII whitespace from\n json[\"dir\"]."
},
{
- "html": "ASCII lowercase json[\"dir\"]."
+ "html": "ASCII lowercase json[\"dir\"]."
},
{
- "html": "If text-direction list doesn't contain\n json[\"dir\"], return."
+ "html": "If text-direction list doesn't contain\n json[\"dir\"], return."
},
{
"html": "Set manifest[\"dir\"] to json[\"dir\"]."
@@ -33,43 +33,43 @@
{
"name": "process the lang member",
"href": "https://w3c.github.io/manifest/#dfn-process-the-lang-member",
- "html": "To process the lang
member, given ordered map\n json and ordered map manifest:",
+ "html": "To process the lang
member, given ordered map\n json and ordered map manifest:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If json[\"lang\"] doesn't exist or if json[\"lang\"] is\n not a string, return."
+ "html": "If json[\"lang\"] doesn't exist or if json[\"lang\"] is\n not a string, return."
},
{
- "html": "Strip leading and trailing ASCII whitespace from\n json[\"lang\"]."
+ "html": "Strip leading and trailing ASCII whitespace from\n json[\"lang\"]."
},
{
"html": "If calling IsStructurallyValidLanguageTag\n with json[\"lang\"] returns false
, return."
},
{
- "html": "Set manifest[\"lang\"] to the result of calling the\n CanonicalizeUnicodeLocaleId\n abstract operation with json[\"lang\"]."
+ "html": "Set manifest[\"lang\"] to the result of calling the\n CanonicalizeUnicodeLocaleId\n abstract operation with json[\"lang\"]."
}
]
},
{
"name": "process the scope member",
"href": "https://w3c.github.io/manifest/#dfn-process-the-scope-member",
- "html": "To process the scope
member, given ordered map\n json and ordered map manifest:",
+ "html": "To process the scope
member, given ordered map\n json and ordered map manifest:",
"rationale": ".algorithm",
"steps": [
{
- "html": "Set manifest[\"scope\"] to the result of parsing\n \".\" with manifest[\"start_url\"] as the base URL."
+ "html": "Set manifest[\"scope\"] to the result of parsing\n \".\" with manifest[\"start_url\"] as the base URL."
},
{
"html": "If json[\"scope\"] is the empty string, then return."
},
{
- "html": "Let scope be the result of parsing\n json[\"scope\"] with manifest URL as the base URL."
+ "html": "Let scope be the result of parsing\n json[\"scope\"] with manifest URL as the base URL."
},
{
"html": "If scope is failure, return."
},
{
- "html": "Set scope's query and fragment to null."
+ "html": "Set scope's query and fragment to null."
},
{
"html": "If manifest[\"start_url\"] is not within scope of\n scope, return."
@@ -82,23 +82,23 @@
{
"name": "process the display member",
"href": "https://w3c.github.io/manifest/#dfn-process-the-display-member",
- "html": "To process the display
member, given ordered map\n json and ordered map manifest:",
+ "html": "To process the display
member, given ordered map\n json and ordered map manifest:",
"rationale": ".algorithm",
"steps": [
{
"html": "Set manifest[\"display\"] to \"browser\"."
},
{
- "html": "If json[\"display\"] doesn't exist or json[\"display\"]\n is not a a string, return."
+ "html": "If json[\"display\"] doesn't exist or json[\"display\"]\n is not a a string, return."
},
{
- "html": "Strip leading and trailing ASCII whitespace from\n json[\"display\"]."
+ "html": "Strip leading and trailing ASCII whitespace from\n json[\"display\"]."
},
{
- "html": "ASCII lowercase json[\"display\"]."
+ "html": "ASCII lowercase json[\"display\"]."
},
{
- "html": "If display modes list doesn't contain\n json[\"display\"], return."
+ "html": "If display modes list doesn't contain\n json[\"display\"], return."
},
{
"html": "Set manifest[\"display\"] to json[\"display\"]."
@@ -108,20 +108,20 @@
{
"name": "process the orientation member",
"href": "https://w3c.github.io/manifest/#dfn-process-the-orientation-member",
- "html": "To process the orientation
member, given ordered map\n json and ordered map manifest:",
+ "html": "To process the orientation
member, given ordered map\n json and ordered map manifest:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If json[\"orientation\"] doesn't exist or\n json[\"orientation\"] is not a string, return."
+ "html": "If json[\"orientation\"] doesn't exist or\n json[\"orientation\"] is not a string, return."
},
{
- "html": "Strip leading and trailing ASCII whitespace from\n json[\"orientation\"]."
+ "html": "Strip leading and trailing ASCII whitespace from\n json[\"orientation\"]."
},
{
- "html": "ASCII lowercase json[\"orientation\"]."
+ "html": "ASCII lowercase json[\"orientation\"]."
},
{
- "html": "If json[\"orientation\"] doesn't contain any of the\n orientation values, return."
+ "html": "If json[\"orientation\"] doesn't contain any of the\n orientation values, return."
},
{
"html": "Set manifest[\"orientation\"] to json[\"orientation\"]."
@@ -131,26 +131,26 @@
{
"name": "process the start_url member",
"href": "https://w3c.github.io/manifest/#dfn-process-the-start_url-member",
- "html": "To process the start_url
member, given ordered map\n json, ordered map manifest, URL\n manifest URL, and URL document URL:",
+ "html": "To process the start_url
member, given ordered map\n json, ordered map manifest, URL\n manifest URL, and URL document URL:",
"rationale": ".algorithm",
"steps": [
{
"html": "Set manifest[\"start_url\"] to document URL."
},
{
- "html": "If json[\"start_url\"] doesn't exist or\n json[\"start_url\"] is not a string, return."
+ "html": "If json[\"start_url\"] doesn't exist or\n json[\"start_url\"] is not a string, return."
},
{
- "html": "If the type of json[\"start_url\"] is not string, or if\n json[\"start_url\"] is the empty string, return."
+ "html": "If the type of json[\"start_url\"] is not string, or if\n json[\"start_url\"] is the empty string, return."
},
{
- "html": "Let start URL be the result of parsing\n json[\"start_url\"], using manifest URL as the base URL."
+ "html": "Let start URL be the result of parsing\n json[\"start_url\"], using manifest URL as the base URL."
},
{
"html": "If start URL is failure, return."
},
{
- "html": "If start URL is not same origin as document URL,\n return."
+ "html": "If start URL is not same origin as document URL,\n return."
},
{
"html": "Otherwise, set manifest[\"start_url\"] to start URL."
@@ -160,32 +160,32 @@
{
"name": "process the id member",
"href": "https://w3c.github.io/manifest/#dfn-process-the-id-member",
- "html": "To process the id
member, given ordered map\n json, ordered map manifest:",
+ "html": "To process the id
member, given ordered map\n json, ordered map manifest:",
"rationale": ".algorithm",
"steps": [
{
"html": "Set manifest[\"id\"] to manifest[\"start_url\"]."
},
{
- "html": "If the type of json[\"id\"] is not string, return."
+ "html": "If the type of json[\"id\"] is not string, return."
},
{
"html": "If json[\"id\"] is the empty string, return."
},
{
- "html": "Let base origin be manifest[\"start_url\"]'s origin."
+ "html": "Let base origin be manifest[\"start_url\"]'s origin."
},
{
- "html": "Let id be the result of parsing json[\"id\"]\n with base origin as the base URL."
+ "html": "Let id be the result of parsing json[\"id\"]\n with base origin as the base URL."
},
{
"html": "If id is failure, return."
},
{
- "html": "If id is not same origin as manifest[\"start_url\"],\n return."
+ "html": "If id is not same origin as manifest[\"start_url\"],\n return."
},
{
- "html": "Set id's fragment to null."
+ "html": "Set id's fragment to null."
},
{
"html": "Set manifest[\"id\"] to id."
@@ -195,20 +195,20 @@
{
"name": "process the shortcuts member",
"href": "https://w3c.github.io/manifest/#dfn-process-the-shortcuts-member",
- "html": "To process the shortcuts
member, given ordered map\n json, ordered map manifest, and\n URL manifest URL:",
+ "html": "To process the shortcuts
member, given ordered map\n json, ordered map manifest, and\n URL manifest URL:",
"rationale": ".algorithm",
"steps": [
{
- "html": "Let processedShortcuts be a new list."
+ "html": "Let processedShortcuts be a new list."
},
{
- "html": "Set manifest[\"shortcuts\"] to processedShortcuts."
+ "html": "Set manifest[\"shortcuts\"] to processedShortcuts."
},
{
- "html": "If json[\"shortcuts\"] doesn't exist or\n json[\"shortcuts\"] is not a list, return."
+ "html": "If json[\"shortcuts\"] doesn't exist or\n json[\"shortcuts\"] is not a list, return."
},
{
- "html": "For each entry of json[\"shortcuts\"]:",
+ "html": "For each entry of json[\"shortcuts\"]:",
"rationale": "let",
"steps": [
{
@@ -218,7 +218,7 @@
"html": "If shortcut is failure, continue."
},
{
- "html": "Append shortcut to processedShortcuts."
+ "html": "Append shortcut to processedShortcuts."
}
]
}
@@ -227,112 +227,112 @@
{
"name": "process a *_localized text member",
"href": "https://w3c.github.io/manifest/#dfn-process-a-_localized-text-member",
- "html": "To process a *_localized
text member, given ordered map json, ordered map map,\n string member, and text-direction\n defaultDirection:",
+ "html": "To process a *_localized
text member, given ordered map json, ordered map map,\n string member, and text-direction\n defaultDirection:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If member does not exist in json, return."
+ "html": "If member does not exist in json, return."
},
{
"html": "Let languageMap be json[member]."
},
{
- "html": "If languageMap is not an ordered map, return."
+ "html": "If languageMap is not an ordered map, return."
},
{
- "html": "Let languageTags be the keys of\n languageMap."
+ "html": "Let languageTags be the keys of\n languageMap."
},
{
- "html": "Set map[member] to a new ordered map."
+ "html": "Set map[member] to a new ordered map."
},
{
- "html": "For each languageTag of languageTags, run\n process a localized text object, passing\n languageMap[languageTag], languageTag, map, member, and\n defaultDirection."
+ "html": "For each languageTag of languageTags, run\n process a localized text object, passing\n languageMap[languageTag], languageTag, map, member, and\n defaultDirection."
}
]
},
{
"name": "process a localized text object",
"href": "https://w3c.github.io/manifest/#dfn-process-a-localized-text-object",
- "html": "To process a localized text object, given string or\n ordered map localizedValue, string\n defaultLanguageTag, ordered map map,\n string member, and text-direction\n defaultDirection:",
+ "html": "To process a localized text object, given string or\n ordered map localizedValue, string\n defaultLanguageTag, ordered map map,\n string member, and text-direction\n defaultDirection:",
"rationale": ".algorithm",
"steps": [
{
- "html": "Let normalizedValue be an ordered map."
+ "html": "Let normalizedValue be an ordered map."
},
{
- "html": "If localizedValue is a string, strip leading and trailing ASCII whitespace from localizedValue and\n set normalizedValue[\"value\"] to localizedValue."
+ "html": "If localizedValue is a string, strip leading and trailing ASCII whitespace from localizedValue and\n set normalizedValue[\"value\"] to localizedValue."
},
{
- "html": "If localizedValue is an ordered map:",
+ "html": "If localizedValue is an ordered map:",
"rationale": "if",
"steps": [
{
- "html": "If \"value\" exists in localizedValue and\n localizedValue[\"value\"] is a string, strip leading and trailing ASCII whitespace from localizedValue[\"value\"] and\n set normalizedValue[\"value\"] to\n localizedValue[\"value\"]."
+ "html": "If \"value\" exists in localizedValue and\n localizedValue[\"value\"] is a string, strip leading and trailing ASCII whitespace from localizedValue[\"value\"] and\n set normalizedValue[\"value\"] to\n localizedValue[\"value\"]."
},
{
- "html": "If \"lang\" exists in localizedValue and\n localizedValue[\"lang\"] is a string, strip leading and trailing ASCII whitespace from localizedValue[\"lang\"] and\n set normalizedValue[\"lang\"] to\n localizedValue[\"lang\"]."
+ "html": "If \"lang\" exists in localizedValue and\n localizedValue[\"lang\"] is a string, strip leading and trailing ASCII whitespace from localizedValue[\"lang\"] and\n set normalizedValue[\"lang\"] to\n localizedValue[\"lang\"]."
},
{
- "html": "If \"dir\" exists in localizedValue and\n localizedValue[\"dir\"] is a string:",
+ "html": "If \"dir\" exists in localizedValue and\n localizedValue[\"dir\"] is a string:",
"rationale": "strip",
"steps": [
{
- "html": "Strip leading and trailing ASCII whitespace from\n localizedValue[\"dir\"]."
+ "html": "Strip leading and trailing ASCII whitespace from\n localizedValue[\"dir\"]."
},
{
- "html": "If text-direction list contains\n localizedValue[\"dir\"], set\n normalizedValue[\"dir\"] to localizedValue[\"dir\"]."
+ "html": "If text-direction list contains\n localizedValue[\"dir\"], set\n normalizedValue[\"dir\"] to localizedValue[\"dir\"]."
}
]
}
]
},
{
- "html": "If \"value\" does not exist in normalizedValue, return."
+ "html": "If \"value\" does not exist in normalizedValue, return."
},
{
- "html": "If \"lang\" does not exist in normalizedValue,\n set normalizedValue[\"lang\"] to defaultLanguageTag."
+ "html": "If \"lang\" does not exist in normalizedValue,\n set normalizedValue[\"lang\"] to defaultLanguageTag."
},
{
- "html": "If \"dir\" does not exist in normalizedValue,\n set normalizedValue[\"dir\"] to defaultDirection."
+ "html": "If \"dir\" does not exist in normalizedValue,\n set normalizedValue[\"dir\"] to defaultDirection."
},
{
"html": "If calling IsStructurallyValidLanguageTag\n with normalizedValue[\"lang\"] or calling IsStructurallyValidLanguageTag\n with defaultLanguageTag returns false
, return."
},
{
- "html": "Set map[member][defaultLanguageTag] to\n normalizedValue."
+ "html": "Set map[member][defaultLanguageTag] to\n normalizedValue."
}
]
},
{
"name": "process a *_localized image resource member",
"href": "https://w3c.github.io/manifest/#dfn-process-a-_localized-image-resource-member",
- "html": "To process a *_localized
image resource member, given\n ordered map json, ordered map map, string member, and URL manifest URL:",
+ "html": "To process a *_localized
image resource member, given\n ordered map json, ordered map map, string member, and URL manifest URL:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If member does not exist in json, return."
+ "html": "If member does not exist in json, return."
},
{
"html": "Let languageMap be json[member]."
},
{
- "html": "If languageMap is not an ordered map, return."
+ "html": "If languageMap is not an ordered map, return."
},
{
- "html": "Let languageTags be the keys of\n languageMap."
+ "html": "Let languageTags be the keys of\n languageMap."
},
{
- "html": "Set map[member] to a new ordered map."
+ "html": "Set map[member] to a new ordered map."
},
{
- "html": "For each languageTag of languageTags:",
+ "html": "For each languageTag of languageTags:",
"rationale": "if",
"steps": [
{
- "html": "If calling IsStructurallyValidLanguageTag\n with languageTag returns false
, continue."
+ "html": "If calling IsStructurallyValidLanguageTag\n with languageTag returns false
, continue."
},
{
- "html": "Run process image resources, passing\n languageMap[languageTag] as the list of image resources, map[member], manifest URL, and languageTag\n as the member."
+ "html": "Run process image resources, passing\n languageMap[languageTag] as the list of image resources, map[member], manifest URL, and languageTag\n as the member."
}
]
}
@@ -341,23 +341,23 @@
{
"name": "Document/processed manifest",
"href": "https://w3c.github.io/manifest/#dfn-processed-manifest",
- "html": "The steps for processing a manifest are given by the following\n algorithm. The algorithm takes a URL document URL, a\n URL manifest URL, and a byte sequence bodyBytes.",
+ "html": "The steps for processing a manifest are given by the following\n algorithm. The algorithm takes a URL document URL, a\n URL manifest URL, and a byte sequence bodyBytes.",
"rationale": ".algorithm",
"steps": [
{
- "html": "Let json be the result of parse JSON bytes to an Infra value passing bodyBytes."
+ "html": "Let json be the result of parse JSON bytes to an Infra value passing bodyBytes."
},
{
- "html": "If the json is a parsing exception, or json is not an\n ordered map:",
+ "html": "If the json is a parsing exception, or json is not an\n ordered map:",
"rationale": "set",
"steps": [
{
- "html": "Set json to an empty ordered map."
+ "html": "Set json to an empty ordered map."
}
]
},
{
- "html": "Let manifest be an empty ordered map."
+ "html": "Let manifest be an empty ordered map."
},
{
"html": "Process the dir
member passing json and manifest."
@@ -384,7 +384,7 @@
"html": "Process the id
member passing json and manifest."
},
{
- "html": "If the document's processed manifest is not\n null, and document's processed manifest's id is\n not equal to manifest[\"id\"], return."
+ "html": "If the document's processed manifest is not\n null, and document's processed manifest's id is\n not equal to manifest[\"id\"], return."
},
{
"html": "Process the scope
member passing json, manifest, and\n manifest URL."
@@ -414,33 +414,33 @@
"html": "Processing extension-point: process\n any proprietary and/or other supported members at this point in the\n algorithm."
},
{
- "html": "Let document's \n processed manifest be manifest."
+ "html": "Let document's \n processed manifest be manifest."
}
]
},
{
"name": "process a color member",
"href": "https://w3c.github.io/manifest/#dfn-process-a-color-member",
- "html": "To process a color member, using ordered map\n json, ordered map map, and\n string member:",
+ "html": "To process a color member, using ordered map\n json, ordered map map, and\n string member:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If json[member] doesn't exist or json[member] is\n not a string, return."
+ "html": "If json[member] doesn't exist or json[member] is\n not a string, return."
},
{
- "html": "Strip leading and trailing ASCII whitespace from\n json[member]."
+ "html": "Strip leading and trailing ASCII whitespace from\n json[member]."
},
{
- "html": "Let color be the result of parsing the value of\n json[member] as a CSS color."
+ "html": "Let color be the result of parsing the value of\n json[member] as a CSS color."
},
{
"html": "If color is failure, return."
},
{
- "html": "If color can be converted to sRGB using solely\n information the user agent inherently knows, then convert color\n to sRGB."
+ "html": "If color can be converted to sRGB using solely\n information the user agent inherently knows, then convert color\n to sRGB."
},
{
- "html": "If color is not sRGB color, return."
+ "html": "If color is not sRGB color, return."
},
{
"html": "Set map[member] to color."
@@ -450,14 +450,14 @@
{
"name": "process a text member",
"href": "https://w3c.github.io/manifest/#dfn-process-a-text-member",
- "html": "To process a text member, given ordered map\n json, ordered map map, and\n string member:",
+ "html": "To process a text member, given ordered map\n json, ordered map map, and\n string member:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If json[member] doesn't exists or json[member]\n is not a string, return."
+ "html": "If json[member] doesn't exists or json[member]\n is not a string, return."
},
{
- "html": "Strip leading and trailing ASCII whitespace from\n json[member]."
+ "html": "Strip leading and trailing ASCII whitespace from\n json[member]."
},
{
"html": "Set map[member] to the value of json[member]."
@@ -467,38 +467,38 @@
{
"name": "determine the purpose of an image",
"href": "https://w3c.github.io/manifest/#dfn-determine-the-purpose-of-an-image",
- "html": "To determine the purpose of an image, given ordered map json:",
+ "html": "To determine the purpose of an image, given ordered map json:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If json[\"purpose\"] doesn't exist or if\n json[\"purpose\"] is not a string:",
+ "html": "If json[\"purpose\"] doesn't exist or if\n json[\"purpose\"] is not a string:",
"rationale": "return",
"steps": [
{
- "html": "Return set « \"any\" »."
+ "html": "Return set « \"any\" »."
}
]
},
{
- "html": "Let keywords be the result of split on ASCII whitespace json[\"purpose\"]."
+ "html": "Let keywords be the result of split on ASCII whitespace json[\"purpose\"]."
},
{
- "html": "Let purposes be new set."
+ "html": "Let purposes be new set."
},
{
- "html": "For each keyword of keywords:",
+ "html": "For each keyword of keywords:",
"rationale": "if",
"steps": [
{
- "html": "If icon purposes list doesn't contain keyword,\n then continue."
+ "html": "If icon purposes list doesn't contain keyword,\n then continue."
},
{
- "html": "Otherwise, append keyword to purposes."
+ "html": "Otherwise, append keyword to purposes."
}
]
},
{
- "html": "If purposes is empty, then return failure."
+ "html": "If purposes is empty, then return failure."
},
{
"html": "Return purposes."
@@ -508,39 +508,39 @@
{
"name": "process image resources",
"href": "https://w3c.github.io/manifest/#dfn-process-image-resources",
- "html": "To process image resources, given list images,\n ordered map map, manifest URL and string\n member:",
+ "html": "To process image resources, given list images,\n ordered map map, manifest URL and string\n member:",
"rationale": ".algorithm",
"steps": [
{
- "html": "Let imageResources be a new\n list."
+ "html": "Let imageResources be a new\n list."
},
{
"html": "Set map[member] to imageResources."
},
{
- "html": "If images is not list, return."
+ "html": "If images is not list, return."
},
{
- "html": "For each potential image of\n images:",
+ "html": "For each potential image of\n images:",
"rationale": "let",
"steps": [
{
- "html": "Let image be the result of running process an image resource from JSON given potential image and manifest\n URL."
+ "html": "Let image be the result of running process an image resource from JSON given potential image and manifest\n URL."
},
{
- "html": "If image is failure, continue."
+ "html": "If image is failure, continue."
},
{
"html": "Let purposes be determine the purpose of an image\n passing potential image."
},
{
- "html": "If purposes is failure, continue."
+ "html": "If purposes is failure, continue."
},
{
"html": "Set image[\"purpose\"] to purposes."
},
{
- "html": "Append image to imageResources."
+ "html": "Append image to imageResources."
}
]
}
@@ -549,14 +549,14 @@
{
"name": "process a shortcut",
"href": "https://w3c.github.io/manifest/#dfn-process-a-shortcut",
- "html": "To process a shortcut, given ordered map item, URL manifest URL, URL scope, and\n text-direction defaultDirection:",
+ "html": "To process a shortcut, given ordered map item, URL manifest URL, URL scope, and\n text-direction defaultDirection:",
"rationale": ".algorithm",
"steps": [
{
- "html": "Return failure if it's the case that:\n
*_localized
text member passing item,\n shortcut, \"name_localized\", and defaultDirection."
},
{
- "html": "If \"short_name\" exists in item, and\n item[\"short_name\"] is a string, set\n shortcut[\"short_name\"] to item[\"short_name\"]."
+ "html": "If \"short_name\" exists in item, and\n item[\"short_name\"] is a string, set\n shortcut[\"short_name\"] to item[\"short_name\"]."
},
{
"html": "Process a *_localized
text member passing item,\n shortcut, \"short_name_localized\", and defaultDirection."
},
{
- "html": "If \"description\" exists in item, and\n item[\"description\"] is a string, set\n shortcut[\"description\"] to item[\"description\"]."
+ "html": "If \"description\" exists in item, and\n item[\"description\"] is a string, set\n shortcut[\"description\"] to item[\"description\"]."
},
{
"html": "Process a *_localized
text member passing item,\n shortcut, \"description_localized\", and defaultDirection."
@@ -605,14 +605,14 @@
{
"name": "create a new application context",
"href": "https://w3c.github.io/manifest/#dfn-create-a-new-application-context",
- "html": "The steps to create a new application\n context is given by the following algorithm. The algorithm\n takes a processed manifest manifest, an optional URL target URL, an optional POST resource POST resource and returns an application context.",
+ "html": "The steps to create a new application\n context is given by the following algorithm. The algorithm\n takes a processed manifest manifest, an optional URL target URL, an optional POST resource POST resource and returns an application context.",
"rationale": ".algorithm",
"steps": [
{
"html": "If target URL was not given, set target URL to start URL."
},
{
- "html": "Let traversable be the result of running the steps to create a fresh top-level traversable with target URL and POST\n resource."
+ "html": "Let traversable be the result of running the steps to create a fresh top-level traversable with target URL and POST\n resource."
},
{
"html": "Let browsing context be the traversable's active browsing context."
@@ -628,20 +628,20 @@
{
"name": "URL/within scope",
"href": "https://w3c.github.io/manifest/#dfn-within-scope",
- "html": "A URL target is said to be within scope of URL scope if the\n following algorithm returns true
:",
+ "html": "A URL target is said to be within scope of URL scope if the\n following algorithm returns true
:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If target and scope are not same origin, return false
."
+ "html": "If target and scope are not same origin, return false
."
},
{
- "html": "Let scopePath be the concatenation of\n scopes's path using U+002F (/) as the separator."
+ "html": "Let scopePath be the concatenation of\n scopes's path using U+002F (/) as the separator."
},
{
- "html": "Let targetPath be the concatenation of\n target's path using U+002F (/) as the separator."
+ "html": "Let targetPath be the concatenation of\n target's path using U+002F (/) as the separator."
},
{
- "html": "Return a boolean indicating whether targetPath starts with\n scopePath."
+ "html": "Return a boolean indicating whether targetPath starts with\n scopePath."
}
]
},
@@ -658,7 +658,7 @@
"html": "If the user agent supports manifest[\"display\"], then return\n manifest[\"display\"]."
},
{
- "html": "For each fallback_mode of the fallback chain of\n manifest[\"display\"]:",
+ "html": "For each fallback_mode of the fallback chain of\n manifest[\"display\"]:",
"rationale": "if",
"steps": [
{
diff --git a/ed/algorithms/audio-output.json b/ed/algorithms/audio-output.json
index a8f98de0553e..c6e03d31acc5 100644
--- a/ed/algorithms/audio-output.json
+++ b/ed/algorithms/audio-output.json
@@ -5,7 +5,7 @@
},
"algorithms": [
{
- "html": "When the HTMLMediaElement
constructor is invoked, the user\n agent MUST add the following initializing step:",
+ "html": "When the HTMLMediaElement
constructor is invoked, the user\n agent MUST add the following initializing step:",
"rationale": "let",
"steps": [
{
@@ -23,10 +23,10 @@
"html": "Let document be the\n \n current settings object's\n \n relevant global object's\n \n associated Document
.
If document is not\n \n allowed to use the feature identified by\n \"speaker-selection\"
, return a\n promise rejected with a new DOMException
\n whose name is NotAllowedError
.\n
If document is not\n \n allowed to use the feature identified by\n \"speaker-selection\"
, return a\n promise rejected with a new DOMException
\n whose name is NotAllowedError
.\n
Let element be the HTMLMediaElement
\n object on which this method was invoked.
Let element be the HTMLMediaElement
\n object on which this method was invoked.
Let sinkId be the method's first argument.
" @@ -42,16 +42,16 @@ "rationale": "if", "steps": [ { - "html": "If sinkId is not the empty string and does not\n match any audio output device identified by the result that\n would be provided by enumerateDevices
()
,\n reject p with a new\n DOMException
whose name is\n NotFoundError
and abort these substeps.
If sinkId is not the empty string and does not\n match any audio output device identified by the result that\n would be provided by enumerateDevices
()
,\n reject p with a new\n DOMException
whose name is\n NotFoundError
and abort these substeps.
If sinkId is not the empty string, and the\n application would not be permitted to play audio through\n the device identified by sinkId if it weren't the\n current user agent default device, reject p\n with a new DOMException
whose name is\n NotAllowedError
and abort these substeps.
If sinkId is not the empty string, and the\n application would not be permitted to play audio through\n the device identified by sinkId if it weren't the\n current user agent default device, reject p\n with a new DOMException
whose name is\n NotAllowedError
and abort these substeps.
Switch the underlying audio output device for element\n to the audio device identified by sinkId.
" }, { - "html": "If the preceding substep failed, reject p\n with a new DOMException
whose name is\n AbortError
,\n and abort these substeps.
If the preceding substep failed, reject p\n with a new DOMException
whose name is\n AbortError
,\n and abort these substeps.
If the media element's\n paused
attribute is false, start rendering\n this object's audio out of the device represented by the\n sinkId
\n attribute.
If the media element's\n paused
attribute is false, start rendering\n this object's audio out of the device represented by the\n sinkId
\n attribute.
If the relevant global object of this does not have\n transient activation, return a promise rejected with\n a DOMException
object whose name
attribute\n has the value InvalidStateError
.
If the relevant global object of this does not have\n transient activation, return a promise rejected with\n a DOMException
object whose name
attribute\n has the value InvalidStateError
.
Let options be the method's first argument.
" @@ -113,23 +113,23 @@ "rationale": "let", "steps": [ { - "html": "Let descriptor be a PermissionDescriptor
with its\n name set to \"speaker-selection\"
Let descriptor be a PermissionDescriptor
with its\n name set to \"speaker-selection\"
If descriptor's permission state is\n \"denied
\", reject\n p with a new DOMException
whose\n name
attribute has the value\n NotAllowedError
, and abort these steps.
If descriptor's permission state is\n \"denied
\", reject\n p with a new DOMException
whose\n name
attribute has the value\n NotAllowedError
, and abort these steps.
Probe the user agent for available audio output devices.
" }, { - "html": "If there is no audio output device, reject p\n with a new DOMException
whose name
\n attribute has the value NotFoundError
and abort\n these steps.
If there is no audio output device, reject p\n with a new DOMException
whose name
\n attribute has the value NotFoundError
and abort\n these steps.
\"\"
\n run the following sub steps:",
"rationale": "if",
"steps": [
{
- "html": "If deviceId matches a\n a device id previously exposed by\n selectAudioOutput
in this or an earlier browsing\n session, or matches a device id of an audio output device\n with the same groupId as an audio input device previously\n exposed by getUserMedia
()
in this or an earlier browsing\n session, the user agent MAY decide, based on its previous\n decision of whether to persist this id or not for this set\n of origins, to run the following sub steps:",
+ "html": "If deviceId matches a\n a device id previously exposed by\n selectAudioOutput
in this or an earlier browsing\n session, or matches a device id of an audio output device\n with the same groupId as an audio input device previously\n exposed by getUserMedia
()
in this or an earlier browsing\n session, the user agent MAY decide, based on its previous\n decision of whether to persist this id or not for this set\n of origins, to run the following sub steps:",
"rationale": "let",
"steps": [
{
@@ -143,19 +143,19 @@
]
},
{
- "html": "Prompt the user to choose an audio output device, with\n descriptor.
" + "html": "Prompt the user to choose an audio output device, with\n descriptor.
" }, { - "html": "If the result of the request is \"denied
\", reject\n p with a new DOMException
whose name
attribute\n has the value NotAllowedError
and abort these steps.
If the result of the request is \"denied
\", reject\n p with a new DOMException
whose name
attribute\n has the value NotAllowedError
and abort these steps.
Let selectedDevice be the user-selected audio output device.
" }, { - "html": "Let deviceInfo be the result of\n creating a device info object to represent selectedDevice,\n with mediaDevices.
" + "html": "Let deviceInfo be the result of\n creating a device info object to represent selectedDevice,\n with mediaDevices.
" }, { - "html": "Add deviceInfo.deviceId
\n to [[explicitlyGrantedAudioOutputDevices]].
Add deviceInfo.deviceId
\n to [[explicitlyGrantedAudioOutputDevices]].
Resolve p with deviceInfo.
" @@ -177,16 +177,16 @@ "html": "Let document be the\n \n current settings object's\n \n relevant global object's\n \n associated Document
.
Let deviceInfo be the result of\n creating a device info object to represent device.
" + "html": "Let deviceInfo be the result of\n creating a device info object to represent device.
" }, { - "html": "If document is not \n allowed to use the feature identified by \"speaker-selection\"
,\n or deviceInfo.kind
is not \"audiooutput
\",\n return false
.
If document is not \n allowed to use the feature identified by \"speaker-selection\"
,\n or deviceInfo.kind
is not \"audiooutput
\",\n return false
.
If deviceInfo.deviceId
\n is in [[explicitlyGrantedAudioOutputDevices]], return true
.
If deviceInfo.deviceId
\n is in [[explicitlyGrantedAudioOutputDevices]], return true
.
If deviceInfo.groupId
\n is the same as the groupId\n of any microphone in microphoneList,\n return true
.
If deviceInfo.groupId
\n is the same as the groupId\n of any microphone in microphoneList,\n return true
.
return false
.
unsigned long long
\n contents value:",
+ "html": "To set the application badge of platform object\n context to an optional unsigned long long
\n contents value:",
"rationale": ".algorithm",
"steps": [
{
- "html": "Let global be context's relevant global object."
+ "html": "Let global be context's relevant global object."
},
{
- "html": "If global is a Window
object, then:",
+ "html": "If global is a Window
object, then:",
"rationale": "let",
"steps": [
{
- "html": "Let document be global's associated Document
."
+ "html": "Let document be global's associated Document
."
},
{
- "html": "If document is not fully active, return a promise rejected with a \"InvalidStateError
\" DOMException
."
+ "html": "If document is not fully active, return a promise rejected with a \"InvalidStateError
\" DOMException
."
}
]
},
{
- "html": "Let promise be a new promise."
+ "html": "Let promise be a new promise."
},
{
- "html": "In parallel:",
+ "html": "In parallel:",
"rationale": "if",
"steps": [
{
- "html": "If this's relevant settings object's origin is not\n same origin with this's relevant settings object's\n top-level origin, queue a global task on the\n DOM manipulation task source given global to reject\n promise with a \"SecurityError
\" and terminate this algorithm."
+ "html": "If this's relevant settings object's origin is not\n same origin with this's relevant settings object's\n top-level origin, queue a global task on the\n DOM manipulation task source given global to reject\n promise with a \"SecurityError
\" and terminate this algorithm."
},
{
- "html": "If the user agent requires express permission to\n set the application badge, then:",
+ "html": "If the user agent requires express permission to\n set the application badge, then:",
"rationale": "let",
"steps": [
{
- "html": "Let permissionState be the result of getting the current permission state with \"notifications\"."
+ "html": "Let permissionState be the result of getting the current permission state with \"notifications\"."
},
{
- "html": "If permissionState is not \"granted
\",\n queue a global task on the user interaction task source\n given global to reject promise with a\n NotAllowedError
and terminate this algorithm."
+ "html": "If permissionState is not \"granted
\",\n queue a global task on the user interaction task source\n given global to reject promise with a\n NotAllowedError
and terminate this algorithm."
}
]
},
@@ -71,7 +71,7 @@
]
},
{
- "html": "Queue a global task on the DOM manipulation task source\n given global to resolve promise with undefined
."
+ "html": "Queue a global task on the DOM manipulation task source\n given global to resolve promise with undefined
."
}
]
},
diff --git a/ed/algorithms/battery-status.json b/ed/algorithms/battery-status.json
index c02506680636..e2d99935898b 100644
--- a/ed/algorithms/battery-status.json
+++ b/ed/algorithms/battery-status.json
@@ -11,25 +11,25 @@
"rationale": ".algorithm",
"steps": [
{
- "html": "If this.[[BatteryPromise]]
is null
, then set\n it to a new promise in this's relevant realm."
+ "html": "If this.[[BatteryPromise]]
is null
, then set\n it to a new promise in this's relevant realm."
},
{
- "html": "If this's relevant global object's associated Document
is not allowed to use the \"battery
\"\n policy-controlled feature, then reject\n this.[[BatteryPromise]]
with a\n \"NotAllowedError
\" DOMException
."
+ "html": "If this's relevant global object's associated Document
is not allowed to use the \"battery
\"\n policy-controlled feature, then reject\n this.[[BatteryPromise]]
with a\n \"NotAllowedError
\" DOMException
."
},
{
"html": "Otherwise:",
"rationale": "if",
"steps": [
{
- "html": "If this.[[BatteryManager]]
is null
, then\n set it to the result of creating a new BatteryManager
in\n this's relevant realm."
+ "html": "If this.[[BatteryManager]]
is null
, then\n set it to the result of creating a new BatteryManager
in\n this's relevant realm."
},
{
- "html": "Resolve this.[[BatteryPromise]]
with\n this.[[BatteryManager]]
."
+ "html": "Resolve this.[[BatteryPromise]]
with\n this.[[BatteryManager]]
."
}
]
},
{
- "html": "Return this.[[BatteryPromise]]
."
+ "html": "Return this.[[BatteryPromise]]
."
}
]
},
@@ -40,13 +40,13 @@
"rationale": ".algorithm",
"steps": [
{
- "html": "Let global be the current global object."
+ "html": "Let global be the current global object."
},
{
- "html": "If global is not a Window
, abort these steps."
+ "html": "If global is not a Window
, abort these steps."
},
{
- "html": "Let navigator be global's associated Navigator
."
+ "html": "Let navigator be global's associated Navigator
."
},
{
"html": "Let batteryManager be the value of navigator.\n [[BatteryManager]]
."
@@ -55,14 +55,14 @@
"html": "If batteryManager is null
, abort these steps."
},
{
- "html": "Queue a global task on the battery status task source\n given global to run the following steps:",
+ "html": "Queue a global task on the battery status task source\n given global to run the following steps:",
"rationale": "set",
"steps": [
{
"html": "Set batteryManager.slot to value."
},
{
- "html": "Fire an event named eventName at batteryManager."
+ "html": "Fire an event named eventName at batteryManager."
}
]
}
diff --git a/ed/algorithms/beacon.json b/ed/algorithms/beacon.json
index e66d7675ea77..ee53d6ade759 100644
--- a/ed/algorithms/beacon.json
+++ b/ed/algorithms/beacon.json
@@ -9,13 +9,13 @@
"rationale": "set",
"steps": [
{
- "html": "Set base to this's relevant settings object's\n API base URL.
" + "html": "Set base to this's relevant settings object's\n API base URL.
" }, { - "html": "Set origin to this's relevant settings object's\n origin.
" + "html": "Set origin to this's relevant settings object's\n origin.
" }, { - "html": "Set parsedUrl to the result of the URL parser\n steps with url and base. If the algorithm\n returns an error, or if parsedUrl's scheme is not\n \"http\" or \"https\", throw a\n \"
\" exception and terminate these\n steps.TypeError
Set parsedUrl to the result of the URL parser\n steps with url and base. If the algorithm\n returns an error, or if parsedUrl's scheme is not\n \"http\" or \"https\", throw a\n \"
\" exception and terminate these\n steps.TypeError
false
and\n terminate these steps."
+ "html": "If the amount of data that can be queued to be sent by\n keepalive enabled requests is exceeded by the size of\n transmittedData (as defined in HTTP-network-or-cache\n fetch), set the return value to false
and\n terminate these steps."
},
{
- "html": "If contentType is not null:\n cors
\".Content-Type
\n header, set corsMode to \"no-cors
\".\n Content-Type
header with value\n contentType to headerList.cors
\".Content-Type
\n header, set corsMode to \"no-cors
\".\n Content-Type
header with value\n contentType to headerList.Let req be a new request, initialized as\n follows:
\nPOST
true
beacon
\"Let req be a new request, initialized as\n follows:
\nPOST
true
beacon
\"CaptureHandle
\n is different than prior to the call to setCaptureHandleConfig
,\n the user agent MUST fire an event named capturehandlechange
."
+ "html": "For every capturing application for which the new observable CaptureHandle
\n is different than prior to the call to setCaptureHandleConfig
,\n the user agent MUST fire an event named capturehandlechange
."
},
{
"html": "The user agent MUST report the new observable CaptureHandle
whenever\n getCaptureHandle
is called."
diff --git a/ed/algorithms/compute-pressure.json b/ed/algorithms/compute-pressure.json
index 814ba94ed3e3..c6d22b27afba 100644
--- a/ed/algorithms/compute-pressure.json
+++ b/ed/algorithms/compute-pressure.json
@@ -11,7 +11,7 @@
"rationale": "if",
"steps": [
{
- "html": "If implementation-defined low-level hardware metrics that contribute to the\n current pressure state drop below or exceed an, per metric,\n implementation-defined threshold\n for the current pressure state, return true."
+ "html": "If implementation-defined low-level hardware metrics that contribute to the\n current pressure state drop below or exceed an, per metric,\n implementation-defined threshold\n for the current pressure state, return true."
},
{
"html": "Return false."
@@ -32,47 +32,47 @@
"rationale": ".algorithm",
"steps": [
{
- "html": "Let relevantGlobal be this's relevant global object."
+ "html": "Let relevantGlobal be this's relevant global object."
},
{
- "html": "For each document in relevantGlobal's owning document set:",
+ "html": "For each document in relevantGlobal's owning document set:",
"rationale": "if",
"steps": [
{
- "html": "If document is not allowed to use the policy-controlled feature token \"compute-pressure\", return a promise rejected with NotAllowedError
."
+ "html": "If document is not allowed to use the policy-controlled feature token \"compute-pressure\", return a promise rejected with NotAllowedError
."
}
]
},
{
- "html": "Set this.[[SampleIntervalMap]]
[source] to options's sampleInterval
."
+ "html": "Set this.[[SampleIntervalMap]]
[source] to options's sampleInterval
."
},
{
- "html": "Let promise be a new promise."
+ "html": "Let promise be a new promise."
},
{
"html": "Let pendingPromiseTuple be (source, promise)."
},
{
- "html": "Append pendingPromiseTuple to this.[[PendingObservePromises]]
."
+ "html": "Append pendingPromiseTuple to this.[[PendingObservePromises]]
."
},
{
- "html": "If promise was fulfilled or rejected, then:",
+ "html": "If promise was fulfilled or rejected, then:",
"rationale": "remove",
"steps": [
{
- "html": "Remove tuple from this.[[PendingObservePromises]]
."
+ "html": "Remove tuple from this.[[PendingObservePromises]]
."
}
]
},
{
- "html": "Run the following steps in parallel:",
+ "html": "Run the following steps in parallel:",
"rationale": "let",
"steps": [
{
"html": "Let platformCollector be null."
},
{
- "html": "If relevantGlobal's platform collector mapping\n contains source:",
+ "html": "If relevantGlobal's platform collector mapping\n contains source:",
"rationale": "set",
"steps": [
{
@@ -102,7 +102,7 @@
"html": "Set newCollector's associated pressure source to virtualPressureSource."
},
{
- "html": "Append newCollector to\n virtualPressureSource's connected platform collectors."
+ "html": "Append newCollector to\n virtualPressureSource's connected platform collectors."
}
]
}
@@ -113,7 +113,7 @@
"rationale": "let",
"steps": [
{
- "html": "Let realPressureSource be an implementation-defined\n pressure source that provides telemetry data about\n source, or null if none exists."
+ "html": "Let realPressureSource be an implementation-defined\n pressure source that provides telemetry data about\n source, or null if none exists."
},
{
"html": "Set newCollector's associated pressure source to realPressureSource."
@@ -135,13 +135,13 @@
]
},
{
- "html": "If platformCollector is null, queue a global task on the\n PressureObserver task source given relevantGlobal to reject\n promise NotSupportedError
and abort these steps."
+ "html": "If platformCollector is null, queue a global task on the\n PressureObserver task source given relevantGlobal to reject\n promise NotSupportedError
and abort these steps."
},
{
"html": "Invoke activate data collection with source and\n relevantGlobal."
},
{
- "html": "Queue a global task on the PressureObserver task source given\n relevantGlobal to run these steps:",
+ "html": "Queue a global task on the PressureObserver task source given\n relevantGlobal to run these steps:",
"rationale": "if",
"steps": [
{
@@ -149,7 +149,7 @@
"rationale": "if",
"steps": [
{
- "html": "If relevantGlobal's registered observer list for source is empty,\n invoke deactivate data collection with source and relevantGlobal."
+ "html": "If relevantGlobal's registered observer list for source is empty,\n invoke deactivate data collection with source and relevantGlobal."
},
{
"html": "Return."
@@ -157,7 +157,7 @@
]
},
{
- "html": "Append a new registered observer whose observer is this\n to relevantGlobal's registered observer list for source."
+ "html": "Append a new registered observer whose observer is this\n to relevantGlobal's registered observer list for source."
},
{
"html": "Resolve promise."
@@ -176,41 +176,41 @@
"rationale": ".algorithm",
"steps": [
{
- "html": "If source is not a supported source type, throw \"NotSupportedError
\"."
+ "html": "If source is not a supported source type, throw \"NotSupportedError
\"."
},
{
- "html": "Remove from this.[[QueuedRecords]]
all\n records associated with source."
+ "html": "Remove from this.[[QueuedRecords]]
all\n records associated with source."
},
{
- "html": "Remove this.[[SampleIntervalMap]]
[source]."
+ "html": "Remove this.[[SampleIntervalMap]]
[source]."
},
{
- "html": "Remove this.[[LastRecordMap]]
[source]."
+ "html": "Remove this.[[LastRecordMap]]
[source]."
},
{
- "html": "Remove this.[[AfterPenaltyRecordMap]]
[source]."
+ "html": "Remove this.[[AfterPenaltyRecordMap]]
[source]."
},
{
- "html": "For each (promiseSource, pendingPromise) of this.[[PendingObservePromises]]
,\n if source is equal to promiseSource, reject pendingPromise with an AbortError
."
+ "html": "For each (promiseSource, pendingPromise) of this.[[PendingObservePromises]]
,\n if source is equal to promiseSource, reject pendingPromise with an AbortError
."
},
{
- "html": "Let relevantGlobal be this's relevant global object."
+ "html": "Let relevantGlobal be this's relevant global object."
},
{
"html": "Let registeredObserverList be relevantGlobal's registered observer list for source."
},
{
- "html": "Remove any registered observer from\n registeredObserverList whose observer is this."
+ "html": "Remove any registered observer from\n registeredObserverList whose observer is this."
},
{
- "html": "If registeredObserverList is empty:",
+ "html": "If registeredObserverList is empty:",
"rationale": "invoke",
"steps": [
{
"html": "Invoke deactivate data collection with source and\n relevantGlobal."
},
{
- "html": "Remove relevantGlobal's platform collector mapping[source]."
+ "html": "Remove relevantGlobal's platform collector mapping[source]."
}
]
}
@@ -221,39 +221,39 @@
"rationale": ".algorithm",
"steps": [
{
- "html": "Empty observer.[[QueuedRecords]]
."
+ "html": "Empty observer.[[QueuedRecords]]
."
},
{
- "html": "Clear this.[[SampleIntervalMap]]
."
+ "html": "Clear this.[[SampleIntervalMap]]
."
},
{
- "html": "Clear this.[[LastRecordMap]]
."
+ "html": "Clear this.[[LastRecordMap]]
."
},
{
- "html": "Clear this.[[AfterPenaltyRecordMap]]
."
+ "html": "Clear this.[[AfterPenaltyRecordMap]]
."
},
{
- "html": "For each (promiseSource, pendingPromise) of this.[[PendingObservePromises]]
,\n reject pendingPromise with an AbortError
."
+ "html": "For each (promiseSource, pendingPromise) of this.[[PendingObservePromises]]
,\n reject pendingPromise with an AbortError
."
},
{
- "html": "Let relevantGlobal be this's relevant global object."
+ "html": "Let relevantGlobal be this's relevant global object."
},
{
- "html": "For each source → registeredObserverList of\n relevantGlobal's registered observer list ordered map:",
+ "html": "For each source → registeredObserverList of\n relevantGlobal's registered observer list ordered map:",
"rationale": "remove",
"steps": [
{
- "html": "Remove any registered observer from\n registeredObserverList whose observer is this."
+ "html": "Remove any registered observer from\n registeredObserverList whose observer is this."
},
{
- "html": "If registeredObserverList is empty:",
+ "html": "If registeredObserverList is empty:",
"rationale": "invoke",
"steps": [
{
"html": "Invoke deactivate data collection with source and\n relevantGlobal."
},
{
- "html": "Remove relevantGlobal's platform collector mapping[source]."
+ "html": "Remove relevantGlobal's platform collector mapping[source]."
}
]
}
@@ -266,10 +266,10 @@
"rationale": ".algorithm",
"steps": [
{
- "html": "Let records be a clone of observer.[[QueuedRecords]]
."
+ "html": "Let records be a clone of observer.[[QueuedRecords]]
."
},
{
- "html": "Empty observer.[[QueuedRecords]]
."
+ "html": "Empty observer.[[QueuedRecords]]
."
},
{
"html": "Return records."
@@ -288,24 +288,24 @@
{
"name": "owning document set",
"href": "https://w3c.github.io/compute-pressure/#dfn-owning-document-set",
- "html": "To determine the owning document set for a relevant global object relevantGlobal:",
+ "html": "To determine the owning document set for a relevant global object relevantGlobal:",
"rationale": "let",
"steps": [
{
- "html": "Let owningDocumentSet be an empty set."
+ "html": "Let owningDocumentSet be an empty set."
},
{
- "html": "If relevantGlobal is Window
, then append relevantGlobal's associated document to owningDocumentSet."
+ "html": "If relevantGlobal is Window
, then append relevantGlobal's associated document to owningDocumentSet."
},
{
- "html": "Otherwise, for each owner in WorkerGlobalScope
relevantGlobal's owner set:",
+ "html": "Otherwise, for each owner in WorkerGlobalScope
relevantGlobal's owner set:",
"rationale": "if",
"steps": [
{
- "html": "If owner is a Document
, then append owner to owningDocumentSet."
+ "html": "If owner is a Document
, then append owner to owningDocumentSet."
},
{
- "html": "If owner is a WorkerGlobalScope
, set owningDocumentSet to the union of\n owningDocumentSet and owner's owning document set."
+ "html": "If owner is a WorkerGlobalScope
, set owningDocumentSet to the union of\n owningDocumentSet and owner's owning document set."
}
]
},
@@ -321,34 +321,34 @@
"rationale": "if",
"steps": [
{
- "html": "If document is not fully active, return false."
+ "html": "If document is not fully active, return false."
},
{
- "html": "Let relevantGlobal be document's relevant global object."
+ "html": "Let relevantGlobal be document's relevant global object."
},
{
- "html": "For each origin in\n \n initiators of active Picture-in-Picture sessions:",
+ "html": "For each origin in\n \n initiators of active Picture-in-Picture sessions:",
"rationale": "if",
"steps": [
{
- "html": "If relevantGlobal's relevant settings object's origin is same origin with origin, return true."
+ "html": "If relevantGlobal's relevant settings object's origin is same origin with origin, return true."
}
]
},
{
- "html": "If relevantGlobal's browsing context is capturing, return true."
+ "html": "If relevantGlobal's browsing context is capturing, return true."
},
{
- "html": "Let topLevelBC be relevantGlobal's browsing context's top-level browsing context."
+ "html": "Let topLevelBC be relevantGlobal's browsing context's top-level browsing context."
},
{
- "html": "If topLevelBC does not have system focus, return false."
+ "html": "If topLevelBC does not have system focus, return false."
},
{
- "html": "Let focusedDocument be the topLevelBC's\n \n currently focused area's node document."
+ "html": "Let focusedDocument be the topLevelBC's\n \n currently focused area's node document."
},
{
- "html": "If relevantGlobal's relevant settings object's origin is same origin with\n focusedDocument's origin, return true."
+ "html": "If relevantGlobal's relevant settings object's origin is same origin with\n focusedDocument's origin, return true."
},
{
"html": "Otherwise, return false."
@@ -362,33 +362,33 @@
"rationale": "let",
"steps": [
{
- "html": "Let relevantGlobal be observer's relevant global object."
+ "html": "Let relevantGlobal be observer's relevant global object."
},
{
- "html": "If relevantGlobal is a Window
object:",
+ "html": "If relevantGlobal is a Window
object:",
"rationale": "return",
"steps": [
{
- "html": "Return the result of running document has implicit focus with relevantGlobal's associated Document."
+ "html": "Return the result of running document has implicit focus with relevantGlobal's associated Document."
}
]
},
{
- "html": "If relevantGlobal is a WorkerGlobalScope
object:",
+ "html": "If relevantGlobal is a WorkerGlobalScope
object:",
"rationale": "let",
"steps": [
{
"html": "Let owningDocuments be relevantGlobal's owning document set."
},
{
- "html": "For each document in owningDocuments:",
+ "html": "For each document in owningDocuments:",
"rationale": "if",
"steps": [
{
"html": "If the result of running document has implicit focus with document is true,\n return true."
},
{
- "html": "Otherwise, continue."
+ "html": "Otherwise, continue."
}
]
}
@@ -404,7 +404,7 @@
"rationale": "if",
"steps": [
{
- "html": "If observer.[[LastRecordMap]]
[source] does not exist, return true."
+ "html": "If observer.[[LastRecordMap]]
[source] does not exist, return true."
},
{
"html": "Let record be observer.[[LastRecordMap]]
[source]."
@@ -425,7 +425,7 @@
"rationale": "if",
"steps": [
{
- "html": "If observer.[[LastRecordMap]]
[source] does not exist, return true."
+ "html": "If observer.[[LastRecordMap]]
[source] does not exist, return true."
},
{
"html": "Let record be observer.[[LastRecordMap]]
[source]."
@@ -460,29 +460,29 @@
"html": "Let topLevelTraversable be null."
},
{
- "html": "If relevantGlobal is a Window
object:",
+ "html": "If relevantGlobal is a Window
object:",
"rationale": "set",
"steps": [
{
- "html": "Set topLevelTraversable to relevantGlobal's navigable's top-level traversable."
+ "html": "Set topLevelTraversable to relevantGlobal's navigable's top-level traversable."
}
]
},
{
- "html": "If relevantGlobal is a DedicatedWorkerGlobalScope
object:",
+ "html": "If relevantGlobal is a DedicatedWorkerGlobalScope
object:",
"rationale": "let",
"steps": [
{
"html": "Let owningDocuments be relevantGlobal's owning document set."
},
{
- "html": "If owningDocuments is empty, return null."
+ "html": "If owningDocuments is empty, return null."
},
{
- "html": "Assert: owningDocuments's size is 1."
+ "html": "Assert: owningDocuments's size is 1."
},
{
- "html": "Set topLevelTraversable to owningDocuments[0]'s node navigable's top-level traversable."
+ "html": "Set topLevelTraversable to owningDocuments[0]'s node navigable's top-level traversable."
}
]
},
@@ -496,7 +496,7 @@
"html": "Let virtualPressureSource be null."
},
{
- "html": "If topLevelVirtualPressureSourceMapping contains source:",
+ "html": "If topLevelVirtualPressureSourceMapping contains source:",
"rationale": "set",
"steps": [
{
@@ -516,7 +516,7 @@
"rationale": ".algorithm",
"steps": [
{
- "html": "If relevantGlobal's platform collector mapping does not\n contain source, abort these steps."
+ "html": "If relevantGlobal's platform collector mapping does not\n contain source, abort these steps."
},
{
"html": "Let platformCollector be relevantGlobal's platform collector mapping[source]."
@@ -528,7 +528,7 @@
"html": "Set platformCollector's activated to true."
},
{
- "html": "In an implementation-defined manner, start running the data collection steps with relevantGlobal, source, and\n platformCollector."
+ "html": "In an implementation-defined manner, start running the data collection steps with relevantGlobal, source, and\n platformCollector."
}
]
},
@@ -539,7 +539,7 @@
"rationale": ".algorithm",
"steps": [
{
- "html": "If relevantGlobal's platform collector mapping does not\n contain source, abort these steps."
+ "html": "If relevantGlobal's platform collector mapping does not\n contain source, abort these steps."
},
{
"html": "Let platformCollector be relevantGlobal's platform collector mapping[source]."
@@ -548,7 +548,7 @@
"html": "If platformCollector's activated is false,\n abort these steps."
},
{
- "html": "In an implementation-defined manner, stop running the data collection steps with relevantGlobal, source, and\n platformCollector."
+ "html": "In an implementation-defined manner, stop running the data collection steps with relevantGlobal, source, and\n platformCollector."
},
{
"html": "Set platformCollector's activated to false."
@@ -558,12 +558,12 @@
"rationale": "remove",
"steps": [
{
- "html": "Remove platformCollector from its associated pressure source's connected platform collectors."
+ "html": "Remove platformCollector from its associated pressure source's connected platform collectors."
}
]
},
{
- "html": "Otherwise, perform any implementation-defined steps to signal to\n platformCollector's associated pressure source\n to stop retrieving telemetry data."
+ "html": "Otherwise, perform any implementation-defined steps to signal to\n platformCollector's associated pressure source\n to stop retrieving telemetry data."
}
]
},
@@ -610,39 +610,39 @@
]
},
{
- "html": "Assert: state is not null."
+ "html": "Assert: state is not null."
},
{
"html": "Let rawTimestamp be sample's timestamp."
},
{
- "html": "Let timeValue be the relative high resolution time based on\n rawTimestamp and relevantGlobal."
+ "html": "Let timeValue be the relative high resolution time based on\n rawTimestamp and relevantGlobal."
},
{
- "html": "For each observer in relevantGlobal's\n registered observer list for source:",
+ "html": "For each observer in relevantGlobal's\n registered observer list for source:",
"rationale": "if",
"steps": [
{
- "html": "If running may receive data with observer\n returns false, continue."
+ "html": "If running may receive data with observer\n returns false, continue."
},
{
- "html": "If running passes rate test with observer, source and timeValue\n returns false, continue."
+ "html": "If running passes rate test with observer, source and timeValue\n returns false, continue."
},
{
- "html": "If running has change in data with observer, source, state \n \n returns false, continue."
+ "html": "If running has change in data with observer, source, state \n \n returns false, continue."
},
{
"html": "Let record be a new PressureRecord
object with its\n [[Source]]
set to source,\n [[State]]
set to state,\n \n and [[Time]]
set to timeValue."
},
{
- "html": "If observer.[[AfterPenaltyRecordMap]]
[source] exists:",
+ "html": "If observer.[[AfterPenaltyRecordMap]]
[source] exists:",
"rationale": "set",
"steps": [
{
"html": "Set observer.[[AfterPenaltyRecordMap]]
[source] to record."
},
{
- "html": "Continue."
+ "html": "Continue."
}
]
},
@@ -661,14 +661,14 @@
"rationale": "if",
"steps": [
{
- "html": "If observer.[[AfterPenaltyRecordMap]]
[source] exists:",
+ "html": "If observer.[[AfterPenaltyRecordMap]]
[source] exists:",
"rationale": "let",
"steps": [
{
"html": "Let record be observer.[[AfterPenaltyRecordMap]]
[source]."
},
{
- "html": "Remove observer.[[AfterPenaltyRecordMap]]
[source]."
+ "html": "Remove observer.[[AfterPenaltyRecordMap]]
[source]."
},
{
"html": "Run queue a record with observer, source, record."
@@ -678,7 +678,7 @@
]
},
{
- "html": "Continue."
+ "html": "Continue."
}
]
},
@@ -696,16 +696,16 @@
"rationale": ".algorithm",
"steps": [
{
- "html": "If size of observer.[[QueuedRecords]]
is greater than\n max queued records, then remove the first item."
+ "html": "If size of observer.[[QueuedRecords]]
is greater than\n max queued records, then remove the first item."
},
{
- "html": "Append record to observer.[[QueuedRecords]]
."
+ "html": "Append record to observer.[[QueuedRecords]]
."
},
{
"html": "Set observer.[[LastRecordMap]]
[source] to record."
},
{
- "html": "Queue a pressure observer task with observer's relevant global object."
+ "html": "Queue a pressure observer task with observer's relevant global object."
}
]
},
@@ -722,7 +722,7 @@
"html": "Set the relevantGlobal's pressure observer task queued to true."
},
{
- "html": "Queue a global task on PressureObserver task source with relevantGlobal to notify pressure observers."
+ "html": "Queue a global task on PressureObserver task source with relevantGlobal to notify pressure observers."
}
]
},
@@ -736,82 +736,82 @@
"html": "Set relevantGlobal's pressure observer task queued to false."
},
{
- "html": "Let notifySet be a new set of all observers in\n relevantGlobal’s registered observer lists."
+ "html": "Let notifySet be a new set of all observers in\n relevantGlobal’s registered observer lists."
},
{
- "html": "For each observer of notifySet:",
+ "html": "For each observer of notifySet:",
"rationale": "let",
"steps": [
{
- "html": "Let records be a clone of observer.[[QueuedRecords]]
."
+ "html": "Let records be a clone of observer.[[QueuedRecords]]
."
},
{
- "html": "Empty observer.[[QueuedRecords]]
."
+ "html": "Empty observer.[[QueuedRecords]]
."
},
{
- "html": "If records is not empty, then invoke observer.[[Callback]]
\n with records and observer. If this throws an exception, catch it, and report the exception."
+ "html": "If records is not empty, then invoke observer.[[Callback]]
\n with records and observer. If this throws an exception, catch it, and report the exception."
}
]
}
]
},
{
- "html": "This specification defines the following unloading document cleanup steps given a Document
document:",
+ "html": "This specification defines the following unloading document cleanup steps given a Document
document:",
"rationale": ".algorithm",
"steps": [
{
- "html": "Let relevantGlobal be document's relevant global object."
+ "html": "Let relevantGlobal be document's relevant global object."
},
{
- "html": "For each source key of relevantGlobal's\n registered observer list ordered map:",
+ "html": "For each source key of relevantGlobal's\n registered observer list ordered map:",
"rationale": "invoke",
"steps": [
{
"html": "Invoke deactivate data collection with source and\n relevantGlobal."
},
{
- "html": "Remove relevantGlobal's platform collector mapping[source]."
+ "html": "Remove relevantGlobal's platform collector mapping[source]."
}
]
}
]
},
{
- "html": "Whenever a WorkerGlobalScope
relevantGlobal's\n closing flag is set to true, perform the following\n steps:",
+ "html": "Whenever a WorkerGlobalScope
relevantGlobal's\n closing flag is set to true, perform the following\n steps:",
"rationale": ".algorithm",
"steps": [
{
- "html": "For each source key of relevantGlobal's\n registered observer list ordered map:",
+ "html": "For each source key of relevantGlobal's\n registered observer list ordered map:",
"rationale": "invoke",
"steps": [
{
"html": "Invoke deactivate data collection with source and\n relevantGlobal."
},
{
- "html": "Remove relevantGlobal's platform collector mapping[source]."
+ "html": "Remove relevantGlobal's platform collector mapping[source]."
}
]
}
]
},
{
- "html": "The remote end steps given session, URL variables and parameters are:",
+ "html": "The remote end steps given session, URL variables and parameters are:",
"rationale": ".algorithm",
"steps": [
{
"html": "Let virtualPressureSourceType be the result of invoking\n get a property \"type\" from parameters."
},
{
- "html": "If the user agent's supported source types does not\n contain virtualPressureSourceType, return error with\n WebDriver error code invalid argument."
+ "html": "If the user agent's supported source types does not\n contain virtualPressureSourceType, return error with\n WebDriver error code invalid argument."
},
{
- "html": "Let topLevelTraversable be the current browsing\n context's top-level traversable."
+ "html": "Let topLevelTraversable be the current browsing\n context's top-level traversable."
},
{
"html": "Let topLevelVirtualPressureSourceMapping be the topLevelTraversable's virtual pressure source mapping."
},
{
- "html": "If topLevelVirtualPressureSourceMapping contains virtualPressureSourceType, return error with\n WebDriver error code invalid argument."
+ "html": "If topLevelVirtualPressureSourceMapping contains virtualPressureSourceType, return error with\n WebDriver error code invalid argument."
},
{
"html": "Let supported be the result of invoking get a\n property with default\n with \"supported\" and true from parameters."
@@ -826,22 +826,22 @@
"html": "Set topLevelVirtualPressureSourceMapping[virtualPressureSourceType] to virtualPressureSource."
},
{
- "html": "Return success with data null."
+ "html": "Return success with data null."
}
]
},
{
- "html": "The remote end steps given session, URL variables and parameters are:",
+ "html": "The remote end steps given session, URL variables and parameters are:",
"rationale": ".algorithm",
"steps": [
{
"html": "Let virtualPressureSourceType be the value of the URL variables[\"type\"]."
},
{
- "html": "If the user agent's supported source types does not\n contain virtualPressureSourceType, return error with\n WebDriver error code invalid argument."
+ "html": "If the user agent's supported source types does not\n contain virtualPressureSourceType, return error with\n WebDriver error code invalid argument."
},
{
- "html": "Let topLevelTraversable be the current browsing\n context's top-level traversable."
+ "html": "Let topLevelTraversable be the current browsing\n context's top-level traversable."
},
{
"html": "Let topLevelVirtualPressureSourceMapping be the topLevelTraversable's virtual pressure source mapping."
@@ -850,7 +850,7 @@
"html": "Let pressureSource be topLevelVirtualPressureSourceMapping[virtualPressureSourceType]."
},
{
- "html": "For each platformCollector of pressureSource's connected platform collectors:",
+ "html": "For each platformCollector of pressureSource's connected platform collectors:",
"rationale": "set",
"steps": [
{
@@ -859,31 +859,31 @@
]
},
{
- "html": "Remove topLevelVirtualPressureSourceMapping[virtualPressureSourceType]."
+ "html": "Remove topLevelVirtualPressureSourceMapping[virtualPressureSourceType]."
},
{
- "html": "Return success with data null."
+ "html": "Return success with data null."
}
]
},
{
- "html": "The remote end steps given session, URL variables and parameters are:",
+ "html": "The remote end steps given session, URL variables and parameters are:",
"rationale": ".algorithm",
"steps": [
{
"html": "Let virtualPressureSourceType be the value of the URL variables[\"type\"]."
},
{
- "html": "If the user agent's supported source types does not\n contain virtualPressureSourceType, return error with\n WebDriver error code invalid argument."
+ "html": "If the user agent's supported source types does not\n contain virtualPressureSourceType, return error with\n WebDriver error code invalid argument."
},
{
- "html": "Let topLevelTraversable be the current browsing\n context's top-level traversable."
+ "html": "Let topLevelTraversable be the current browsing\n context's top-level traversable."
},
{
"html": "Let topLevelVirtualPressureSourceMapping be the topLevelTraversable's virtual pressure source mapping."
},
{
- "html": "If topLevelVirtualPressureSourceMapping does not contain virtualPressureSource,\n return error with WebDriver error code\n unsupported operation."
+ "html": "If topLevelVirtualPressureSourceMapping does not contain virtualPressureSource,\n return error with WebDriver error code\n unsupported operation."
},
{
"html": "Let virtualPressureSource be topLevelVirtualPressureSourceMapping[virtualPressureSourceType]."
@@ -892,16 +892,16 @@
"html": "Let sample be the result of invoking\n get a property \"sample\" from parameters."
},
{
- "html": "If sample is not of type PressureState
, return error with WebDriver error code invalid argument."
+ "html": "If sample is not of type PressureState
, return error with WebDriver error code invalid argument."
},
{
- "html": "Set virtualPressureSource's latest sample to a new\n pressure source sample whose data is\n sample and timestamp is the unsafe shared current time."
+ "html": "Set virtualPressureSource's latest sample to a new\n pressure source sample whose data is\n sample and timestamp is the unsafe shared current time."
},
{
- "html": "In an implementation-defined way, make virtualPressureSource's\n latest sample available to virtualPressureSource's\n connected platform collectors."
+ "html": "In an implementation-defined way, make virtualPressureSource's\n latest sample available to virtualPressureSource's\n connected platform collectors."
},
{
- "html": "Return success with data null."
+ "html": "Return success with data null."
}
]
}
diff --git a/ed/algorithms/device-posture.json b/ed/algorithms/device-posture.json
index 26b717dc3b49..306cfa9f3b1e 100644
--- a/ed/algorithms/device-posture.json
+++ b/ed/algorithms/device-posture.json
@@ -7,28 +7,28 @@
{
"name": "calculate the device posture information",
"href": "https://w3c.github.io/device-posture/#dfn-calculate-the-device-posture-information",
- "html": "The steps to calculate the device posture information of a\n Document
document are as follows:",
+ "html": "The steps to calculate the device posture information of a\n Document
document are as follows:",
"rationale": ".algorithm",
"steps": [
{
- "html": "Let topLevelTraversable be document's relevant global object's navigable's top-level traversable."
+ "html": "Let topLevelTraversable be document's relevant global object's navigable's top-level traversable."
},
{
"html": "If topLevelTraversable. [[PostureOverride]] is non-null, return\n it."
},
{
- "html": "Return a DevicePostureType
value determined in an\n implementation-defined way based on the current hinge angle\n value, current screen orientation,\n as well as potential implementation-specific signals, according to\n the posture values table."
+ "html": "Return a DevicePostureType
value determined in an\n implementation-defined way based on the current hinge angle\n value, current screen orientation,\n as well as potential implementation-specific signals, according to\n the posture values table."
}
]
},
{
"name": "device posture change steps",
"href": "https://w3c.github.io/device-posture/#dfn-device-posture-change-steps",
- "html": "The device posture change steps for a Document
\n document and an\n optional boolean disallowRecursion (default false)\n are as follows:",
+ "html": "The device posture change steps for a Document
\n document and an\n optional boolean disallowRecursion (default false)\n are as follows:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If document's visibility state is\n \"hidden\", then abort these steps."
+ "html": "If document's visibility state is\n \"hidden\", then abort these steps."
},
{
"html": "Let posture be the result of invoking calculate the device posture information with document."
@@ -37,14 +37,14 @@
"html": "If posture is equal to\n document.[[CurrentPosture]]
, abort these steps."
},
{
- "html": "Queue a global task on the user interaction task source\n with document's relevant global object to perform the following\n steps:",
+ "html": "Queue a global task on the user interaction task source\n with document's relevant global object to perform the following\n steps:",
"rationale": "set",
"steps": [
{
"html": "Set document.[[CurrentPosture]]
to posture."
},
{
- "html": "Fire an event named \"change
\" at the\n DevicePosture
object associated with document's relevant global object's associated Navigator
."
+ "html": "Fire an event named \"change
\" at the\n DevicePosture
object associated with document's relevant global object's associated Navigator
."
}
]
},
@@ -52,18 +52,18 @@
"html": "If disallowRecursion is true, abort these steps."
},
{
- "html": "For each descendantNavigable of document's\n descendant navigables:",
+ "html": "For each descendantNavigable of document's\n descendant navigables:",
"rationale": "run",
"steps": [
{
- "html": "Run the device posture change steps with document set to descendantNavigable's\n active document and disallowRecursion set to true."
+ "html": "Run the device posture change steps with document set to descendantNavigable's\n active document and disallowRecursion set to true."
}
]
}
]
},
{
- "html": "This specification defines the following page visibility change steps given visibility state and document:",
+ "html": "This specification defines the following page visibility change steps given visibility state and document:",
"rationale": ".algorithm",
"steps": [
{
@@ -72,56 +72,56 @@
]
},
{
- "html": "The remote end steps are:",
+ "html": "The remote end steps are:",
"rationale": ".algorithm",
"steps": [
{
"html": "Let posture be the result of invoking get a property \"posture\" from\n parameters."
},
{
- "html": "If posture is not a string, return error with WebDriver error code invalid argument."
+ "html": "If posture is not a string, return error with WebDriver error code invalid argument."
},
{
- "html": "If posture is neither \"continuous
\" nor\n \"folded
\", return error with WebDriver error code invalid argument."
+ "html": "If posture is neither \"continuous
\" nor\n \"folded
\", return error with WebDriver error code invalid argument."
},
{
- "html": "Let topLevelTraversable be the current browsing\n context's top-level traversable."
+ "html": "Let topLevelTraversable be the current browsing\n context's top-level traversable."
},
{
"html": "Set topLevelTraversable. [[PostureOverride]] to posture."
},
{
- "html": "Let document be topLevelTraversable's active document."
+ "html": "Let document be topLevelTraversable's active document."
},
{
"html": "Invoke device posture change steps with document."
},
{
- "html": "Return success with data null
."
+ "html": "Return success with data null
."
}
]
},
{
- "html": "The remote end steps are:",
+ "html": "The remote end steps are:",
"rationale": ".algorithm",
"steps": [
{
- "html": "Let topLevelTraversable be the current browsing\n context's top-level traversable."
+ "html": "Let topLevelTraversable be the current browsing\n context's top-level traversable."
},
{
- "html": "If topLevelTraversable. \n [[PostureOverride]] is null
, return success\n with data null
."
+ "html": "If topLevelTraversable. \n [[PostureOverride]] is null
, return success\n with data null
."
},
{
"html": "Set topLevelTraversable. [[PostureOverride]] to null
."
},
{
- "html": "Let document be topLevelTraversable's active document."
+ "html": "Let document be topLevelTraversable's active document."
},
{
"html": "Invoke device posture change steps with document."
},
{
- "html": "Return success with data null
."
+ "html": "Return success with data null
."
}
]
}
diff --git a/ed/algorithms/digital-credentials.json b/ed/algorithms/digital-credentials.json
index d9cca12561c2..ba03999e17fe 100644
--- a/ed/algorithms/digital-credentials.json
+++ b/ed/algorithms/digital-credentials.json
@@ -11,25 +11,25 @@
"rationale": ".algorithm",
"steps": [
{
- "html": "Let global be this's relevant global object."
+ "html": "Let global be this's relevant global object."
},
{
- "html": "Let document be global's associated Document
."
+ "html": "Let document be global's associated Document
."
},
{
- "html": "If document is not a fully active descendant of a top-level traversable with user attention, throw\n \"NotAllowedError
\" DOMException
."
+ "html": "If document is not a fully active descendant of a top-level traversable with user attention, throw\n \"NotAllowedError
\" DOMException
."
},
{
- "html": "If window does not have transient activation,\n throw \"NotAllowedError
\" DOMException
."
+ "html": "If window does not have transient activation,\n throw \"NotAllowedError
\" DOMException
."
},
{
- "html": "Consume user activation of window."
+ "html": "Consume user activation of window."
},
{
"html": "Let requests be options's digital
's\n requests
member."
},
{
- "html": "If requests is empty, throw a TypeError
."
+ "html": "If requests is empty, throw a TypeError
."
},
{
"html": ""
diff --git a/ed/algorithms/direct-sockets.json b/ed/algorithms/direct-sockets.json
index 0fca61280ad8..33d8e3cf02d7 100644
--- a/ed/algorithms/direct-sockets.json
+++ b/ed/algorithms/direct-sockets.json
@@ -8,30 +8,30 @@
"rationale": "if",
"steps": [
{
- "html": "If this's relevant global object's associated Document is\n not allowed to use the policy-controlled feature named \"direct-sockets
\", throw a\n \"NotAllowedError
\" DOMException
."
+ "html": "If this's relevant global object's associated Document is\n not allowed to use the policy-controlled feature named \"direct-sockets
\", throw a\n \"NotAllowedError
\" DOMException
."
},
{
- "html": "If options[\"keepAliveDelay
\"] is less than 1,000, throw a\n TypeError
."
+ "html": "If options[\"keepAliveDelay
\"] is less than 1,000, throw a\n TypeError
."
},
{
- "html": "If options[\"sendBufferSize
\"] is equal to 0, throw a TypeError
."
+ "html": "If options[\"sendBufferSize
\"] is equal to 0, throw a TypeError
."
},
{
- "html": "If options[\"receiveBufferSize
\"] is equal to 0, throw a\n TypeError
."
+ "html": "If options[\"receiveBufferSize
\"] is equal to 0, throw a\n TypeError
."
},
{
- "html": "Perform the following steps in parallel.",
+ "html": "Perform the following steps in parallel.",
"rationale": "if",
"steps": [
{
- "html": "If remoteAddress resolves to an IP address belonging to the\n private network address space and this's relevant global object's associated Document is\n not allowed to use the policy-controlled feature named \"direct-sockets-private
\", queue a global task on the relevant global object of\n this using the TCPSocket task source to run the\n following steps:",
+ "html": "If remoteAddress resolves to an IP address belonging to the\n private network address space and this's relevant global object's associated Document is\n not allowed to use the policy-controlled feature named \"direct-sockets-private
\", queue a global task on the relevant global object of\n this using the TCPSocket task source to run the\n following steps:",
"rationale": "reject",
"steps": [
{
- "html": "Reject the [[openedPromise]]
with a \"NotAllowedError
\"\n DOMException
."
+ "html": "Reject the [[openedPromise]]
with a \"NotAllowedError
\"\n DOMException
."
},
{
- "html": "Reject the [[closedPromise]]
with a \"NotAllowedError
\"\n DOMException
."
+ "html": "Reject the [[closedPromise]]
with a \"NotAllowedError
\"\n DOMException
."
}
]
},
@@ -39,19 +39,19 @@
"html": "Invoke the operating system to open a TCP socket using the given remoteAddress and\n remotePort and the connection parameters (or their defaults) specified in options."
},
{
- "html": "If this fails for any other reason, queue a global task on the relevant global object of\n this using the TCPSocket task source to run the\n following steps:",
+ "html": "If this fails for any other reason, queue a global task on the relevant global object of\n this using the TCPSocket task source to run the\n following steps:",
"rationale": "reject",
"steps": [
{
- "html": "Reject the [[openedPromise]]
with a \"NetworkError
\"\n DOMException
."
+ "html": "Reject the [[openedPromise]]
with a \"NetworkError
\"\n DOMException
."
},
{
- "html": "Reject the [[closedPromise]]
with a \"NetworkError
\"\n DOMException
."
+ "html": "Reject the [[closedPromise]]
with a \"NetworkError
\"\n DOMException
."
}
]
},
{
- "html": "On success, queue a global task on the relevant global object of\n this using the TCPSocket task source to run the\n following steps:",
+ "html": "On success, queue a global task on the relevant global object of\n this using the TCPSocket task source to run the\n following steps:",
"rationale": "initialize",
"steps": [
{
@@ -64,16 +64,16 @@
"html": "Let openInfo be a new TCPSocketOpenInfo
."
},
{
- "html": "Set openInfo[\"readable
\"] to\n this.[[readable]]
."
+ "html": "Set openInfo[\"readable
\"] to\n this.[[readable]]
."
},
{
- "html": "Set openInfo[\"writable
\"] to\n this.[[writable]]
."
+ "html": "Set openInfo[\"writable
\"] to\n this.[[writable]]
."
},
{
"html": "Populate the remaining fields of openInfo using the information provided by the\n operating system:\n openInfo[\"remoteAddress
\"],\n openInfo[\"remotePort
\"],\n openInfo[\"localAddress
\"] and\n openInfo[\"localPort
\"]."
},
{
- "html": "Resolve this.[[openedPromise]]
with openInfo."
+ "html": "Resolve this.[[openedPromise]]
with openInfo."
}
]
}
@@ -85,27 +85,27 @@
"rationale": "let",
"steps": [
{
- "html": "Let stream be a new ReadableStream
."
+ "html": "Let stream be a new ReadableStream
."
},
{
"html": "Let pullAlgorithm be the following steps:",
"rationale": "let",
"steps": [
{
- "html": "Let desiredSize be the\n desired size to fill up to the high water mark for\n this.[[readable]]
."
+ "html": "Let desiredSize be the\n desired size to fill up to the high water mark for\n this.[[readable]]
."
},
{
- "html": "If this.[[readable]]
's current BYOB request view\n is non-null, then set desiredSize to this.[[readable]]
's\n current BYOB request view's byte length."
+ "html": "If this.[[readable]]
's current BYOB request view\n is non-null, then set desiredSize to this.[[readable]]
's\n current BYOB request view's byte length."
},
{
"html": "Run the following steps in parallel:",
"rationale": "invoke",
"steps": [
{
- "html": "Invoke the operating system to read up to desiredSize bytes from the socket,\n placing the result in the byte sequence bytes."
+ "html": "Invoke the operating system to read up to desiredSize bytes from the socket,\n placing the result in the byte sequence bytes."
},
{
- "html": "Queue a global task on the relevant global object of\n this using the TCPSocket task source to run the\n following steps:",
+ "html": "Queue a global task on the relevant global object of\n this using the TCPSocket task source to run the\n following steps:",
"rationale": "if",
"steps": [
{
@@ -113,7 +113,7 @@
"rationale": "invoke",
"steps": [
{
- "html": "Invoke close on this.[[readable]]
."
+ "html": "Invoke close on this.[[readable]]
."
},
{
"html": "Invoke the steps to handle closing the TCPSocket readable stream."
@@ -125,25 +125,25 @@
"rationale": "if",
"steps": [
{
- "html": "If this.[[readable]]
's\n current BYOB request view is non-null,\n then write bytes into\n this.[[readable]]
's\n current BYOB request view, and set\n view to this.[[readable]]
's\n current BYOB request view."
+ "html": "If this.[[readable]]
's\n current BYOB request view is non-null,\n then write bytes into\n this.[[readable]]
's\n current BYOB request view, and set\n view to this.[[readable]]
's\n current BYOB request view."
},
{
- "html": "Otherwise, set view to the result of\n creating a Uint8Array
from\n bytes in this's relevant Realm."
+ "html": "Otherwise, set view to the result of\n creating a Uint8Array
from\n bytes in this's relevant Realm."
},
{
- "html": "Enqueue view into\n this.[[readable]]
."
+ "html": "Enqueue view into\n this.[[readable]]
."
}
]
},
{
- "html": "If a network or operating system error was encountered, invoke\n error on this.[[readable]]
with\n a \"NetworkError
\" DOMException
and invoke the steps\n to handle closing the TCPSocket readable stream."
+ "html": "If a network or operating system error was encountered, invoke\n error on this.[[readable]]
with\n a \"NetworkError
\" DOMException
and invoke the steps\n to handle closing the TCPSocket readable stream."
}
]
}
]
},
{
- "html": "Return a promise resolved with undefined
."
+ "html": "Return a promise resolved with undefined
."
}
]
},
@@ -155,15 +155,15 @@
"html": "Invoke the steps to handle closing the TCPSocket readable stream."
},
{
- "html": "Return a promise resolved with undefined
."
+ "html": "Return a promise resolved with undefined
."
}
]
},
{
- "html": "Set up with byte reading support stream with\n pullAlgorithm\n set to pullAlgorithm,\n cancelAlgorithm\n set to cancelAlgorithm, and\n highWaterMark\n set to an implementation-defined value."
+ "html": "Set up with byte reading support stream with\n pullAlgorithm\n set to pullAlgorithm,\n cancelAlgorithm\n set to cancelAlgorithm, and\n highWaterMark\n set to an implementation-defined value."
},
{
- "html": "Set this.[[readable]]
to stream."
+ "html": "Set this.[[readable]]
to stream."
}
]
},
@@ -171,17 +171,17 @@
"rationale": "if",
"steps": [
{
- "html": "If this.[[writable]]
is active, abort these steps."
+ "html": "If this.[[writable]]
is active, abort these steps."
},
{
- "html": "Run the following steps in parallel.",
+ "html": "Run the following steps in parallel.",
"rationale": "invoke",
"steps": [
{
"html": "Invoke the operating system to close the socket."
},
{
- "html": "Queue a global task on the relevant global object of\n this using the TCPSocket task source to run the\n following steps:\n [[writable]]
is errored,\n reject this.[[closedPromise]]
\n with this.[[writable]]
.[[storedPromise]]
.\n [[readable]]
is errored,\n reject this.[[closedPromise]]
\n with this.[[readable]]
.[[storedPromise]]
.\n [[closedPromise]]
with undefined
.\n [[writable]]
is errored,\n reject this.[[closedPromise]]
\n with this.[[writable]]
.[[storedPromise]]
.\n [[readable]]
is errored,\n reject this.[[closedPromise]]
\n with this.[[readable]]
.[[storedPromise]]
.\n [[closedPromise]]
with undefined
.\n WritableStream
."
+ "html": "Let stream be a new WritableStream
."
},
{
- "html": "Let signal be stream's signal."
+ "html": "Let signal be stream's signal."
},
{
"html": "Let writeAlgorithm be the following steps, given chunk:",
"rationale": "let",
"steps": [
{
- "html": "Let promise be a new promise."
+ "html": "Let promise be a new promise."
},
{
- "html": "Assert: signal is not aborted."
+ "html": "Assert: signal is not aborted."
},
{
- "html": "If chunk cannot be converted to an IDL value of type\n BufferSource
, reject promise with a TypeError
and return\n promise. Otherwise, save the result of the conversion in\n source."
+ "html": "If chunk cannot be converted to an IDL value of type\n BufferSource
, reject promise with a TypeError
and return\n promise. Otherwise, save the result of the conversion in\n source."
},
{
- "html": "Get a copy of the buffer source source and save the result in\n bytes."
+ "html": "Get a copy of the buffer source source and save the result in\n bytes."
},
{
- "html": "In parallel, run the following steps:",
+ "html": "In parallel, run the following steps:",
"rationale": "invoke",
"steps": [
{
"html": "Invoke the operating system to write bytes to the socket."
},
{
- "html": "Queue a global task on the relevant global object of\n this using the TCPSocket task source to run the\n following steps:",
+ "html": "Queue a global task on the relevant global object of\n this using the TCPSocket task source to run the\n following steps:",
"rationale": "if",
"steps": [
{
- "html": "If the chunk was successfully written, resolve promise with undefined
."
+ "html": "If the chunk was successfully written, resolve promise with undefined
."
},
{
"html": "If a network or operating system error was encountered:",
"rationale": "reject",
"steps": [
{
- "html": "Reject promise with a \"NetworkError
\"\n DOMException
."
+ "html": "Reject promise with a \"NetworkError
\"\n DOMException
."
},
{
"html": "Invoke the steps to handle closing the TCPSocket writable stream."
@@ -239,7 +239,7 @@
]
},
{
- "html": "If signal is aborted, reject promise\n with signal's abort reason."
+ "html": "If signal is aborted, reject promise\n with signal's abort reason."
}
]
}
@@ -255,24 +255,24 @@
"rationale": "let",
"steps": [
{
- "html": "Let promise be a new promise."
+ "html": "Let promise be a new promise."
},
{
- "html": "Run the following steps in parallel:",
+ "html": "Run the following steps in parallel:",
"rationale": "invoke",
"steps": [
{
"html": "Invoke the operating system to shutdown the socket for writing."
},
{
- "html": "Queue a global task on the relevant global object of\n this using the TCPSocket task source to run the\n following steps:",
+ "html": "Queue a global task on the relevant global object of\n this using the TCPSocket task source to run the\n following steps:",
"rationale": "invoke",
"steps": [
{
"html": "Invoke the steps to handle closing the TCPSocket writable stream."
},
{
- "html": "Resolve promise with undefined
."
+ "html": "Resolve promise with undefined
."
}
]
}
@@ -288,27 +288,27 @@
"rationale": "let",
"steps": [
{
- "html": "Let promise be a new promise."
+ "html": "Let promise be a new promise."
},
{
- "html": "Run the following steps in parallel.",
+ "html": "Run the following steps in parallel.",
"rationale": "invoke",
"steps": [
{
"html": "Invoke the operating system to shutdown the socket for writing."
},
{
- "html": "Queue a global task on the relevant global object of\n this using the TCPSocket task source to run the\n following steps:",
+ "html": "Queue a global task on the relevant global object of\n this using the TCPSocket task source to run the\n following steps:",
"rationale": "invoke",
"steps": [
{
"html": "Invoke the steps to handle closing the TCPSocket writable stream."
},
{
- "html": "If signal is aborted, reject promise\n with signal's abort reason."
+ "html": "If signal is aborted, reject promise\n with signal's abort reason."
},
{
- "html": "Resolve promise with undefined
."
+ "html": "Resolve promise with undefined
."
}
]
}
@@ -320,10 +320,10 @@
]
},
{
- "html": "Set up stream with\n writeAlgorithm\n set to writeAlgorithm,\n abortAlgorithm\n set to abortAlgorithm,\n closeAlgorithm\n set to closeAlgorithm,\n highWaterMark\n set to an implementation-defined value."
+ "html": "Set up stream with\n writeAlgorithm\n set to writeAlgorithm,\n abortAlgorithm\n set to abortAlgorithm,\n closeAlgorithm\n set to closeAlgorithm,\n highWaterMark\n set to an implementation-defined value."
},
{
- "html": "Add the following abort steps to signal:",
+ "html": "Add the following abort steps to signal:",
"rationale": "cause",
"steps": [
{
@@ -332,7 +332,7 @@
]
},
{
- "html": "Set this.[[writable]]
to stream."
+ "html": "Set this.[[writable]]
to stream."
}
]
},
@@ -340,17 +340,17 @@
"rationale": "if",
"steps": [
{
- "html": "If this.[[readable]]
is active, abort these steps."
+ "html": "If this.[[readable]]
is active, abort these steps."
},
{
- "html": "Run the following steps in parallel.",
+ "html": "Run the following steps in parallel.",
"rationale": "invoke",
"steps": [
{
"html": "Invoke the operating system to close the socket."
},
{
- "html": "Queue a global task on the relevant global object of\n this using the TCPSocket task source to run the\n following steps:\n [[readable]]
is errored,\n reject this.[[closedPromise]]
\n with this.[[readable]]
.[[storedPromise]]
.\n [[writable]]
is errored,\n reject this.[[closedPromise]]
\n with this.[[writable]]
.[[storedPromise]]
.\n [[closedPromise]]
with undefined
.\n [[readable]]
is errored,\n reject this.[[closedPromise]]
\n with this.[[readable]]
.[[storedPromise]]
.\n [[writable]]
is errored,\n reject this.[[closedPromise]]
\n with this.[[writable]]
.[[storedPromise]]
.\n [[closedPromise]]
with undefined
.\n [[openedPromise]]
is rejected or not yet resolved, reject\n with\n \"InvalidStateError
\" DOMException
."
+ "html": "If this.[[openedPromise]]
is rejected or not yet resolved, reject\n with\n \"InvalidStateError
\" DOMException
."
},
{
- "html": "If this.[[closedPromise]]
is settled, return\n this.[[closedPromise]]
."
+ "html": "If this.[[closedPromise]]
is settled, return\n this.[[closedPromise]]
."
},
{
- "html": "If this.[[readable]]
or this.[[writable]]
are locked,\n reject with \"InvalidStateError
\" DOMException
."
+ "html": "If this.[[readable]]
or this.[[writable]]
are locked,\n reject with \"InvalidStateError
\" DOMException
."
},
{
- "html": "Let cancelPromise be the result of invoking\n cancel on this.[[readable]]
."
+ "html": "Let cancelPromise be the result of invoking\n cancel on this.[[readable]]
."
},
{
"html": "Set cancelPromise.[[PromiseIsHandled]] to true."
},
{
- "html": "Let abortPromise be the result of invoking\n abort on this.[[writable]]
."
+ "html": "Let abortPromise be the result of invoking\n abort on this.[[writable]]
."
},
{
"html": "Set abortPromise.[[PromiseIsHandled]] to true."
},
{
- "html": "Return this.[[closedPromise]]
."
+ "html": "Return this.[[closedPromise]]
."
}
]
},
@@ -389,26 +389,26 @@
"rationale": "if",
"steps": [
{
- "html": "If this's relevant global object's associated Document is\n not allowed to use the policy-controlled feature named \"direct-sockets
\", throw a\n \"NotAllowedError
\" DOMException
."
+ "html": "If this's relevant global object's associated Document is\n not allowed to use the policy-controlled feature named \"direct-sockets
\", throw a\n \"NotAllowedError
\" DOMException
."
},
{
- "html": "If only one of options[\"remoteAddress
\"] and\n options[\"remotePort
\"] is specified, throw a TypeError
."
+ "html": "If only one of options[\"remoteAddress
\"] and\n options[\"remotePort
\"] is specified, throw a TypeError
."
},
{
"html": "Alternatively, if both options[\"remoteAddress
\"] and\n options[\"remotePort
\"] are specified, assume connected
\n mode
."
},
{
- "html": "If options[\"localPort
\"] is equal to 0 or specified without\n options[\"localAddress
\"], throw a TypeError
."
+ "html": "If options[\"localPort
\"] is equal to 0 or specified without\n options[\"localAddress
\"], throw a TypeError
."
},
{
"html": "If options[\"localAddress
\"] is specified:",
"rationale": "if",
"steps": [
{
- "html": "If connected
mode
was previously inferred, throw a TypeError
."
+ "html": "If connected
mode
was previously inferred, throw a TypeError
."
},
{
- "html": "If options[\"localAddress
\"] is not a valid IP address,\n throw a TypeError
."
+ "html": "If options[\"localAddress
\"] is not a valid IP address,\n throw a TypeError
."
},
{
"html": "Assume bound
mode
."
@@ -416,54 +416,54 @@
]
},
{
- "html": "If no mode
has been inferred at this point, throw a TypeError
."
+ "html": "If no mode
has been inferred at this point, throw a TypeError
."
},
{
- "html": "If options[\"dnsQueryType
\"] is specified in bound
\n mode
, throw a TypeError
."
+ "html": "If options[\"dnsQueryType
\"] is specified in bound
\n mode
, throw a TypeError
."
},
{
"html": "If options[\"ipv6Only
\"] is specified:",
"rationale": "if",
"steps": [
{
- "html": "If inferred mode
is connected
, throw a TypeError
."
+ "html": "If inferred mode
is connected
, throw a TypeError
."
},
{
- "html": "If options[\"localAddress
\"] is not equal to the IPv6\n unspecified address (::
), throw a TypeError
."
+ "html": "If options[\"localAddress
\"] is not equal to the IPv6\n unspecified address (::
), throw a TypeError
."
}
]
},
{
- "html": "If options[\"sendBufferSize
\"] is equal to 0, throw a TypeError
."
+ "html": "If options[\"sendBufferSize
\"] is equal to 0, throw a TypeError
."
},
{
- "html": "If options[\"receiveBufferSize
\"] is equal to 0, throw a\n TypeError
."
+ "html": "If options[\"receiveBufferSize
\"] is equal to 0, throw a\n TypeError
."
},
{
- "html": "Perform the following steps in parallel.",
+ "html": "Perform the following steps in parallel.",
"rationale": "if",
"steps": [
{
- "html": "If the inferred mode
is connected
and remoteAddress resolves to an IP address belonging to the\n private network address space and this's relevant global object's associated Document is\n not allowed to use the policy-controlled feature named \"direct-sockets-private
\", queue a global task on the relevant global object of\n this using the UDPSocket task source to run the\n following steps:",
+ "html": "If the inferred mode
is connected
and remoteAddress resolves to an IP address belonging to the\n private network address space and this's relevant global object's associated Document is\n not allowed to use the policy-controlled feature named \"direct-sockets-private
\", queue a global task on the relevant global object of\n this using the UDPSocket task source to run the\n following steps:",
"rationale": "reject",
"steps": [
{
- "html": "Reject the [[openedPromise]]
with a \"NotAllowedError
\"\n DOMException
."
+ "html": "Reject the [[openedPromise]]
with a \"NotAllowedError
\"\n DOMException
."
},
{
- "html": "Reject the [[closedPromise]]
with a \"NotAllowedError
\"\n DOMException
."
+ "html": "Reject the [[closedPromise]]
with a \"NotAllowedError
\"\n DOMException
."
}
]
},
{
- "html": "If the inferred mode
is bound
and either this's relevant global object's associated Document is\n not allowed to use the policy-controlled feature named \"direct-sockets-private
\"\n or the requested localPort is less than 1024, queue a global task on the relevant global object of\n this using the UDPSocket task source to run the\n following steps:",
+ "html": "If the inferred mode
is bound
and either this's relevant global object's associated Document is\n not allowed to use the policy-controlled feature named \"direct-sockets-private
\"\n or the requested localPort is less than 1024, queue a global task on the relevant global object of\n this using the UDPSocket task source to run the\n following steps:",
"rationale": "reject",
"steps": [
{
- "html": "Reject the [[openedPromise]]
with a \"NotAllowedError
\"\n DOMException
."
+ "html": "Reject the [[openedPromise]]
with a \"NotAllowedError
\"\n DOMException
."
},
{
- "html": "Reject the [[closedPromise]]
with a \"NotAllowedError
\"\n DOMException
."
+ "html": "Reject the [[closedPromise]]
with a \"NotAllowedError
\"\n DOMException
."
}
]
},
@@ -471,19 +471,19 @@
"html": "Invoke the operating system to open a UDP socket using the inferred\n mode
and the parameters (or their defaults) specified in options."
},
{
- "html": "If this fails for any reason, queue a global task on the relevant global object of this using the UDPSocket task source to run the following steps:",
+ "html": "If this fails for any reason, queue a global task on the relevant global object of this using the UDPSocket task source to run the following steps:",
"rationale": "reject",
"steps": [
{
- "html": "Reject the [[openedPromise]]
with a \"NetworkError
\"\n DOMException
."
+ "html": "Reject the [[openedPromise]]
with a \"NetworkError
\"\n DOMException
."
},
{
- "html": "Reject the [[closedPromise]]
with a \"NetworkError
\"\n DOMException
."
+ "html": "Reject the [[closedPromise]]
with a \"NetworkError
\"\n DOMException
."
}
]
},
{
- "html": "On success, queue a global task on the relevant global object of\n this using the UDPSocket task source to run the following steps:",
+ "html": "On success, queue a global task on the relevant global object of\n this using the UDPSocket task source to run the following steps:",
"rationale": "initialize",
"steps": [
{
@@ -496,16 +496,16 @@
"html": "Let openInfo be a new UDPSocketOpenInfo
."
},
{
- "html": "Set openInfo[\"readable
\"] to\n this.[[readable]]
."
+ "html": "Set openInfo[\"readable
\"] to\n this.[[readable]]
."
},
{
- "html": "Set openInfo[\"writable
\"] to\n this.[[writable]]
."
+ "html": "Set openInfo[\"writable
\"] to\n this.[[writable]]
."
},
{
"html": "Populate the remaining fields of openInfo using the information provided by the\n operating system:\n bound
mode
, populate only\n openInfo[\"localAddress
\"] and\n openInfo[\"localPort
\"].\n connected
mode
, populate\n openInfo[\"localAddress
\"] and\n openInfo[\"localPort
\"] as well as\n openInfo[\"remoteAddress
\"] and\n openInfo[\"remotePort
\"].\n [[openedPromise]]
with openInfo."
+ "html": "Resolve this.[[openedPromise]]
with openInfo."
}
]
}
@@ -517,14 +517,14 @@
"rationale": "let",
"steps": [
{
- "html": "Let stream be a new ReadableStream
."
+ "html": "Let stream be a new ReadableStream
."
},
{
"html": "Let pullAlgorithm be the following steps:",
"rationale": "let",
"steps": [
{
- "html": "Let desiredSize be the\n desired size to fill up to the high water mark for\n this.[[readable]]
."
+ "html": "Let desiredSize be the\n desired size to fill up to the high water mark for\n this.[[readable]]
."
},
{
"html": "Run the following steps in parallel:",
@@ -534,7 +534,7 @@
"html": "Invoke the operating system to provide up to desiredSize UDP packets from the\n socket."
},
{
- "html": "Queue a global task on the relevant global object of\n this using the UDPSocket task source to run the\n following steps for each received packet:",
+ "html": "Queue a global task on the relevant global object of\n this using the UDPSocket task source to run the\n following steps for each received packet:",
"rationale": "if",
"steps": [
{
@@ -542,13 +542,13 @@
"rationale": "let",
"steps": [
{
- "html": "Let bytes be a byte sequence containing the packet payload."
+ "html": "Let bytes be a byte sequence containing the packet payload."
},
{
- "html": "Let buffer be a new ArrayBuffer
created from bytes."
+ "html": "Let buffer be a new ArrayBuffer
created from bytes."
},
{
- "html": "Let chunk be a new Uint8Array
view over buffer,\n who's length is the length of bytes."
+ "html": "Let chunk be a new Uint8Array
view over buffer,\n who's length is the length of bytes."
},
{
"html": "Let message be a new UDPMessage
."
@@ -569,19 +569,19 @@
]
},
{
- "html": "Invoke enqueue on\n this.[[readable]]
with message."
+ "html": "Invoke enqueue on\n this.[[readable]]
with message."
}
]
},
{
- "html": "If a network or operating system error was encountered, invoke\n error on this.[[readable]]
with\n a \"NetworkError
\" DOMException
, discard other packets and invoke the\n steps to handle closing the UDPSocket readable stream."
+ "html": "If a network or operating system error was encountered, invoke\n error on this.[[readable]]
with\n a \"NetworkError
\" DOMException
, discard other packets and invoke the\n steps to handle closing the UDPSocket readable stream."
}
]
}
]
},
{
- "html": "Return a promise resolved with undefined
."
+ "html": "Return a promise resolved with undefined
."
}
]
},
@@ -593,15 +593,15 @@
"html": "Invoke the steps to handle closing the UDPSocket readable stream."
},
{
- "html": "Return a promise resolved with undefined
."
+ "html": "Return a promise resolved with undefined
."
}
]
},
{
- "html": "Set up stream with\n pullAlgorithm\n set to pullAlgorithm,\n cancelAlgorithm\n set to cancelAlgorithm,\n highWaterMark\n Set up stream with\n set to an implementation-defined value."
+ "html": "Set up stream with\n pullAlgorithm\n set to pullAlgorithm,\n cancelAlgorithm\n set to cancelAlgorithm,\n highWaterMark\n Set up stream with\n set to an implementation-defined value."
},
{
- "html": "Set this.[[readable]]
to stream."
+ "html": "Set this.[[readable]]
to stream."
}
]
},
@@ -609,17 +609,17 @@
"rationale": "if",
"steps": [
{
- "html": "If this.[[writable]]
is active, abort these steps."
+ "html": "If this.[[writable]]
is active, abort these steps."
},
{
- "html": "Run the following steps in parallel.",
+ "html": "Run the following steps in parallel.",
"rationale": "invoke",
"steps": [
{
"html": "Invoke the operating system to close the socket."
},
{
- "html": "Queue a global task on the relevant global object of\n this using the UDPSocket task source to run the\n following steps:\n [[writable]]
is errored,\n reject this.[[closedPromise]]
\n with this.[[writable]]
.[[storedPromise]]
.\n [[readable]]
is errored,\n reject this.[[closedPromise]]
\n with this.[[readable]]
.[[storedPromise]]
.\n [[closedPromise]]
with undefined
.\n [[writable]]
is errored,\n reject this.[[closedPromise]]
\n with this.[[writable]]
.[[storedPromise]]
.\n [[readable]]
is errored,\n reject this.[[closedPromise]]
\n with this.[[readable]]
.[[storedPromise]]
.\n [[closedPromise]]
with undefined
.\n WritableStream
."
+ "html": "Let stream be a new WritableStream
."
},
{
- "html": "Let signal be stream's signal."
+ "html": "Let signal be stream's signal."
},
{
"html": "Let writeAlgorithm be the following steps, given chunk:",
"rationale": "let",
"steps": [
{
- "html": "Let promise be a new promise."
+ "html": "Let promise be a new promise."
},
{
- "html": "Assert: signal is not aborted."
+ "html": "Assert: signal is not aborted."
},
{
"html": "Let message be a new UDPMessage
."
},
{
- "html": "If chunk cannot be converted to an IDL value of type\n UDPMessage
, reject promise with a TypeError
and return\n promise. Otherwise, save the result of the conversion in\n message."
+ "html": "If chunk cannot be converted to an IDL value of type\n UDPMessage
, reject promise with a TypeError
and return\n promise. Otherwise, save the result of the conversion in\n message."
},
{
- "html": "If either message[\"remoteAddress
\"],\n message[\"remotePort
\"] or\n message[\"dnsQueryType
\"] is specified in\n connected
mode
, reject promise with a\n TypeError
and return promise."
+ "html": "If either message[\"remoteAddress
\"],\n message[\"remotePort
\"] or\n message[\"dnsQueryType
\"] is specified in\n connected
mode
, reject promise with a\n TypeError
and return promise."
},
{
- "html": "If either message[\"remoteAddress
\"]\n or message[\"remotePort
\"] is not specified in\n bound
mode
, reject promise with a\n TypeError
and return promise."
+ "html": "If either message[\"remoteAddress
\"]\n or message[\"remotePort
\"] is not specified in\n bound
mode
, reject promise with a\n TypeError
and return promise."
},
{
- "html": "Get a copy of the buffer source message[\"data
\"] and save the\n result in bytes."
+ "html": "Get a copy of the buffer source message[\"data
\"] and save the\n result in bytes."
},
{
- "html": "In parallel, run the following steps:",
+ "html": "In parallel, run the following steps:",
"rationale": "invoke",
"steps": [
{
"html": "Invoke the operating system to send bytes to the socket.\n connected
mode
the data is routed to the\n address/port specified upon construction.\n bound
mode
the data is routed to\n message[\"remoteAddress
\"] and\n message[\"remotePort
\"].\n message[\"dnsQueryType
\"] can be optionally supplied to\n control whether DNS resolution routine returns an IPv4 or an IPv6 record.\n undefined
."
+ "html": "If the data was successfully written, resolve promise with undefined
."
},
{
"html": "If a network or operating system error was encountered:",
"rationale": "reject",
"steps": [
{
- "html": "Reject promise with a \"NetworkError
\"\n DOMException
."
+ "html": "Reject promise with a \"NetworkError
\"\n DOMException
."
},
{
"html": "Invoke the steps to handle closing the UDPSocket writable stream."
@@ -686,7 +686,7 @@
]
},
{
- "html": "If signal is aborted, reject promise\n with signal's abort reason."
+ "html": "If signal is aborted, reject promise\n with signal's abort reason."
}
]
}
@@ -705,7 +705,7 @@
"html": "Invoke the steps to handle closing the UDPSocket writable stream."
},
{
- "html": "Return a promise resolved with undefined
."
+ "html": "Return a promise resolved with undefined
."
}
]
},
@@ -717,15 +717,15 @@
"html": "Invoke the steps to handle closing the UDPSocket writable stream."
},
{
- "html": "Return a promise resolved with undefined
."
+ "html": "Return a promise resolved with undefined
."
}
]
},
{
- "html": "Set up stream with\n writeAlgorithm\n set to writeAlgorithm,\n abortAlgorithm\n set to abortAlgorithm,\n closeAlgorithm\n set to closeAlgorithm,\n highWaterMark\n set to an implementation-defined value."
+ "html": "Set up stream with\n writeAlgorithm\n set to writeAlgorithm,\n abortAlgorithm\n set to abortAlgorithm,\n closeAlgorithm\n set to closeAlgorithm,\n highWaterMark\n set to an implementation-defined value."
},
{
- "html": "Add the following abort steps to signal:",
+ "html": "Add the following abort steps to signal:",
"rationale": "cause",
"steps": [
{
@@ -734,7 +734,7 @@
]
},
{
- "html": "Set this.[[writable]]
to stream."
+ "html": "Set this.[[writable]]
to stream."
}
]
},
@@ -742,17 +742,17 @@
"rationale": "if",
"steps": [
{
- "html": "If this.[[readable]]
is active, abort these steps."
+ "html": "If this.[[readable]]
is active, abort these steps."
},
{
- "html": "Run the following steps in parallel.",
+ "html": "Run the following steps in parallel.",
"rationale": "invoke",
"steps": [
{
"html": "Invoke the operating system to close the socket."
},
{
- "html": "Queue a global task on the relevant global object of\n this using the UDPSocket task source to run the\n following steps:\n [[readable]]
is errored,\n reject this.[[closedPromise]]
\n with this.[[readable]]
.[[storedPromise]]
.\n [[writable]]
is errored,\n reject this.[[closedPromise]]
\n with this.[[writable]]
.[[storedPromise]]
.\n [[closedPromise]]
with undefined
.\n [[readable]]
is errored,\n reject this.[[closedPromise]]
\n with this.[[readable]]
.[[storedPromise]]
.\n [[writable]]
is errored,\n reject this.[[closedPromise]]
\n with this.[[writable]]
.[[storedPromise]]
.\n [[closedPromise]]
with undefined
.\n [[openedPromise]]
is rejected or not yet resolved, reject\n with\n \"InvalidStateError
\" DOMException
."
+ "html": "If this.[[openedPromise]]
is rejected or not yet resolved, reject\n with\n \"InvalidStateError
\" DOMException
."
},
{
- "html": "If this.[[closedPromise]]
is settled, return\n this.[[closedPromise]]
."
+ "html": "If this.[[closedPromise]]
is settled, return\n this.[[closedPromise]]
."
},
{
- "html": "If this.[[readable]]
or this.[[writable]]
are locked,\n reject with \"InvalidStateError
\" DOMException
."
+ "html": "If this.[[readable]]
or this.[[writable]]
are locked,\n reject with \"InvalidStateError
\" DOMException
."
},
{
- "html": "Let cancelPromise be the result of invoking\n cancel on this.[[readable]]
."
+ "html": "Let cancelPromise be the result of invoking\n cancel on this.[[readable]]
."
},
{
"html": "Set cancelPromise.[[PromiseIsHandled]] as handled."
},
{
- "html": "Let abortPromise be the result of invoking\n abort on this.[[writable]]
."
+ "html": "Let abortPromise be the result of invoking\n abort on this.[[writable]]
."
},
{
"html": "Set abortPromise.[[PromiseIsHandled]] as handled."
},
{
- "html": "Return this.[[closedPromise]]
."
+ "html": "Return this.[[closedPromise]]
."
}
]
},
@@ -791,33 +791,33 @@
"rationale": "if",
"steps": [
{
- "html": "If this's relevant global object's associated Document is\n not allowed to use the policy-controlled feature named \"direct-sockets
\", throw a \"NotAllowedError
\" DOMException
."
+ "html": "If this's relevant global object's associated Document is\n not allowed to use the policy-controlled feature named \"direct-sockets
\", throw a \"NotAllowedError
\" DOMException
."
},
{
- "html": "If localAddress is not a valid IP address, throw a TypeError
."
+ "html": "If localAddress is not a valid IP address, throw a TypeError
."
},
{
- "html": "If options[\"localPort
\"] is equal to 0, throw a TypeError
."
+ "html": "If options[\"localPort
\"] is equal to 0, throw a TypeError
."
},
{
- "html": "If options[\"backlog
\"] is equal to 0, throw a TypeError
."
+ "html": "If options[\"backlog
\"] is equal to 0, throw a TypeError
."
},
{
- "html": "If options[\"ipv6Only
\"] is true but localAddress
is not equal\n to the IPv6 unspecified address (::
), throw a TypeError
."
+ "html": "If options[\"ipv6Only
\"] is true but localAddress
is not equal\n to the IPv6 unspecified address (::
), throw a TypeError
."
},
{
- "html": "Perform the following steps in parallel.",
+ "html": "Perform the following steps in parallel.",
"rationale": "if",
"steps": [
{
- "html": "If the requested localPort is less than 32678, queue a global task on the relevant global object of\n this using the TCPServerSocket task source to run the following steps:",
+ "html": "If the requested localPort is less than 32678, queue a global task on the relevant global object of\n this using the TCPServerSocket task source to run the following steps:",
"rationale": "reject",
"steps": [
{
- "html": "Reject the [[openedPromise]]
with a \"NotAllowedError
\"\n DOMException
."
+ "html": "Reject the [[openedPromise]]
with a \"NotAllowedError
\"\n DOMException
."
},
{
- "html": "Reject the [[closedPromise]]
with a \"NotAllowedError
\"\n DOMException
."
+ "html": "Reject the [[closedPromise]]
with a \"NotAllowedError
\"\n DOMException
."
}
]
},
@@ -825,19 +825,19 @@
"html": "Invoke the operating system to open a TCP server socket using the given localAddress\n and the connection parameters (or their defaults) specified in options."
},
{
- "html": "If this fails for any reason, queue a global task on the relevant global object of this using the TCPServerSocket task source to run the\n following steps:",
+ "html": "If this fails for any reason, queue a global task on the relevant global object of this using the TCPServerSocket task source to run the\n following steps:",
"rationale": "reject",
"steps": [
{
- "html": "Reject the [[openedPromise]]
with a \"NetworkError
\"\n DOMException
."
+ "html": "Reject the [[openedPromise]]
with a \"NetworkError
\"\n DOMException
."
},
{
- "html": "Reject the [[closedPromise]]
with a \"NetworkError
\"\n DOMException
."
+ "html": "Reject the [[closedPromise]]
with a \"NetworkError
\"\n DOMException
."
}
]
},
{
- "html": "On success, queue a global task on the relevant global object of\n this using the TCPServerSocket task source to run the following steps:",
+ "html": "On success, queue a global task on the relevant global object of\n this using the TCPServerSocket task source to run the following steps:",
"rationale": "initialize",
"steps": [
{
@@ -847,13 +847,13 @@
"html": "Let openInfo be a new TCPServerSocketOpenInfo
."
},
{
- "html": "Set openInfo[\"readable
\"] to\n this.[[readable]]
."
+ "html": "Set openInfo[\"readable
\"] to\n this.[[readable]]
."
},
{
"html": "Populate the remaining fields of openInfo using the information provided by the\n operating system:\n openInfo[\"localAddress
\"] and\n openInfo[\"localPort
\"]."
},
{
- "html": "Resolve this.[[openedPromise]]
with openInfo."
+ "html": "Resolve this.[[openedPromise]]
with openInfo."
}
]
}
@@ -865,14 +865,14 @@
"rationale": "let",
"steps": [
{
- "html": "Let stream be a new ReadableStream
."
+ "html": "Let stream be a new ReadableStream
."
},
{
"html": "Let pullAlgorithm be the following steps:",
"rationale": "let",
"steps": [
{
- "html": "Let desiredSize be the\n desired\n size\n of this.[[readable]]
's\n internal queue."
+ "html": "Let desiredSize be the\n desired\n size\n of this.[[readable]]
's\n internal queue."
},
{
"html": "Run the following steps in parallel:",
@@ -882,7 +882,7 @@
"html": "Invoke the operating system to accept up to desiredSize incoming connections."
},
{
- "html": "Queue a global task on the relevant global object of\n this using the TCPServerSocket task source to run the following steps:",
+ "html": "Queue a global task on the relevant global object of\n this using the TCPServerSocket task source to run the following steps:",
"rationale": "if",
"steps": [
{
@@ -890,7 +890,7 @@
"rationale": "invoke",
"steps": [
{
- "html": "Invoke close on this.[[readable]]
."
+ "html": "Invoke close on this.[[readable]]
."
},
{
"html": "Invoke the steps to handle closing the TCPServerSocket readable stream."
@@ -902,22 +902,22 @@
"rationale": "let",
"steps": [
{
- "html": "Let tcpSocket be a new TCPSocket
accepted by the operating system."
+ "html": "Let tcpSocket be a new TCPSocket
accepted by the operating system."
},
{
- "html": "Invoke enqueue on\n this.[[readable]]
with tcpSocket."
+ "html": "Invoke enqueue on\n this.[[readable]]
with tcpSocket."
}
]
},
{
- "html": "If a network or operating system error was encountered, invoke\n error on this.[[readable]]
with\n a \"NetworkError
\" DOMException
and invoke the steps\n to handle closing the TCPServerSocket readable stream."
+ "html": "If a network or operating system error was encountered, invoke\n error on this.[[readable]]
with\n a \"NetworkError
\" DOMException
and invoke the steps\n to handle closing the TCPServerSocket readable stream."
}
]
}
]
},
{
- "html": "Return a promise resolved with undefined
."
+ "html": "Return a promise resolved with undefined
."
}
]
},
@@ -929,15 +929,15 @@
"html": "Invoke the steps to handle closing the TCPServerSocket readable stream."
},
{
- "html": "Return a promise resolved with undefined
."
+ "html": "Return a promise resolved with undefined
."
}
]
},
{
- "html": "Set up stream with\n pullAlgorithm\n set to pullAlgorithm,\n cancelAlgorithm\n set to cancelAlgorithm,\n highWaterMark\n set to an implementation-defined value."
+ "html": "Set up stream with\n pullAlgorithm\n set to pullAlgorithm,\n cancelAlgorithm\n set to cancelAlgorithm,\n highWaterMark\n set to an implementation-defined value."
},
{
- "html": "Set this.[[readable]]
to stream."
+ "html": "Set this.[[readable]]
to stream."
}
]
},
@@ -948,7 +948,7 @@
"html": "Invoke the operating system to close the socket."
},
{
- "html": "Queue a global task on the relevant global object of\n this using the TCPServerSocket task source to\n resolve this.[[closedPromise]]
\n with undefined
."
+ "html": "Queue a global task on the relevant global object of\n this using the TCPServerSocket task source to\n resolve this.[[closedPromise]]
\n with undefined
."
}
]
},
@@ -956,22 +956,22 @@
"rationale": "if",
"steps": [
{
- "html": "If this.[[openedPromise]]
is rejected or not yet resolved,\n reject with \"InvalidStateError
\" DOMException
."
+ "html": "If this.[[openedPromise]]
is rejected or not yet resolved,\n reject with \"InvalidStateError
\" DOMException
."
},
{
- "html": "If this.[[closedPromise]]
is settled, return\n this.[[closedPromise]]
."
+ "html": "If this.[[closedPromise]]
is settled, return\n this.[[closedPromise]]
."
},
{
- "html": "If this.[[readable]]
is locked,\n reject with \"InvalidStateError
\" DOMException
."
+ "html": "If this.[[readable]]
is locked,\n reject with \"InvalidStateError
\" DOMException
."
},
{
- "html": "Let cancelPromise be the result of invoking\n cancel on this.[[readable]]
."
+ "html": "Let cancelPromise be the result of invoking\n cancel on this.[[readable]]
."
},
{
"html": "Set cancelPromise.[[PromiseIsHandled]] to true."
},
{
- "html": "Return this.[[closedPromise]]
."
+ "html": "Return this.[[closedPromise]]
."
}
]
}
diff --git a/ed/algorithms/edit-context.json b/ed/algorithms/edit-context.json
index 89877f858520..18d4846955cc 100644
--- a/ed/algorithms/edit-context.json
+++ b/ed/algorithms/edit-context.json
@@ -9,32 +9,32 @@
"rationale": ".algorithm",
"steps": [
{
- "html": "If this's local name is neither a valid shadow host name nor \"canvas
\", then throw a \"NotSupportedError
\" DOMException
."
+ "html": "If this's local name is neither a valid shadow host name nor \"canvas
\", then throw a \"NotSupportedError
\" DOMException
."
},
{
"html": "If editContext is not null, then:",
"rationale": "if",
"steps": [
{
- "html": "If editContext's associated element is equal to this, then terminate these steps."
+ "html": "If editContext's associated element is equal to this, then terminate these steps."
},
{
- "html": "If editContext's associated element is not null, then throw a \"NotSupportedError
\" DOMException
."
+ "html": "If editContext's associated element is not null, then throw a \"NotSupportedError
\" DOMException
."
},
{
- "html": "Set editContext's associated element to this."
+ "html": "Set editContext's associated element to this."
}
]
},
{
- "html": "Let oldEditContext be the value of this's internal [[EditContext]] slot."
+ "html": "Let oldEditContext be the value of this's internal [[EditContext]] slot."
},
{
"html": "If oldEditContext is not null, then:",
"rationale": "assert",
"steps": [
{
- "html": "Assert: oldEditContext's associated element is equal to this."
+ "html": "Assert: oldEditContext's associated element is equal to this."
},
{
"html": "Set oldEditContext's associated element to null."
@@ -42,15 +42,15 @@
]
},
{
- "html": "Set this's internal [[EditContext]] slot to be editContext."
+ "html": "Set this's internal [[EditContext]] slot to be editContext."
},
{
- "html": "If oldEditContext is not null and oldEditContext is this's\n node document's\n active EditContext, then run the steps to deactivate an EditContext\n with oldEditContext."
+ "html": "If oldEditContext is not null and oldEditContext is this's\n node document's\n active EditContext, then run the steps to deactivate an EditContext\n with oldEditContext."
}
]
},
{
- "html": "HTMLElement
receiving the inputHTMLElement
receiving the inputCompositionEvent
."
+ "html": "Fire an event named compositionstart at editContext using CompositionEvent
."
},
{
"html": "set editContext's is composing to true."
@@ -95,7 +95,7 @@
"html": "Set editContext's is composing to false."
},
{
- "html": "Fire an event named\n compositionend\n at editContext using CompositionEvent
."
+ "html": "Fire an event named\n compositionend\n at editContext using CompositionEvent
."
},
{
"html": "Return."
@@ -164,7 +164,7 @@
"html": "Set editContext's is composing to false."
},
{
- "html": "Fire an event named\n compositionend\n at editContext using CompositionEvent
."
+ "html": "Fire an event named\n compositionend\n at editContext using CompositionEvent
."
}
]
}
@@ -173,7 +173,7 @@
]
},
{
- "html": "Document
Document
TextUpdateEvent
, with\n text
initialized to text,\n selectionStart
initialized to |editContext's selection start, and\n selectionEnd
initialized to editContext's selection end."
+ "html": "Fire an event named \"textupdate\" at editContext using TextUpdateEvent
, with\n text
initialized to text,\n selectionStart
initialized to |editContext's selection start, and\n selectionEnd
initialized to editContext's selection end."
}
]
},
@@ -240,7 +240,7 @@
]
},
{
- "html": "Fire an event named \"textformatupdate\" at editContext using TextFormatUpdateEvent
with\n the TextFormatUpdateEvent
's text format list initialized to formats."
+ "html": "Fire an event named \"textformatupdate\" at editContext using TextFormatUpdateEvent
with\n the TextFormatUpdateEvent
's text format list initialized to formats."
}
]
},
@@ -249,7 +249,7 @@
"rationale": ".algorithm",
"steps": [
{
- "html": "Fire an event named \"characterboundsupdate\" at editContext using CharacterBoundsUpdateEvent
with\n rangeStart
initialized to editContext's composition start and\n rangeEnd
initialized to editContext's composition end."
+ "html": "Fire an event named \"characterboundsupdate\" at editContext using CharacterBoundsUpdateEvent
with\n rangeStart
initialized to editContext's composition start and\n rangeEnd
initialized to editContext's composition end."
}
]
},
@@ -261,16 +261,16 @@
"html": "Set editContext's is composing to false."
},
{
- "html": "Fire an event named\n compositionend\n at editContext using CompositionEvent
."
+ "html": "Fire an event named\n compositionend\n at editContext using CompositionEvent
."
}
]
},
{
- "html": "Document
EditContext
, or null.Document
EditContext
, or null.If focused is null or if the shadow-including root of focused is not document, return null.
" + "html": "If focused is null or if the shadow-including root of focused is not document, return null.
" }, { "html": "Let editContext be null." @@ -295,7 +295,7 @@ "html": "Let parent be focused's parent." }, { - "html": "If parent is null and focused's root\n is a shadow root, let parent be focused's\n root's\n host." + "html": "If parent is null and focused's root\n is a shadow root, let parent be focused's\n root's\n host." }, { "html": "Set focused to parent." @@ -329,7 +329,7 @@ ] }, { - "html": "DOMRect
DOMRect
DOMRect
DOMRect
DOMRect
DOMRect
RestrictionTarget
objects are serializable. The serialization steps, given\n value, serialized, and a boolean forStorage, are:",
+ "html": "RestrictionTarget
objects are serializable. The serialization steps, given\n value, serialized, and a boolean forStorage, are:",
"rationale": "if",
"steps": [
{
- "html": "\n If forStorage is true
, throw with new DOMException
object whose\n name
attribute has the value \"DataCloneError
\".\n
\n If forStorage is true
, throw with new DOMException
object whose\n name
attribute has the value \"DataCloneError
\".\n
\n Set serialized.[[RestrictionTargetElement]] to\n value.[[Element]]
.\n
\n If this is not a restrictable MediaStreamTrack, return a Promise
\n rejected with a new NotSupportedError
.\n
\n If this is not a restrictable MediaStreamTrack, return a Promise
\n rejected with a new NotSupportedError
.\n
Promise
."
+ "html": "Let p be a new Promise
."
},
{
"html": "Run the following steps in parallel:",
@@ -59,17 +59,17 @@
"html": "Let E be restrictionTarget.[[Element]]
.
\n Update this video track's\n crop-state\n to uncropped.\n
" + "html": "\n Update this video track's\n crop-state\n to uncropped.\n
" }, { - "html": "Update this video track's restriction-state according to\n restrictionTarget:", + "html": "Update this video track's restriction-state according to\n restrictionTarget:", "rationale": "if", "steps": [ { - "html": "If restrictionTarget is NOTundefined
, the user agent MUST set\n this video track's restriction-state to restricted and start\n applying the restriction transformation to all frames delivered to\n this video track with restrictionTarget as the target."
+ "html": "If restrictionTarget is NOT undefined
, the user agent MUST set\n this video track's restriction-state to restricted and start\n applying the restriction transformation to all frames delivered to\n this video track with restrictionTarget as the target."
},
{
- "html": "If restrictionTarget is set to undefined
, the user agent MUST set\n this video track's restriction-state to unrestricted and stop\n applying the restriction transformation to frames delivered to this\n video track."
+ "html": "If restrictionTarget is set to undefined
, the user agent MUST set\n this video track's restriction-state to unrestricted and stop\n applying the restriction transformation to frames delivered to this\n video track."
}
]
},
@@ -94,7 +94,7 @@
"html": "If E is not a valid restriction target for T, abort without producing a new frame."
},
{
- "html": "Let intersection be the intersection of E's bounding box and the captured surface's\n top-level browsing context's viewport."
+ "html": "Let intersection be the intersection of E's bounding box and the captured surface's\n top-level browsing context's viewport."
},
{
"html": "If intersection is empty, abort without producing a new frame."
@@ -112,10 +112,10 @@
"html": "Embed content in an iframe.
" }, { - "html": "\n Prompt the user to capture the current tab. (Using\n getDisplayMedia
()
.)\n
\n Prompt the user to capture the current tab. (Using\n getDisplayMedia
()
.)\n
\n Crop the resulting capture to just the iframe that's intended for capture. (Using\n cropTo
()
.)\n
\n Crop the resulting capture to just the iframe that's intended for capture. (Using\n cropTo
()
.)\n
\n Transmit the resulting pixels to remote participants. (Using\n RTCPeerConnection.)\n
" diff --git a/ed/algorithms/epub-33.json b/ed/algorithms/epub-33.json index dc13a24a0a49..c30c3e9d4cb4 100644 --- a/ed/algorithms/epub-33.json +++ b/ed/algorithms/epub-33.json @@ -15,7 +15,7 @@ "rationale": ".algorithm", "steps": [ { - "html": "Let path be an empty list." + "html": "Let path be an empty list." }, { "html": "Let current be file." @@ -25,7 +25,7 @@ "rationale": "prepend", "steps": [ { - "html": "prepend the file name of current to path;" + "html": "prepend the file name of current to path;" }, { "html": "set current to the parent directory of current." @@ -40,20 +40,20 @@ { "name": "valid-relative-ocf-URL-with-fragment string", "href": "https://w3c.github.io/epub-specs/epub33/core/#dfn-valid-relative-container-url-with-fragment-string", - "html": "A string url is a valid-relative-ocf-URL-with-fragment string if it is a\n\t\t\t\t\t\tpath-relative-scheme-less-url string, optionally followed byU+0023 (#)
\n\t\t\t\t\t\tand a url-fragment string, and if the following steps return true:",
+ "html": "A string url is a valid-relative-ocf-URL-with-fragment string if it is a\n\t\t\t\t\t\tpath-relative-scheme-less-url string, optionally followed by U+0023 (#)
\n\t\t\t\t\t\tand a url-fragment string, and if the following steps return true:",
"rationale": ".algorithm",
"steps": [
{
- "html": "Set the container root URL to https://a.example.org/A/
.
The goal of the algorithm is to detect whether url could be seen as\n\t\t\t\t\t\t\t\t\t\"leaking\" outside the container. To do that, the standard URL parsing algorithm is used with an artificial root URL; the detection of the \"leak\" is done\n\t\t\t\t\t\t\t\t\tby comparing the result of the parsing with the presence of the first test path\n\t\t\t\t\t\t\t\t\tsegment (A
). (Note that the artificial container root URL wilfully\n\t\t\t\t\t\t\t\t\tviolates, for the purpose of this algorithm, the required properties by using that first test path segment.)
Set the container root URL to https://a.example.org/A/
.
The goal of the algorithm is to detect whether url could be seen as\n\t\t\t\t\t\t\t\t\t\"leaking\" outside the container. To do that, the standard URL parsing algorithm is used with an artificial root URL; the detection of the \"leak\" is done\n\t\t\t\t\t\t\t\t\tby comparing the result of the parsing with the presence of the first test path\n\t\t\t\t\t\t\t\t\tsegment (A
). (Note that the artificial container root URL wilfully\n\t\t\t\t\t\t\t\t\tviolates, for the purpose of this algorithm, the required properties by using that first test path segment.)
Let base be the base URL that must be\n\t\t\t\t\t\t\t\tused to parse url as defined by the context (document or environment) where\n\t\t\t\t\t\t\t\t\turl is used, and according to the content URL of the package document\n\t\t\t\t\t\t\t\t(see 5.2 Parsing URLs in the package document).
\n\t\t\t\t\t\t\tIn the case of a URL in the package document the base variable is set to\n\t\t\t\t\t\t\t\t\tthe content URL of the package document. In the case of a document within the\n\t\t\t\t\t\t\t\t\t\tMETA-INF
directory, the base variable is set to the\n\t\t\t\t\t\t\t\t\tcontainer root URL (see 4.2.6.2 Parsing URLs in the META-INF
directory). In the case of a\n\t\t\t\t\t\t\t\t\tURL in an XHTML content document, the base URL used for parsing is defined by\n\t\t\t\t\t\t\t\t\tthe HTML standard. Typically, it will be the\n\t\t\t\t\t\t\t\t\tcontent URL of the content document (unless the discouraged\n\t\t\t\t\t\t\t\t\tbase
element is used).
Set the container root URL to https://b.example.org/B/
.
The reasons to repeat the same steps twice with different, and artificial, settings\n\t\t\t\t\t\t\t\t\tof the container root URL is to avoid collision which may occur if the\n\t\t\t\t\t\t\t\t\t\turl string also includes /A/
. Consider, for example, the\n\t\t\t\t\t\t\t\t\tcase where url is ../../A/doc.xhtml
.
If testURLStringA does not start with https://a.example.org/
or\n\t\t\t\t\t\t\t\t\ttestURLStringB does not start with https://b.example.org/
,\n\t\t\t\t\t\t\t\treturn true.
If any of the result does not share the test URL host, it means that url,\n\t\t\t\t\t\t\t\t\tor its base URL (for example, in HTML, if it is explicitly set with the\n\t\t\t\t\t\t\t\t\t\tbase
element), was absolute and points outside the\n\t\t\t\t\t\t\t\t\tcontainer. This is acceptable.
Let baseURL, expandedURL, propertyPrefix, and\n\t\t\t\t\t\t\tpropertyReference be empty strings.
\n\t\t\t\t\tIn this algorithm:
\n\t\t\t\t\t\tLet baseURL, expandedURL, propertyPrefix, and\n\t\t\t\t\t\t\tpropertyReference be empty strings.
\n\t\t\t\t\tIn this algorithm:
\n\t\t\t\t\t\tepub:type
[epub-33], set baseURL to\n\t\t\t\t\t\t\t\t\t\thttp://idpf.org/epub/vocab/structure/#
"
+ "html": "If attr is epub:type
[epub-33], set baseURL to\n\t\t\t\t\t\t\t\t\t\thttp://idpf.org/epub/vocab/structure/#
"
},
{
- "html": "Otherwise, if elem is the package document meta
element [epub-33]\n\t\t\t\t\t\t\t\t\tand attr is scheme
, the property value is invalid. Return null."
+ "html": "Otherwise, if elem is the package document meta
element [epub-33]\n\t\t\t\t\t\t\t\t\tand attr is scheme
, the property value is invalid. Return null."
},
{
- "html": "Otherwise, if elem is the package document meta
element [epub-33],\n\t\t\t\t\t\t\t\t\tset baseURL to\n\t\t\t\t\t\t\t\t\t\thttp://idpf.org/epub/vocab/package/meta/#
"
+ "html": "Otherwise, if elem is the package document meta
element [epub-33],\n\t\t\t\t\t\t\t\t\tset baseURL to\n\t\t\t\t\t\t\t\t\t\thttp://idpf.org/epub/vocab/package/meta/#
"
},
{
- "html": "Otherwise, if elem is the package document link
element [epub-33],\n\t\t\t\t\t\t\t\t\tset baseURL to\n\t\t\t\t\t\t\t\t\t\thttp://idpf.org/epub/vocab/package/link/#
"
+ "html": "Otherwise, if elem is the package document link
element [epub-33],\n\t\t\t\t\t\t\t\t\tset baseURL to\n\t\t\t\t\t\t\t\t\t\thttp://idpf.org/epub/vocab/package/link/#
"
},
{
- "html": "Otherwise, if elem is the package document item
element [epub-33],\n\t\t\t\t\t\t\t\t\tset baseURL to\n\t\t\t\t\t\t\t\t\t\thttp://idpf.org/epub/vocab/package/item/#
"
+ "html": "Otherwise, if elem is the package document item
element [epub-33],\n\t\t\t\t\t\t\t\t\tset baseURL to\n\t\t\t\t\t\t\t\t\t\thttp://idpf.org/epub/vocab/package/item/#
"
},
{
- "html": "Otherwise, if elem is the package document itemref
element\n\t\t\t\t\t\t\t\t\t[epub-33], set baseURL to\n\t\t\t\t\t\t\t\t\t\thttp://idpf.org/epub/vocab/package/itemref/#
"
+ "html": "Otherwise, if elem is the package document itemref
element\n\t\t\t\t\t\t\t\t\t[epub-33], set baseURL to\n\t\t\t\t\t\t\t\t\t\thttp://idpf.org/epub/vocab/package/itemref/#
"
}
]
},
@@ -74,7 +74,7 @@
"html": "Set expandedURL to the concatenated values of baseURL and\n\t\t\t\t\t\tpropertyReference. Do not add a separator when concatenating the values."
},
{
- "html": "If expandedURL is not a valid URL string, the value is invalid. Return null.
\n\t\t\t\t\tOtherwise, return expandedURL.
\n\t\t\t\t\tAlthough an expanded value may be obtained, it is not necessarily the case that it is a valid\n\t\t\t\t\t\t\tURL. This is only likely to occur when the EPUB creator assigns an invalid base URL to a\n\t\t\t\t\t\t\tprefix.
\n\t\t\t\t\tIf expandedURL is not a valid URL string, the value is invalid. Return null.
\n\t\t\t\t\tOtherwise, return expandedURL.
\n\t\t\t\t\tAlthough an expanded value may be obtained, it is not necessarily the case that it is a valid\n\t\t\t\t\t\t\tURL. This is only likely to occur when the EPUB creator assigns an invalid base URL to a\n\t\t\t\t\t\t\tprefix.
\n\t\t\t\t\tNotAllowedError
\"\n DOMException
."
+ "html": "If the relevant global object of this does not have transient activation, return a new promise rejected with a \"NotAllowedError
\"\n DOMException
."
},
{
- "html": "If another eye dropper is already open then return a new promise rejected with an \"InvalidStateError
\"\n DOMException
."
+ "html": "If another eye dropper is already open then return a new promise rejected with an \"InvalidStateError
\"\n DOMException
."
},
{
- "html": "Let result be a new promise."
+ "html": "Let result be a new promise."
},
{
"html": "If options.signal is present, then perform the following sub-steps:",
"rationale": "if",
"steps": [
{
- "html": "If options.signal is aborted,\n then reject result with options.signal's abort reason\n and return result."
+ "html": "If options.signal is aborted,\n then reject result with options.signal's abort reason\n and return result."
},
{
"html": "Add the following abort steps to options.signal:",
@@ -34,7 +34,7 @@
"html": "Exit \"eyedropper mode\" and dismiss UI."
},
{
- "html": "Reject result with options.signal's abort reason."
+ "html": "Reject result with options.signal's abort reason."
}
]
}
@@ -44,7 +44,7 @@
"html": "Place the web page into an \"eyedropper mode\" where user input is suppressed: no UI events are dispatched to the web page."
},
{
- "html": "In parallel:",
+ "html": "In parallel:",
"rationale": "let",
"steps": [
{
@@ -52,7 +52,7 @@
"rationale": "if",
"steps": [
{
- "html": "If the user aborts the selection, reject result with an \"AbortError
\" DOMException
, otherwise\n reject result with an \"OperationError
\" DOMException
."
+ "html": "If the user aborts the selection, reject result with an \"AbortError
\" DOMException
, otherwise\n reject result with an \"OperationError
\" DOMException
."
},
{
"html": "Abort these steps."
@@ -63,7 +63,7 @@
"html": "Exit \"eyedropper mode\" and dismiss UI."
},
{
- "html": "Resolve result with colorSelectionResult."
+ "html": "Resolve result with colorSelectionResult."
}
]
},
diff --git a/ed/algorithms/gamepad.json b/ed/algorithms/gamepad.json
index 93fd9af2115b..07f5027fb37b 100644
--- a/ed/algorithms/gamepad.json
+++ b/ed/algorithms/gamepad.json
@@ -11,7 +11,7 @@
"rationale": "return",
"steps": [
{
- "html": "Return this.[[connected]]
."
+ "html": "Return this.[[connected]]
."
}
]
},
@@ -22,7 +22,7 @@
"rationale": "return",
"steps": [
{
- "html": "Return this.[[timestamp]]
."
+ "html": "Return this.[[timestamp]]
."
}
]
},
@@ -47,7 +47,7 @@
"rationale": "return",
"steps": [
{
- "html": "Return this.[[axes]]
."
+ "html": "Return this.[[axes]]
."
}
]
},
@@ -58,7 +58,7 @@
"rationale": "return",
"steps": [
{
- "html": "Return this.[[buttons]]
."
+ "html": "Return this.[[buttons]]
."
}
]
},
@@ -69,7 +69,7 @@
"rationale": "return",
"steps": [
{
- "html": "Return this.[[vibrationActuator]]
."
+ "html": "Return this.[[vibrationActuator]]
."
}
]
},
@@ -83,7 +83,7 @@
"html": "Let gamepad be the Gamepad
object representing the\n device that received new button or axis input values."
},
{
- "html": "Queue a task on the gamepad task source to update gamepad state for gamepad."
+ "html": "Queue a task on the gamepad task source to update gamepad state for gamepad."
}
]
},
@@ -94,7 +94,7 @@
"rationale": "let",
"steps": [
{
- "html": "Let now be the current high resolution time."
+ "html": "Let now be the current high resolution time."
},
{
"html": "Set gamepad.[[timestamp]]
to now."
@@ -106,7 +106,7 @@
"html": "Run the steps to map and normalize buttons for gamepad."
},
{
- "html": "Let navigator be gamepad's relevant global object's Navigator
object."
+ "html": "Let navigator be gamepad's relevant global object's Navigator
object."
},
{
"html": "If navigator.[[hasGamepadGesture]]
is false
and\n gamepad contains a gamepad user gesture:",
@@ -116,7 +116,7 @@
"html": "Set navigator.[[hasGamepadGesture]]
to\n true
."
},
{
- "html": "For each connectedGamepad of\n navigator.[[gamepads]]
:",
+ "html": "For each connectedGamepad of\n navigator.[[gamepads]]
:",
"rationale": "if",
"steps": [
{
@@ -130,10 +130,10 @@
"html": "Set connectedGamepad.[[timestamp]]
to\n now."
},
{
- "html": "Let document be gamepad's relevant global object's associated Document
; otherwise\n null
."
+ "html": "Let document be gamepad's relevant global object's associated Document
; otherwise\n null
."
},
{
- "html": "If document is not null
and is fully active, then queue a task on the gamepad task source to fire an event named gamepadconnected
\n at gamepad's relevant global object using\n GamepadEvent
with its gamepad
\n attribute initialized to connectedGamepad."
+ "html": "If document is not null
and is fully active, then queue a task on the gamepad task source to fire an event named gamepadconnected
\n at gamepad's relevant global object using\n GamepadEvent
with its gamepad
\n attribute initialized to connectedGamepad."
}
]
}
@@ -150,13 +150,13 @@
"rationale": "let",
"steps": [
{
- "html": "Let axisValues be a list of unsigned long
values\n representing the most recent logical axis input values for each axis\n input of the device represented by gamepad."
+ "html": "Let axisValues be a list of unsigned long
values\n representing the most recent logical axis input values for each axis\n input of the device represented by gamepad."
},
{
- "html": "Let maxRawAxisIndex be the size of axisValues −\n 1."
+ "html": "Let maxRawAxisIndex be the size of axisValues −\n 1."
},
{
- "html": "For each rawAxisIndex of the range from 0 to\n maxRawAxisIndex:",
+ "html": "For each rawAxisIndex of the range from 0 to\n maxRawAxisIndex:",
"rationale": "let",
"steps": [
{
@@ -188,13 +188,13 @@
"rationale": "let",
"steps": [
{
- "html": "Let buttonValues be a list of unsigned long
values\n representing the most recent logical button input values for each\n button input of the device represented by gamepad."
+ "html": "Let buttonValues be a list of unsigned long
values\n representing the most recent logical button input values for each\n button input of the device represented by gamepad."
},
{
- "html": "Let maxRawButtonIndex be the size of\n buttonValues − 1."
+ "html": "Let maxRawButtonIndex be the size of\n buttonValues − 1."
},
{
- "html": "For each rawButtonIndex of the range from 0\n to maxRawButtonIndex:",
+ "html": "For each rawButtonIndex of the range from 0\n to maxRawButtonIndex:",
"rationale": "let",
"steps": [
{
@@ -251,7 +251,7 @@
"html": "Initialize gamepad.[[connected]]
to true
."
},
{
- "html": "Initialize gamepad.[[timestamp]]
to the\n current high resolution time."
+ "html": "Initialize gamepad.[[timestamp]]
to the\n current high resolution time."
},
{
"html": "Initialize gamepad.[[axes]]
to the result of\n initializing axes for gamepad."
@@ -276,13 +276,13 @@
"rationale": "let",
"steps": [
{
- "html": "Let navigator be gamepad's relevant global object's Navigator
object."
+ "html": "Let navigator be gamepad's relevant global object's Navigator
object."
},
{
- "html": "Let maxGamepadIndex be the size of\n navigator.[[gamepads]]
− 1."
+ "html": "Let maxGamepadIndex be the size of\n navigator.[[gamepads]]
− 1."
},
{
- "html": "For each gamepadIndex of the range from 0 to\n maxGamepadIndex:",
+ "html": "For each gamepadIndex of the range from 0 to\n maxGamepadIndex:",
"rationale": "if",
"steps": [
{
@@ -291,10 +291,10 @@
]
},
{
- "html": "Append null
to navigator.[[gamepads]]
."
+ "html": "Append null
to navigator.[[gamepads]]
."
},
{
- "html": "Return the size of\n navigator.[[gamepads]]
− 1."
+ "html": "Return the size of\n navigator.[[gamepads]]
− 1."
}
]
},
@@ -308,22 +308,22 @@
"html": "Let inputCount be the number of axis inputs exposed by the\n device represented by gamepad."
},
{
- "html": "Set gamepad.[[axisMinimums]]
to a list of\n unsigned long
values with size equal to inputCount\n containing minimum logical values for each of the axis inputs."
+ "html": "Set gamepad.[[axisMinimums]]
to a list of\n unsigned long
values with size equal to inputCount\n containing minimum logical values for each of the axis inputs."
},
{
- "html": "Set gamepad.[[axisMaximums]]
to a list of\n unsigned long
values with size equal to inputCount\n containing maximum logical values for each of the axis inputs."
+ "html": "Set gamepad.[[axisMaximums]]
to a list of\n unsigned long
values with size equal to inputCount\n containing maximum logical values for each of the axis inputs."
},
{
- "html": "Initialize unmappedInputList to be an empty list."
+ "html": "Initialize unmappedInputList to be an empty list."
},
{
- "html": "Initialize mappedIndexList to be an empty list."
+ "html": "Initialize mappedIndexList to be an empty list."
},
{
"html": "Initialize axesSize to be 0."
},
{
- "html": "For each rawInputIndex of the range from 0 to\n inputCount − 1:",
+ "html": "For each rawInputIndex of the range from 0 to\n inputCount − 1:",
"rationale": "if",
"steps": [
{
@@ -341,7 +341,7 @@
"html": "Set\n gamepad.[[axisMapping]]
[rawInputIndex] to\n canonicalIndex."
},
{
- "html": "Append canonicalIndex to\n mappedIndexList."
+ "html": "Append canonicalIndex to\n mappedIndexList."
},
{
"html": "If canonicalIndex + 1 is greater than axesSize,\n then set axesSize to canonicalIndex + 1."
@@ -356,11 +356,11 @@
"html": "Initialize axisIndex to be 0."
},
{
- "html": "For each rawInputIndex of unmappedInputList:",
+ "html": "For each rawInputIndex of unmappedInputList:",
"rationale": "while",
"steps": [
{
- "html": "While mappedIndexList contains axisIndex:",
+ "html": "While mappedIndexList contains axisIndex:",
"rationale": "increment",
"steps": [
{
@@ -372,7 +372,7 @@
"html": "Set gamepad.[[axisMapping]]
[rawInputIndex] to\n axisIndex."
},
{
- "html": "Append axisIndex to mappedIndexList."
+ "html": "Append axisIndex to mappedIndexList."
},
{
"html": "If axisIndex + 1 is greater than axesSize, then set\n axesSize to axisIndex + 1."
@@ -380,10 +380,10 @@
]
},
{
- "html": "Initialize axes to be an empty list."
+ "html": "Initialize axes to be an empty list."
},
{
- "html": "For each axisIndex of the range from 0 to\n axesSize − 1, append 0 to axes."
+ "html": "For each axisIndex of the range from 0 to\n axesSize − 1, append 0 to axes."
},
{
"html": "Return axes."
@@ -400,22 +400,22 @@
"html": "Let inputCount be the number of button inputs exposed by\n the device represented by gamepad."
},
{
- "html": "Set gamepad.[[buttonMinimums]]
to be a list of\n unsigned long
values with size equal to inputCount\n containing minimum logical values for each of the button inputs."
+ "html": "Set gamepad.[[buttonMinimums]]
to be a list of\n unsigned long
values with size equal to inputCount\n containing minimum logical values for each of the button inputs."
},
{
- "html": "Set gamepad.[[buttonMaximums]]
to be a list of\n unsigned long
values with size equal to inputCount\n containing maximum logical values for each of the button inputs."
+ "html": "Set gamepad.[[buttonMaximums]]
to be a list of\n unsigned long
values with size equal to inputCount\n containing maximum logical values for each of the button inputs."
},
{
- "html": "Initialize unmappedInputList to be an empty list."
+ "html": "Initialize unmappedInputList to be an empty list."
},
{
- "html": "Initialize mappedIndexList to be an empty list."
+ "html": "Initialize mappedIndexList to be an empty list."
},
{
"html": "Initialize buttonsSize to be 0."
},
{
- "html": "For each rawInputIndex of the range from 0 to\n inputCount − 1:",
+ "html": "For each rawInputIndex of the range from 0 to\n inputCount − 1:",
"rationale": "if",
"steps": [
{
@@ -433,7 +433,7 @@
"html": "Set\n gamepad.[[buttonMapping]]
[rawInputIndex]\n to canonicalIndex."
},
{
- "html": "Append canonicalIndex to\n mappedIndexList."
+ "html": "Append canonicalIndex to\n mappedIndexList."
},
{
"html": "If canonicalIndex + 1 is greater than\n buttonsSize, then set buttonsSize to canonicalIndex\n + 1."
@@ -451,11 +451,11 @@
"html": "Initialize buttonIndex to be 0."
},
{
- "html": "For each rawInputIndex of unmappedInputList:",
+ "html": "For each rawInputIndex of unmappedInputList:",
"rationale": "while",
"steps": [
{
- "html": "While mappedIndexList contains buttonIndex:",
+ "html": "While mappedIndexList contains buttonIndex:",
"rationale": "increment",
"steps": [
{
@@ -467,7 +467,7 @@
"html": "Set gamepad.[[buttonMapping]]
[rawInputIndex]\n to buttonIndex."
},
{
- "html": "Append buttonIndex to mappedIndexList."
+ "html": "Append buttonIndex to mappedIndexList."
},
{
"html": "If buttonIndex + 1 is greater than buttonsSize, then set\n buttonsSize to buttonIndex + 1."
@@ -475,10 +475,10 @@
]
},
{
- "html": "Initialize buttons to be an empty list."
+ "html": "Initialize buttons to be an empty list."
},
{
- "html": "For each buttonIndex of the range from 0 to\n buttonsSize − 1, append a new GamepadButton
to\n buttons."
+ "html": "For each buttonIndex of the range from 0 to\n buttonsSize − 1, append a new GamepadButton
to\n buttons."
},
{
"html": "Return buttons."
@@ -492,7 +492,7 @@
"rationale": "return",
"steps": [
{
- "html": "Return this.[[pressed]]
."
+ "html": "Return this.[[pressed]]
."
}
]
},
@@ -503,7 +503,7 @@
"rationale": "return",
"steps": [
{
- "html": "Return this.[[touched]]
."
+ "html": "Return this.[[touched]]
."
}
]
},
@@ -514,7 +514,7 @@
"rationale": "return",
"steps": [
{
- "html": "Return this.[[value]]
."
+ "html": "Return this.[[value]]
."
}
]
},
@@ -525,7 +525,7 @@
"rationale": "return",
"steps": [
{
- "html": "Return this.[[effects]]
."
+ "html": "Return this.[[effects]]
."
}
]
},
@@ -536,57 +536,57 @@
"rationale": ".algorithm",
"steps": [
{
- "html": "If params does not describe a valid effect of type type, return a promise rejected with a TypeError
."
+ "html": "If params does not describe a valid effect of type type, return a promise rejected with a TypeError
."
},
{
- "html": "Let document be the current settings object's\n relevant global object's associated Document
."
+ "html": "Let document be the current settings object's\n relevant global object's associated Document
."
},
{
- "html": "If document is null
or document is not fully active or document's visibility state is\n \"hidden\"
, return a promise rejected with an\n \"InvalidStateError
\" DOMException
."
+ "html": "If document is null
or document is not fully active or document's visibility state is\n \"hidden\"
, return a promise rejected with an\n \"InvalidStateError
\" DOMException
."
},
{
- "html": "If this.[[playingEffectPromise]]
\n is not null
:",
+ "html": "If this.[[playingEffectPromise]]
\n is not null
:",
"rationale": "let",
"steps": [
{
- "html": "Let effectPromise be\n this.[[playingEffectPromise]]
."
+ "html": "Let effectPromise be\n this.[[playingEffectPromise]]
."
},
{
- "html": "Set\n this.[[playingEffectPromise]]
to\n null
."
+ "html": "Set\n this.[[playingEffectPromise]]
to\n null
."
},
{
- "html": "Queue a global task on the relevant global object\n of this using the gamepad task source to resolve\n effectPromise with \"preempted
\"."
+ "html": "Queue a global task on the relevant global object\n of this using the gamepad task source to resolve\n effectPromise with \"preempted
\"."
}
]
},
{
- "html": "If this's gamepad's actuator cannot play effects with type type, return a promise rejected with reason\n NotSupportedError
."
+ "html": "If this's gamepad's actuator cannot play effects with type type, return a promise rejected with reason\n NotSupportedError
."
},
{
- "html": "Let [[playingEffectPromise]]
be a new promise."
+ "html": "Let [[playingEffectPromise]]
be a new promise."
},
{
- "html": "Let playEffectTimestamp be the current high resolution time given the document's relevant global object."
+ "html": "Let playEffectTimestamp be the current high resolution time given the document's relevant global object."
},
{
- "html": "Do the following steps in parallel:",
+ "html": "Do the following steps in parallel:",
"rationale": "issue",
"steps": [
{
"html": "Issue a haptic effect to the actuator with type,\n params, and the playEffectTimestamp."
},
{
- "html": "When the effect completes, if\n this.[[playingEffectPromise]]
is\n not null
, queue a global task on the relevant global object of this using the gamepad task source to run\n the following steps:",
+ "html": "When the effect completes, if\n this.[[playingEffectPromise]]
is\n not null
, queue a global task on the relevant global object of this using the gamepad task source to run\n the following steps:",
"rationale": "if",
"steps": [
{
- "html": "If\n this.[[playingEffectPromise]]
\n is null
, abort these steps."
+ "html": "If\n this.[[playingEffectPromise]]
\n is null
, abort these steps."
},
{
- "html": "Resolve\n this.[[playingEffectPromise]]
\n with \"complete
\"."
+ "html": "Resolve\n this.[[playingEffectPromise]]
\n with \"complete
\"."
},
{
- "html": "Set\n this.[[playingEffectPromise]]
\n to null
."
+ "html": "Set\n this.[[playingEffectPromise]]
\n to null
."
}
]
}
@@ -604,38 +604,38 @@
"rationale": ".algorithm",
"steps": [
{
- "html": "Let document be the current settings object's\n relevant global object's associated Document
."
+ "html": "Let document be the current settings object's\n relevant global object's associated Document
."
},
{
- "html": "If document is null
or document is not fully active or document's visibility state is\n \"hidden\"
, return a promise rejected with an\n \"InvalidStateError
\" DOMException
."
+ "html": "If document is null
or document is not fully active or document's visibility state is\n \"hidden\"
, return a promise rejected with an\n \"InvalidStateError
\" DOMException
."
},
{
- "html": "Let resetResultPromise be a new promise."
+ "html": "Let resetResultPromise be a new promise."
},
{
- "html": "If this.[[playingEffectPromise]]
\n is not null
, do the following steps in parallel:",
+ "html": "If this.[[playingEffectPromise]]
\n is not null
, do the following steps in parallel:",
"rationale": "let",
"steps": [
{
- "html": "Let effectPromise be\n this.[[playingEffectPromise]]
."
+ "html": "Let effectPromise be\n this.[[playingEffectPromise]]
."
},
{
- "html": "Stop haptic effects on this's gamepad's actuator."
+ "html": "Stop haptic effects on this's gamepad's actuator."
},
{
"html": "If the effect has been successfully stopped, do:",
"rationale": "if",
"steps": [
{
- "html": "If effectPromise and\n this.[[playingEffectPromise]]
\n are still the same, set\n this.[[playingEffectPromise]]
\n to null
."
+ "html": "If effectPromise and\n this.[[playingEffectPromise]]
\n are still the same, set\n this.[[playingEffectPromise]]
\n to null
."
},
{
- "html": "Queue a global task on the relevant global object of this using the gamepad task source to\n resolve effectPromise with\n \"preempted
\"."
+ "html": "Queue a global task on the relevant global object of this using the gamepad task source to\n resolve effectPromise with\n \"preempted
\"."
}
]
},
{
- "html": "Resolve resetResultPromise with\n \"complete
\""
+ "html": "Resolve resetResultPromise with\n \"complete
\""
}
]
},
@@ -659,21 +659,21 @@
]
},
{
- "html": "When the document's visibility state becomes\n \"hidden\"
, run these steps for each GamepadHapticActuator
\n actuator:",
+ "html": "When the document's visibility state becomes\n \"hidden\"
, run these steps for each GamepadHapticActuator
\n actuator:",
"rationale": "if",
"steps": [
{
"html": "If actuator.[[playingEffectPromise]]
\n is null
, abort these steps."
},
{
- "html": "Queue a global task on the relevant global object of\n actuator using the gamepad task source to run the following\n steps:",
+ "html": "Queue a global task on the relevant global object of\n actuator using the gamepad task source to run the following\n steps:",
"rationale": "if",
"steps": [
{
"html": "If\n actuator.[[playingEffectPromise]]
is\n null
, abort these steps."
},
{
- "html": "Resolve\n actuator.[[playingEffectPromise]]
\n with \"preempted
\"."
+ "html": "Resolve\n actuator.[[playingEffectPromise]]
\n with \"preempted
\"."
},
{
"html": "Set\n actuator.[[playingEffectPromise]]
to\n null
."
@@ -698,7 +698,7 @@
"html": "Let supportedEffectsList
be an empty list."
},
{
- "html": "For each enum value type of\n GamepadHapticEffectType
, if the user agent can send a command\n to initiate effects of that type on that actuator, append type to\n supportedEffectsList
."
+ "html": "For each enum value type of\n GamepadHapticEffectType
, if the user agent can send a command\n to initiate effects of that type on that actuator, append type to\n supportedEffectsList
."
},
{
"html": "Set gamepadHapticActuator.[[effects]]
\n to supportedEffectsList
."
@@ -710,25 +710,25 @@
"rationale": "let",
"steps": [
{
- "html": "Let doc be the current global object's\n associated Document
."
+ "html": "Let doc be the current global object's\n associated Document
."
},
{
- "html": "If doc is null
or doc is not fully active,\n then return an empty list."
+ "html": "If doc is null
or doc is not fully active,\n then return an empty list."
},
{
- "html": "If doc is not allowed to use the \"gamepad\"
permission,\n then throw a \"SecurityError
\" DOMException
and\n abort these steps."
+ "html": "If doc is not allowed to use the \"gamepad\"
permission,\n then throw a \"SecurityError
\" DOMException
and\n abort these steps."
},
{
- "html": "If this.[[hasGamepadGesture]]
is false
, then\n return an empty list."
+ "html": "If this.[[hasGamepadGesture]]
is false
, then\n return an empty list."
},
{
- "html": "Let now be the current high resolution time."
+ "html": "Let now be the current high resolution time."
},
{
- "html": "Let gamepads be an empty list."
+ "html": "Let gamepads be an empty list."
},
{
- "html": "For each gamepad of\n this.[[gamepads]]
:",
+ "html": "For each gamepad of\n this.[[gamepads]]
:",
"rationale": "if",
"steps": [
{
@@ -744,7 +744,7 @@
]
},
{
- "html": "Append gamepad to gamepads."
+ "html": "Append gamepad to gamepads."
}
]
},
@@ -758,20 +758,20 @@
"rationale": "let",
"steps": [
{
- "html": "Let document be the current global object's\n associated Document
; otherwise null
."
+ "html": "Let document be the current global object's\n associated Document
; otherwise null
."
},
{
- "html": "If document is not null
and is not allowed to use the\n \"gamepad\"
permission, then abort these steps."
+ "html": "If document is not null
and is not allowed to use the\n \"gamepad\"
permission, then abort these steps."
},
{
- "html": "Queue a task on the gamepad task source to perform the\n following steps:",
+ "html": "Queue a task on the gamepad task source to perform the\n following steps:",
"rationale": "let",
"steps": [
{
"html": "Let gamepad be a new Gamepad
representing the\n gamepad."
},
{
- "html": "Let navigator be gamepad's relevant global object's Navigator
object."
+ "html": "Let navigator be gamepad's relevant global object's Navigator
object."
},
{
"html": "Set\n navigator.[[gamepads]]
[gamepad.index
]\n to gamepad."
@@ -784,7 +784,7 @@
"html": "Set gamepad.[[exposed]]
to true
."
},
{
- "html": "If document is not null
and is fully active, then fire an event named gamepadconnected
at\n gamepad's relevant global object using GamepadEvent
\n with its gamepad
attribute initialized to\n gamepad."
+ "html": "If document is not null
and is fully active, then fire an event named gamepadconnected
at\n gamepad's relevant global object using GamepadEvent
\n with its gamepad
attribute initialized to\n gamepad."
}
]
}
@@ -800,26 +800,26 @@
"html": "Let gamepad be the Gamepad
representing the\n unavailable device."
},
{
- "html": "Queue a task on the gamepad task source to perform the\n following steps:",
+ "html": "Queue a task on the gamepad task source to perform the\n following steps:",
"rationale": "set",
"steps": [
{
"html": "Set gamepad.[[connected]]
to false
."
},
{
- "html": "Let document be gamepad's relevant global object's associated Document
; otherwise null
."
+ "html": "Let document be gamepad's relevant global object's associated Document
; otherwise null
."
},
{
- "html": "If gamepad.[[exposed]]
is true
and document\n is not null
and is fully active, then fire an event named gamepaddisconnected
at gamepad's relevant global object using GamepadEvent
with its\n gamepad
attribute initialized to gamepad."
+ "html": "If gamepad.[[exposed]]
is true
and document\n is not null
and is fully active, then fire an event named gamepaddisconnected
at gamepad's relevant global object using GamepadEvent
with its\n gamepad
attribute initialized to gamepad."
},
{
- "html": "Let navigator be gamepad's relevant global object's Navigator
object."
+ "html": "Let navigator be gamepad's relevant global object's Navigator
object."
},
{
"html": "Set\n navigator.[[gamepads]]
[gamepad.index
]\n to null
."
},
{
- "html": "While navigator.[[gamepads]]
is not empty and the last item of\n navigator.[[gamepads]]
is null
, remove\n the last item of navigator.[[gamepads]]
."
+ "html": "While navigator.[[gamepads]]
is not empty and the last item of\n navigator.[[gamepads]]
is null
, remove\n the last item of navigator.[[gamepads]]
."
}
]
}
diff --git a/ed/algorithms/hr-time-3.json b/ed/algorithms/hr-time-3.json
index 58aa509b4be6..d9a518faf48e 100644
--- a/ed/algorithms/hr-time-3.json
+++ b/ed/algorithms/hr-time-3.json
@@ -24,35 +24,35 @@
{
"name": "environment settings object/current monotonic time",
"href": "https://w3c.github.io/hr-time/#dfn-current-monotonic-time",
- "html": "For measuring time within a single UA execution when an environment settings object's time origin isn't\n an appropriate base for comparison, create moments using an\n environment settings object's current monotonic time. An environment settings object\n settingsObject's current monotonic time\n is the result of the following steps:",
+ "html": "For measuring time within a single UA execution when an environment settings object's time origin isn't\n an appropriate base for comparison, create moments using an\n environment settings object's current monotonic time. An environment settings object\n settingsObject's current monotonic time\n is the result of the following steps:",
"rationale": "let",
"steps": [
{
"html": "Let unsafeMonotonicTime be\n the monotonic clock's unsafe current time."
},
{
- "html": "Return the result of calling coarsen time with\n unsafeMonotonicTime and settingsObject's cross-origin isolated capability."
+ "html": "Return the result of calling coarsen time with\n unsafeMonotonicTime and settingsObject's cross-origin isolated capability."
}
]
},
{
"name": "environment settings object/current wall time",
"href": "https://w3c.github.io/hr-time/#dfn-eso-current-wall-time",
- "html": "An environment settings object settingsObject's current\n wall time is the result of the following steps:",
+ "html": "An environment settings object settingsObject's current\n wall time is the result of the following steps:",
"rationale": "let",
"steps": [
{
"html": "Let unsafeWallTime be the wall clock's unsafe current time."
},
{
- "html": "Return the result of calling coarsen time with unsafeWallTime\n and settingsObject's cross-origin isolated capability."
+ "html": "Return the result of calling coarsen time with unsafeWallTime\n and settingsObject's cross-origin isolated capability."
}
]
},
{
"name": "estimated monotonic time of the Unix epoch",
"href": "https://w3c.github.io/hr-time/#dfn-estimated-monotonic-time-of-the-unix-epoch",
- "html": "Each group of environment settings objects that could possibly\n communicate in any way has an estimated monotonic time of the Unix\n epoch, a moment on the monotonic clock, whose value is\n initialized by the following steps:",
+ "html": "Each group of environment settings objects that could possibly\n communicate in any way has an estimated monotonic time of the Unix\n epoch, a moment on the monotonic clock, whose value is\n initialized by the following steps:",
"rationale": "let",
"steps": [
{
@@ -72,11 +72,11 @@
{
"name": "get time origin timestamp",
"href": "https://w3c.github.io/hr-time/#dfn-get-time-origin-timestamp",
- "html": "To get time origin timestamp, given a global object\n global, run the following steps, which return a\n duration:",
+ "html": "To get time origin timestamp, given a global object\n global, run the following steps, which return a\n duration:",
"rationale": "let",
"steps": [
{
- "html": "\n Let timeOrigin be global's\n relevant settings object's time origin.\n
" + "html": "\n Let timeOrigin be global's\n relevant settings object's time origin.\n
" }, { "html": "Return the duration from the estimated monotonic time of the Unix epoch to timeOrigin." @@ -90,13 +90,13 @@ "rationale": "let", "steps": [ { - "html": "Let time resolution be 100 microseconds, or a higher\n implementation-defined value." + "html": "Let time resolution be 100 microseconds, or a higher\n implementation-defined value." }, { - "html": "If crossOriginIsolatedCapability is true, set time resolution\n to be 5 microseconds, or a higher implementation-defined\n value." + "html": "If crossOriginIsolatedCapability is true, set time resolution\n to be 5 microseconds, or a higher implementation-defined\n value." }, { - "html": "In an implementation-defined manner, coarsen and\n potentially jitter timestamp such that its resolution will not\n exceed time resolution." + "html": "In an implementation-defined manner, coarsen and\n potentially jitter timestamp such that its resolution will not\n exceed time resolution." }, { "html": "Return timestamp as a moment." @@ -106,11 +106,11 @@ { "name": "relative high resolution time", "href": "https://w3c.github.io/hr-time/#dfn-relative-high-resolution-time", - "html": "The relative high resolution time given an\n unsafe moment from the monotonic clock time and a global object global, is the duration returned from the following steps:", + "html": "The relative high resolution time given an\n unsafe moment from the monotonic clock time and a global object global, is the duration returned from the following steps:", "rationale": "let", "steps": [ { - "html": "Let coarse time be the result of\n calling coarsen time with time and global's relevant settings object's cross-origin isolated capability." + "html": "Let coarse time be the result of\n calling coarsen time with time and global's relevant settings object's cross-origin isolated capability." }, { "html": "Return the relative high resolution coarse time for coarse\n time and global." diff --git a/ed/algorithms/image-resource.json b/ed/algorithms/image-resource.json index 1f922b9ab56e..5753fea7b252 100644 --- a/ed/algorithms/image-resource.json +++ b/ed/algorithms/image-resource.json @@ -11,20 +11,20 @@ "rationale": "let", "steps": [ { - "html": "Let base URL be the relevant settings object’s api base url from where this dictionary is being\n used." + "html": "Let base URL be the relevant settings object’s api base url from where this dictionary is being\n used." }, { "html": "Let image be a new image resource." }, { - "html": "Set image's src to the result of URL parsing input.src
and base URL. If\n parsing the URL fails, throw a TypeError
."
+ "html": "Set image's src to the result of URL parsing input.src
and base URL. If\n parsing the URL fails, throw a TypeError
."
},
{
"html": "If input's sizes
member is present:",
"rationale": "set",
"steps": [
{
- "html": "Set image's sizes to the\n result of parsing input.sizes
as if it was a\n sizes
attribute of a link
element whose rel
\n attribute contains the token icon
. If parsing fails, throw a\n TypeError
."
+ "html": "Set image's sizes to the\n result of parsing input.sizes
as if it was a\n sizes
attribute of a link
element whose rel
\n attribute contains the token icon
. If parsing fails, throw a\n TypeError
."
}
]
},
@@ -33,7 +33,7 @@
"rationale": "if",
"steps": [
{
- "html": "If type
is not an image MIME Type, throw\n a TypeError
."
+ "html": "If type
is not an image MIME Type, throw\n a TypeError
."
},
{
"html": "Set image's type to\n input.type
."
@@ -51,33 +51,33 @@
{
"name": "process an image resource from JSON",
"href": "https://w3c.github.io/image-resource/#dfn-process-an-image-resource-from-json",
- "html": "To process an image resource from JSON, given\n a JSON Object input and a URL base. It returns an\n ordered map.",
+ "html": "To process an image resource from JSON, given\n a JSON Object input and a URL base. It returns an\n ordered map.",
"rationale": "if",
"steps": [
{
- "html": "If input is not of type object, return failure."
+ "html": "If input is not of type object, return failure."
},
{
- "html": "If input[\"src\"] is not of type string, return failure."
+ "html": "If input[\"src\"] is not of type string, return failure."
},
{
- "html": "Let src be the result of parsing\n input[\"src\"] with base as the base URL."
+ "html": "Let src be the result of parsing\n input[\"src\"] with base as the base URL."
},
{
"html": "If src is failure, return failure."
},
{
- "html": "Let image be an new ordered map."
+ "html": "Let image be an new ordered map."
},
{
"html": "Set image[\"src\"] to src."
},
{
- "html": "If type of input[\"sizes\"] is a string, and its length is\n greater than zero:",
+ "html": "If type of input[\"sizes\"] is a string, and its length is\n greater than zero:",
"rationale": "set",
"steps": [
{
- "html": "Set sizes to the result of parsing input[\"sizes\"] as\n if it was a sizes
attribute of a link
element whose\n rel
attribute contains the token icon
."
+ "html": "Set sizes to the result of parsing input[\"sizes\"] as\n if it was a sizes
attribute of a link
element whose\n rel
attribute contains the token icon
."
},
{
"html": "If sizes is failure, return failure."
@@ -88,17 +88,17 @@
]
},
{
- "html": "If input[\"type\"] is a string, and it has a length greater\n than zero:",
+ "html": "If input[\"type\"] is a string, and it has a length greater\n than zero:",
"rationale": "let",
"steps": [
{
- "html": "Let mime be the result of parsing\n input[\"type\"]."
+ "html": "Let mime be the result of parsing\n input[\"type\"]."
},
{
"html": "If mime is failure, return failure."
},
{
- "html": "Set image[\"type\"] to the essence of mime."
+ "html": "Set image[\"type\"] to the essence of mime."
}
]
},
@@ -113,7 +113,7 @@
{
"name": "fetching an image resource",
"href": "https://w3c.github.io/image-resource/#dfn-fetching-an-image-resource",
- "html": "The steps for fetching an image resource are\n given by the following algorithm. The algorithm takes an image resource image, and an optional Request request. It returns a\n Response.",
+ "html": "The steps for fetching an image resource are\n given by the following algorithm. The algorithm takes an image resource image, and an optional Request request. It returns a\n Response.",
"rationale": "if",
"steps": [
{
@@ -121,35 +121,35 @@
"rationale": "set",
"steps": [
{
- "html": "Set request to a new Request."
+ "html": "Set request to a new Request."
},
{
- "html": "Set URL to image's src."
+ "html": "Set URL to image's src."
},
{
- "html": "Set Destination to \"image\"."
+ "html": "Set Destination to \"image\"."
},
{
- "html": "Set Client to the context object's relevant settings object."
+ "html": "Set Client to the context object's relevant settings object."
}
]
},
{
- "html": "If request's Client is null, throw a TypeError
."
+ "html": "If request's Client is null, throw a TypeError
."
},
{
- "html": "Perform a fetch using request and return the Response."
+ "html": "Perform a fetch using request and return the Response."
}
]
},
{
"name": "deriving the accessible name",
"href": "https://w3c.github.io/image-resource/#dfn-deriving-the-accessible-name",
- "html": "The steps to derive the\n accessible name for an image resource resource are as\n follows. It returns a string.",
+ "html": "The steps to derive the\n accessible name for an image resource resource are as\n follows. It returns a string.",
"rationale": "if",
"steps": [
{
- "html": "If resource[\"label\"] is a string, return input[\"label\"]."
+ "html": "If resource[\"label\"] is a string, return input[\"label\"]."
},
{
"html": "Otherwise, if image provides an embedded accessible name,\n return the embedded accessible name."
diff --git a/ed/algorithms/input-events-2.json b/ed/algorithms/input-events-2.json
index 5a22c06d49e1..2c0260b3cc2e 100644
--- a/ed/algorithms/input-events-2.json
+++ b/ed/algorithms/input-events-2.json
@@ -8,19 +8,19 @@
"rationale": "if",
"steps": [
{
- "html": "The DataTransfer
object's drag data store is in\n read-only\n mode. [HTML]"
+ "html": "The DataTransfer
object's drag data store is in\n read-only\n mode. [HTML]"
},
{
- "html": "If the pasted content is a file, the DataTransfer
\n object's drag data store\n item list contains one entry with the drag data\n item type string being the file's mime type, whose\n kind is\n File, and whose data is a File object corresponding to the\n pasted file. [HTML]"
+ "html": "If the pasted content is a file, the DataTransfer
\n object's drag data store\n item list contains one entry with the drag data\n item type string being the file's mime type, whose\n kind is\n File, and whose data is a File object corresponding to the\n pasted file. [HTML]"
},
{
- "html": "The DataTransfer
object's drag data store\n item list contains one entry with the drag data\n item type string \"text/html\"
, whose\n kind is\n Plain Unicode string, and whose data is a HTML\n representation of the content that is in the clipboard, or\n in the kill buffer, to be dropped or otherwise the\n content that is to be added. [HTML]"
+ "html": "The DataTransfer
object's drag data store\n item list contains one entry with the drag data\n item type string \"text/html\"
, whose\n kind is\n Plain Unicode string, and whose data is a HTML\n representation of the content that is in the clipboard, or\n in the kill buffer, to be dropped or otherwise the\n content that is to be added. [HTML]"
},
{
- "html": "The DataTransfer
object's drag data store\n item list contains one entry with the drag data\n item type string \"text/plain\"
, whose\n kind is\n Plain Unicode string, and whose data is a plain text\n representation of the content that is to be pasted, dropped\n or otherwise added. [HTML]"
+ "html": "The DataTransfer
object's drag data store\n item list contains one entry with the drag data\n item type string \"text/plain\"
, whose\n kind is\n Plain Unicode string, and whose data is a plain text\n representation of the content that is to be pasted, dropped\n or otherwise added. [HTML]"
},
{
- "html": "If the content to be pasted is a link, the\n DataTransfer
object's drag data store\n item list contains one entry with the drag data\n item type string \"text/uri-list\"
, whose\n kind is\n Plain Unicode string, and whose data is a plain text\n representation of the link that is dropped or otherwise\n added. [HTML]"
+ "html": "If the content to be pasted is a link, the\n DataTransfer
object's drag data store\n item list contains one entry with the drag data\n item type string \"text/uri-list\"
, whose\n kind is\n Plain Unicode string, and whose data is a plain text\n representation of the link that is dropped or otherwise\n added. [HTML]"
}
]
}
diff --git a/ed/algorithms/is-input-pending.json b/ed/algorithms/is-input-pending.json
index 8d7b2b9efd4c..57211728fd7c 100644
--- a/ed/algorithms/is-input-pending.json
+++ b/ed/algorithms/is-input-pending.json
@@ -15,7 +15,7 @@
"html": "If isInputPendingOptions is undefined, assign it to a newly-instantiated IsInputPendingOptions
with default parameters."
},
{
- "html": "Let queue be the task queue to which the user interaction task source is associated on the surrounding agent's event loop."
+ "html": "Let queue be the task queue to which the user interaction task source is associated on the surrounding agent's event loop."
},
{
"html": "For each task on queue:",
@@ -25,7 +25,7 @@
"html": "If the user agent considers task to be a continuous event task and includeContinuous
is false in isInputPendingOptions, continue."
},
{
- "html": "If the user agent predicts that task will dispatch an event to an EventTarget in a cross-origin window, continue."
+ "html": "If the user agent predicts that task will dispatch an event to an EventTarget in a cross-origin window, continue."
},
{
"html": "The user agent MAY set pendingResult to true."
diff --git a/ed/algorithms/js-self-profiling.json b/ed/algorithms/js-self-profiling.json
index 2b98e80113ec..2cb913c3aa3b 100644
--- a/ed/algorithms/js-self-profiling.json
+++ b/ed/algorithms/js-self-profiling.json
@@ -96,7 +96,7 @@
"html": "Let attributedScript be the script obtained from attributedScriptOrModule.[[HostDefined]]."
},
{
- "html": "If attributedScript is a classic script and its muted errors boolean is equal to true
, return undefined
.\n \n
" + "html": "If attributedScript is a classic script and its muted errors boolean is equal totrue
, return undefined
.\n \n
" }, { "html": "Let frame be a newProfilerFrame
."
@@ -166,20 +166,20 @@
"rationale": "if",
"steps": [
{
- "html": "If the associated profiling session's state is stopped
, return a promise rejected with an \"InvalidStateError\"
DOMException."
+ "html": "If the associated profiling session's state is stopped
, return a promise rejected with an \"InvalidStateError\"
DOMException."
},
{
"html": "Set the profiling session's state to stopped
."
},
{
- "html": "Let p be a new promise."
+ "html": "Let p be a new promise."
},
{
- "html": "Run the following steps in parallel:",
+ "html": "Run the following steps in parallel:",
"rationale": "perform",
"steps": [
{
- "html": "Perform any implementation-defined work to stop the profiling session."
+ "html": "Perform any implementation-defined work to stop the profiling session."
},
{
"html": "Resolve p with the ProfilerTrace
associated with the profiler's profiling session."
@@ -196,7 +196,7 @@
"rationale": "let",
"steps": [
{
- "html": "Let sessions be a list of all profiling sessions created in the current browsing context."
+ "html": "Let sessions be a list of all profiling sessions created in the current browsing context."
},
{
"html": "For each session of sessions:",
diff --git a/ed/algorithms/json-ld11-api.json b/ed/algorithms/json-ld11-api.json
index 63092ed5a08e..8bf1ed3f84f7 100644
--- a/ed/algorithms/json-ld11-api.json
+++ b/ed/algorithms/json-ld11-api.json
@@ -2905,7 +2905,7 @@
"rationale": ".algorithm",
"steps": [
{
- "html": "Create a new Promise
promise and return it.\n The following steps are then deferred."
+ "html": "Create a new Promise
promise and return it.\n The following steps are then deferred."
},
{
"html": "If the provided input\n is a RemoteDocument
,\n initialize remote document to input."
@@ -2955,7 +2955,7 @@
"rationale": ".algorithm",
"steps": [
{
- "html": "Create a new Promise
promise and return it.\n The following steps are then deferred."
+ "html": "Create a new Promise
promise and return it.\n The following steps are then deferred."
},
{
"html": "If the provided input\n is a RemoteDocument
,\n initialize remote document to input."
@@ -3002,7 +3002,7 @@
"rationale": ".algorithm",
"steps": [
{
- "html": "Create a new Promise
promise and return it.\n The following steps are then deferred."
+ "html": "Create a new Promise
promise and return it.\n The following steps are then deferred."
},
{
"html": "If the provided input\n is a RemoteDocument
,\n initialize remote document to input."
@@ -3037,7 +3037,7 @@
"rationale": ".algorithm",
"steps": [
{
- "html": "Create a new Promise
promise and return it.\n The following steps are then deferred."
+ "html": "Create a new Promise
promise and return it.\n The following steps are then deferred."
},
{
"html": "Set expanded result to the result of invoking the\n Serialize RDF as JSON-LD Algorithm method\n using dataset\n and options."
@@ -3054,7 +3054,7 @@
"rationale": ".algorithm",
"steps": [
{
- "html": "Create a new Promise
promise and return it.\n The following steps are then deferred."
+ "html": "Create a new Promise
promise and return it.\n The following steps are then deferred."
},
{
"html": "Set expanded input to the result of using the\n expand()
method\n using input\n and options\n with ordered
set to false
,\n and extractAllScripts
defaulting to true
."
@@ -3079,11 +3079,11 @@
{
"name": "LoadDocumentCallback",
"href": "https://w3c.github.io/json-ld-api/#dom-loaddocumentcallback",
- "html": "The LoadDocumentCallback
defines a callback that custom document loaders\n have to implement to be used to retrieve remote documents and contexts.\n The callback returns a Promise
resolving to a RemoteDocument
.\n On failure, the Promise
with a JsonLdError
having an appropriate error code
.",
+ "html": "The LoadDocumentCallback
defines a callback that custom document loaders\n have to implement to be used to retrieve remote documents and contexts.\n The callback returns a Promise
resolving to a RemoteDocument
.\n On failure, the Promise
with a JsonLdError
having an appropriate error code
.",
"rationale": ".algorithm",
"steps": [
{
- "html": "Create a new Promise
promise and return it.\n The following steps are then deferred."
+ "html": "Create a new Promise
promise and return it.\n The following steps are then deferred."
},
{
"html": "Set document to the body retrieved from\n the resource identified by url
,\n or by otherwise locating a resource associated with url
.\n When requesting remote documents the request MUST prefer Content-Type application/ld+json
\n followed by application/json
.\n\n If requestProfile
is set,\n it MUST be added as a profile on application/ld+json
.
Processors MAY include other media types using a +json
suffix as defined in [RFC6839].
ordered
flag is true
:",
+ "html": "For each id and associated node object node\n from the set of matched subjects, in code point order by id\n if the optional ordered
flag is true
:",
"rationale": "initialize",
"steps": [
{
@@ -78,7 +78,7 @@
"html": "If frame has an @included
entry,\n invoke the algorithm\n using a copy of state with the value of embedded flag set to false
,\n subjects, frame,\n output as parent, and @included
as active property."
},
{
- "html": "For each property and objects in node,\n in code point order by property\n if the optional ordered
flag is true
:",
+ "html": "For each property and objects in node,\n in code point order by property\n if the optional ordered
flag is true
:",
"rationale": "if",
"steps": [
{
@@ -268,41 +268,41 @@
{
"name": "JsonLdProcessor/frame()",
"href": "https://w3c.github.io/json-ld-framing/#dom-jsonldprocessor-frame",
- "html": "The JsonLdProcessor
interface\n frame()
method\n Frames\n the given input
using frame\n according to the steps in the Framing\n Algorithm:",
+ "html": "The JsonLdProcessor
interface\n frame()
method\n Frames\n the given input
using frame\n according to the steps in the Framing\n Algorithm:",
"rationale": ".algorithm",
"steps": [
{
- "html": "Create a new Promise
promise and return it. The\n following steps are then executed asynchronously."
+ "html": "Create a new Promise
promise and return it. The\n following steps are then executed asynchronously."
},
{
- "html": "If the provided input\n is a RemoteDocument
,\n initialize remote document to input."
+ "html": "If the provided input\n is a RemoteDocument
,\n initialize remote document to input."
},
{
- "html": "Otherwise, if the provided input\n is a string representing the IRI of a remote document, await and dereference it as remote document\n using LoadDocumentCallback
, passing input\n for url,\n and the extractAllScripts
option from options\n for extractAllScripts."
+ "html": "Otherwise, if the provided input\n is a string representing the IRI of a remote document, await and dereference it as remote document\n using LoadDocumentCallback
, passing input\n for url,\n and the extractAllScripts
option from options\n for extractAllScripts."
},
{
- "html": "Set expanded input to the result of using the\n expand
()
\n method either remote document\n or input\n if there is no remote document\n for input\n and options\n with ordered
set to false
."
+ "html": "Set expanded input to the result of using the\n expand
()
\n method either remote document\n or input\n if there is no remote document\n for input\n and options\n with ordered
set to false
."
},
{
- "html": "If the provided frame\n is a RemoteDocument
,\n initialize remote frame to frame."
+ "html": "If the provided frame\n is a RemoteDocument
,\n initialize remote frame to frame."
},
{
- "html": "Otherwise, if the provided frame\n is a string representing the IRI of a remote document, await and dereference it as remote frame\n using LoadDocumentCallback
, passing frame\n for url,\n and the extractAllScripts
option from options\n for extractAllScripts."
+ "html": "Otherwise, if the provided frame\n is a string representing the IRI of a remote document, await and dereference it as remote frame\n using LoadDocumentCallback
, passing frame\n for url,\n and the extractAllScripts
option from options\n for extractAllScripts."
},
{
- "html": "Set expanded frame to the result of using the\n expand
()
\n method either remote frame\n or frame\n if there is no remote frame\n for input\n options\n the frameExpansion
option set to true
,\n and theordered
set to false
."
+ "html": "Set expanded frame to the result of using the\n expand
()
\n method either remote frame\n or frame\n if there is no remote frame\n for input\n options\n the frameExpansion
option set to true
,\n and theordered
set to false
."
},
{
"html": "Set context to the value of @context
\n from remote frame or frame, if it exists, or to\n a new empty context, otherwise."
},
{
- "html": "Set context base to the documentUrl
\n from remote frame, if available, otherwise to the base
option\n from options."
+ "html": "Set context base to the documentUrl
\n from remote frame, if available, otherwise to the base
option\n from options."
},
{
"html": "Initialize active context\n to the result of the Context Processing algorithm\n passing a new empty context as active context\n context as local context,\n and context base as base URL."
},
{
- "html": "Initialize an active context using context;\n the base IRI is set to\n the base
option from\n options, if set;\n otherwise, if the\n compactToRelative
option is\n true, to the IRI of the currently being processed\n document, if available; otherwise to null
."
+ "html": "Initialize an active context using context;\n the base IRI is set to\n the base
option from\n options, if set;\n otherwise, if the\n compactToRelative
option is\n true, to the IRI of the currently being processed\n document, if available; otherwise to null
."
},
{
"html": "Initialize inverse context to the result of performing the\n Inverse Context Creation algorithm."
@@ -359,7 +359,7 @@
"html": "Recursively, replace all entries in results\n where the key is @preserve
with the first value of that entry."
},
{
- "html": "Set compacted results to the result of using the\n compact
()
method using\n active context,\n inverse context,\n null
for active property,\n results as element,,\n and the compactArrays
\n and ordered
\n flags from options.",
+ "html": "Set compacted results to the result of using the\n compact
()
method using\n active context,\n inverse context,\n null
for active property,\n results as element,,\n and the compactArrays
\n and ordered
\n flags from options.",
"rationale": "if",
"steps": [
{
diff --git a/ed/algorithms/manifest-incubations.json b/ed/algorithms/manifest-incubations.json
index 9cdf4656be67..0ea1fc0bf3e8 100644
--- a/ed/algorithms/manifest-incubations.json
+++ b/ed/algorithms/manifest-incubations.json
@@ -5,18 +5,18 @@
},
"algorithms": [
{
- "html": "The following steps are added to the processing extension-point in \n determining the web app's chosen display mode:",
+ "html": "The following steps are added to the processing extension-point in \n determining the web app's chosen display mode:",
"rationale": "for",
"steps": [
{
- "html": "For each candidate_display_mode of\n manifest.display_override
member:",
+ "html": "For each candidate_display_mode of\n manifest.display_override
member:",
"rationale": ".algorithm",
"steps": [
{
"html": "If display\n modes list contains candidate_display_mode,\n return that candidate_display_mode"
},
{
- "html": "If candidate_display_mode is window-controls-overlay and the user agent supports this,\n then return that candidate_display_mode."
+ "html": "If candidate_display_mode is window-controls-overlay and the user agent supports this,\n then return that candidate_display_mode."
},
{
"html": "If candidate_display_mode is tabbed and the user agent supports this, then return that\n candidate_display_mode."
@@ -26,7 +26,7 @@
]
},
{
- "html": "To facilitate all of the new extension and incubation features added by\n this specification, the user agent SHOULD run the following during the\n extension\n point in processing a manifest (having access to URL\n document URL, URL manifest URL, ordered map\n json, and ordered map manifest):",
+ "html": "To facilitate all of the new extension and incubation features added by\n this specification, the user agent SHOULD run the following during the\n extension\n point in processing a manifest (having access to URL\n document URL, URL manifest URL, ordered map\n json, and ordered map manifest):",
"rationale": "process",
"steps": [
{
@@ -47,17 +47,17 @@
]
},
{
- "html": "When navigating the top-level traversable\n associated with a home tab context to a URL url that\n is outside of home tab scope, the following steps are run:",
+ "html": "When navigating the top-level traversable\n associated with a home tab context to a URL url that\n is outside of home tab scope, the following steps are run:",
"rationale": "let",
"steps": [
{
- "html": "Let top-level traversable tab be the\n result of choosing a navigable with a target of\n \"_blank\"
and noopener true."
+ "html": "Let top-level traversable tab be the\n result of choosing a navigable with a target of\n \"_blank\"
and noopener true."
},
{
- "html": "Instead of navigating the home-tab traversable,\n navigate tab with the same parameters."
+ "html": "Instead of navigating the home-tab traversable,\n navigate tab with the same parameters."
},
{
- "html": "Apply the current application manifest to\n tab's top-level browsing context."
+ "html": "Apply the current application manifest to\n tab's top-level browsing context."
},
{
"html": "The user agent SHOULD place tab in the same window as the\n home-tab navigable."
@@ -68,14 +68,14 @@
]
},
{
- "html": "When navigating a top-level traversable with a\n display mode of tabbed that is not associated\n with a home tab context (i.e. a non-home tab) to a URL\n url that is within home tab scope, the following steps\n are run:",
+ "html": "When navigating a top-level traversable with a\n display mode of tabbed that is not associated\n with a home tab context (i.e. a non-home tab) to a URL\n url that is within home tab scope, the following steps\n are run:",
"rationale": "let",
"steps": [
{
- "html": "Let hometab be the top-level traversable of the home tab context associated with the\n current window."
+ "html": "Let hometab be the top-level traversable of the home tab context associated with the\n current window."
},
{
- "html": "Instead of navigating the top-level traversable,\n navigate hometab with the same parameters."
+ "html": "Instead of navigating the top-level traversable,\n navigate hometab with the same parameters."
},
{
"html": "Focus hometab."
@@ -87,7 +87,7 @@
"rationale": "create",
"steps": [
{
- "html": "Create a new application context in the current window and\n focus it."
+ "html": "Create a new application context in the current window and\n focus it."
},
{
"html": "Navigate it to the value of the url
member of\n new_tab_button
."
@@ -97,14 +97,14 @@
{
"name": "process the tab_strip member",
"href": "https://wicg.github.io/manifest-incubations/#dfn-process-the-tab_strip-member",
- "html": "To process the tab_strip
member, given ordered map\n json, ordered map manifest, and\n URL manifest URL, run the following during the\n \n extension point in processing a manifest:",
+ "html": "To process the tab_strip
member, given ordered map\n json, ordered map manifest, and\n URL manifest URL, run the following during the\n \n extension point in processing a manifest:",
"rationale": "set",
"steps": [
{
- "html": "Set manifest[\"tab_strip\"] to a new ordered map."
+ "html": "Set manifest[\"tab_strip\"] to a new ordered map."
},
{
- "html": "If json[\"tab_strip\"] does not exist or json[\"tab_strip\"] is\n not an ordered map:",
+ "html": "If json[\"tab_strip\"] does not exist or json[\"tab_strip\"] is\n not an ordered map:",
"rationale": "set",
"steps": [
{
@@ -126,14 +126,14 @@
{
"name": "process the home_tab member",
"href": "https://wicg.github.io/manifest-incubations/#dfn-process-the-home_tab-member",
- "html": "To process the home_tab
member, given ordered map\n json tab strip, ordered map manifest tab\n strip, and URL manifest URL, run the\n following:",
+ "html": "To process the home_tab
member, given ordered map\n json tab strip, ordered map manifest tab\n strip, and URL manifest URL, run the\n following:",
"rationale": "if",
"steps": [
{
- "html": "If json tab strip[\"home_tab\"] does not exist or json tab\n strip[\"home_tab\"] not an ordered map, return."
+ "html": "If json tab strip[\"home_tab\"] does not exist or json tab\n strip[\"home_tab\"] not an ordered map, return."
},
{
- "html": "Let home tab be a new ordered map."
+ "html": "Let home tab be a new ordered map."
},
{
"html": "Process the scope_patterns
member passing json tab\n strip[\"home_tab\"][\"scope_patterns\"], home tab and manifest\n URL."
@@ -146,23 +146,23 @@
{
"name": "process the new_tab_button member",
"href": "https://wicg.github.io/manifest-incubations/#dfn-process-the-new_tab_button-member",
- "html": "To process the new_tab_button
member, given ordered map json tab strip, ordered map manifest tab\n strip, URL manifest URL, and URL start\n URL, run the following:",
+ "html": "To process the new_tab_button
member, given ordered map json tab strip, ordered map manifest tab\n strip, URL manifest URL, and URL start\n URL, run the following:",
"rationale": "set",
"steps": [
{
"html": "Set manifest tab strip[\"new_tab_button\"][\"url\"] to start\n URL."
},
{
- "html": "If json tab strip[\"new_tab_button\"] does not exist or json\n tab strip[\"new_tab_button\"] is not an ordered map, return."
+ "html": "If json tab strip[\"new_tab_button\"] does not exist or json\n tab strip[\"new_tab_button\"] is not an ordered map, return."
},
{
- "html": "Let url be the result of parsing json tab\n strip[\"new_tab_button\"][\"url\"] with manifest URL as the base\n URL."
+ "html": "Let url be the result of parsing json tab\n strip[\"new_tab_button\"][\"url\"] with manifest URL as the base\n URL."
},
{
"html": "If url is failure, return."
},
{
- "html": "If url is not within scope of manifest URL, return."
+ "html": "If url is not within scope of manifest URL, return."
},
{
"html": "Set manifest tab strip[\"new_tab_button\"][\"url\"] to url."
@@ -172,24 +172,24 @@
{
"name": "process the scope_patterns member",
"href": "https://wicg.github.io/manifest-incubations/#dfn-process-the-scope_patterns-member",
- "html": "To process the scope_patterns
member, given ordered map json home tab, ordered map manifest home\n tab and URL manifest URL, run the following:",
+ "html": "To process the scope_patterns
member, given ordered map json home tab, ordered map manifest home\n tab and URL manifest URL, run the following:",
"rationale": "let",
"steps": [
{
- "html": "Let processed scope patterns be a new list."
+ "html": "Let processed scope patterns be a new list."
},
{
"html": "Set manifest home tab[\"scope_patterns\"] to processed scope\n patterns."
},
{
- "html": "If json home tab[\"scope_patterns\"] doesn't exist or json\n home tab[\"scope_patterns\"] is not a list, return."
+ "html": "If json home tab[\"scope_patterns\"] doesn't exist or json\n home tab[\"scope_patterns\"] is not a list, return."
},
{
"html": "For each entry of json home\n tab[\"scope_patterns\"]:",
"rationale": "let",
"steps": [
{
- "html": "Let pattern be the result of building a URL pattern from an infra value entry given manifest URL. If this process\n throws or returns null, continue."
+ "html": "Let pattern be the result of building a URL pattern from an infra value entry given manifest URL. If this process\n throws or returns null, continue."
},
{
"html": "Append pattern to processed scope patterns."
@@ -201,17 +201,17 @@
{
"name": "process the note_taking member",
"href": "https://wicg.github.io/manifest-incubations/#dfn-process-the-note_taking-member",
- "html": "To process the note_taking
member, given ordered map\n json, ordered map manifest, URL\n manifest_URL, run the following during the extension\n point in processing a manifest:",
+ "html": "To process the note_taking
member, given ordered map\n json, ordered map manifest, URL\n manifest_URL, run the following during the extension\n point in processing a manifest:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If json[\"note_taking\"] does not exist, return."
+ "html": "If json[\"note_taking\"] does not exist, return."
},
{
- "html": "If the type of json[\"note_taking\"] is not ordered map,\n return."
+ "html": "If the type of json[\"note_taking\"] is not ordered map,\n return."
},
{
- "html": "Set manifest[\"note_taking\"] to a new ordered map."
+ "html": "Set manifest[\"note_taking\"] to a new ordered map."
},
{
"html": "process the new_note_url
member passing\n json[\"note_taking\"], manifest[\"note_taking\"], and manifest URL."
@@ -221,23 +221,23 @@
{
"name": "process the new_note_url member",
"href": "https://wicg.github.io/manifest-incubations/#dfn-process-the-new_note_url-member",
- "html": "To process the new_note_url
member, given ordered map json_note_taking, ordered map\n manifest_note_taking, URL manifest_URL, run\n the following:",
+ "html": "To process the new_note_url
member, given ordered map json_note_taking, ordered map\n manifest_note_taking, URL manifest_URL, run\n the following:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If json_note_taking[\"new_note_url\"] does not exist,\n return."
+ "html": "If json_note_taking[\"new_note_url\"] does not exist,\n return."
},
{
- "html": "If the type of json_note_taking[\"new_note_url\"] is not\n string, return."
+ "html": "If the type of json_note_taking[\"new_note_url\"] is not\n string, return."
},
{
- "html": "Let new_note_url be the result of parsing\n json_note_taking[\"new_note_url\"] with manifest URL as the base\n URL."
+ "html": "Let new_note_url be the result of parsing\n json_note_taking[\"new_note_url\"] with manifest URL as the base\n URL."
},
{
"html": "If new_note_url is failure, return."
},
{
- "html": "If new_note_url is not within scope of manifest\n URL, return."
+ "html": "If new_note_url is not within scope of manifest\n URL, return."
},
{
"html": "Set manifest_note_taking[\"new_note_url\"] to new_note_url."
@@ -251,84 +251,84 @@
"rationale": "if",
"steps": [
{
- "html": "If manifest[\"note_taking\"] does not exist, return."
+ "html": "If manifest[\"note_taking\"] does not exist, return."
},
{
- "html": "If manifest[\"note_taking\"][\"new_note_url\"] does not\n exist, return."
+ "html": "If manifest[\"note_taking\"][\"new_note_url\"] does not\n exist, return."
},
{
- "html": "If the type of manifest[\"note_taking\"][\"new_note_url\"] is not\n URL, return."
+ "html": "If the type of manifest[\"note_taking\"][\"new_note_url\"] is not\n URL, return."
},
{
- "html": "Run the steps to launch a web application setting manifest\n to manifest and target URL to\n manifest[\"note_taking\"][\"new_note_url\"]."
+ "html": "Run the steps to launch a web application setting manifest\n to manifest and target URL to\n manifest[\"note_taking\"][\"new_note_url\"]."
}
]
},
{
"name": "process the protocol_handlers member",
"href": "https://wicg.github.io/manifest-incubations/#dfn-process-the-protocol_handlers-member",
- "html": "To process the protocol_handlers
member, given\n object json, manifest:",
+ "html": "To process the protocol_handlers
member, given\n object json, manifest:",
"rationale": "let",
"steps": [
{
- "html": "Let processedProtocolHandlers be a new list of\n json[\"protocol_handlers\"]."
+ "html": "Let processedProtocolHandlers be a new list of\n json[\"protocol_handlers\"]."
},
{
"html": "Set manifest[\"protocol_handlers\"] to\n processedProtocolHandlers."
},
{
- "html": "For each protocol_handler (protocol handler\n description):",
+ "html": "For each protocol_handler (protocol handler\n description):",
"rationale": "if",
"steps": [
{
- "html": "If protocol_handler[\"protocol\"] or\n protocol_handler[\"url\"] is undefined, continue."
+ "html": "If protocol_handler[\"protocol\"] or\n protocol_handler[\"url\"] is undefined, continue."
},
{
- "html": "Let (normalizedProtocol, normalizedUrl) be the\n result of running normalize protocol handler parameters with\n protocol_handler[\"protocol\"], | protocol_handler|[\"url\"] using\n manifest URL as the base URL, and this's relevant\n environment settings object. If the result is failure,\n continue."
+ "html": "Let (normalizedProtocol, normalizedUrl) be the\n result of running normalize protocol handler parameters with\n protocol_handler[\"protocol\"], | protocol_handler|[\"url\"] using\n manifest URL as the base URL, and this's relevant\n environment settings object. If the result is failure,\n continue."
},
{
- "html": "If normalizedUrl is not within scope of\n manifest, continue."
+ "html": "If normalizedUrl is not within scope of\n manifest, continue."
},
{
- "html": "If processedProtocolHandlers contains the\n normalizedUrl, continue."
+ "html": "If processedProtocolHandlers contains the\n normalizedUrl, continue."
},
{
- "html": "Append protocol_handler to\n processedProtocolHandlers."
+ "html": "Append protocol_handler to\n processedProtocolHandlers."
}
]
},
{
- "html": "For each processedProtocolHandlers, the user agent\n SHOULD register a protocol handler."
+ "html": "For each processedProtocolHandlers, the user agent\n SHOULD register a protocol handler."
}
]
},
{
"name": "process the file_handlers member",
"href": "https://wicg.github.io/manifest-incubations/#dfn-process-the-file_handlers-member",
- "html": "To process the file_handlers
member, given ordered map\n json, ordered map manifest, URL\n manifest_url:",
+ "html": "To process the file_handlers
member, given ordered map\n json, ordered map manifest, URL\n manifest_url:",
"rationale": ".algorithm",
"steps": [
{
- "html": "Let processedFileHandlers be a new list."
+ "html": "Let processedFileHandlers be a new list."
},
{
"html": "Set manifest[\"file_handlers\"] to processedFileHandlers."
},
{
- "html": "If json[\"file_handlers\"] doesn't exist or\n json[\"file_handlers\"] is not a list, return."
+ "html": "If json[\"file_handlers\"] doesn't exist or\n json[\"file_handlers\"] is not a list, return."
},
{
- "html": "For each entry of json[\"file_handlers\"]:",
+ "html": "For each entry of json[\"file_handlers\"]:",
"rationale": "let",
"steps": [
{
- "html": "Let file_handler be process a file handler item with entry, start_url, scope,\n and manifest_url."
+ "html": "Let file_handler be process a file handler item with entry, start_url, scope,\n and manifest_url."
},
{
- "html": "If file_handler is failure, continue."
+ "html": "If file_handler is failure, continue."
},
{
- "html": "Append file_handler to processedFileHandlers."
+ "html": "Append file_handler to processedFileHandlers."
}
]
}
@@ -337,57 +337,57 @@
{
"name": "process a file handler item",
"href": "https://wicg.github.io/manifest-incubations/#dfn-process-a-file-handler-item",
- "html": "To process a file handler item, given ordered map\n item, URL start_url, URL scope, and\n URL manifest URL:",
+ "html": "To process a file handler item, given ordered map\n item, URL start_url, URL scope, and\n URL manifest URL:",
"rationale": ".algorithm",
"steps": [
{
- "html": "Return failure if any of the following is true:\n .
, continue."
+ "html": "If extensions contains strings that do not begin\n with the character .
, continue."
},
{
- "html": "If extensions contains strings that are greater\n than 16 characters long, continue."
+ "html": "If extensions contains strings that are greater\n than 16 characters long, continue."
},
{
- "html": "Let mime_type_parsed be the result of running the\n steps of parse a mime type on mime_type_string."
+ "html": "Let mime_type_parsed be the result of running the\n steps of parse a mime type on mime_type_string."
},
{
- "html": "If mime_type_parsed is failure,\n continue."
+ "html": "If mime_type_parsed is failure,\n continue."
},
{
- "html": "If |mime_type_parsed/type| is not listed as a top-level type\n in [IANA-MEDIA-TYPES], continue."
+ "html": "If |mime_type_parsed/type| is not listed as a top-level type\n in [IANA-MEDIA-TYPES], continue."
},
{
"html": "Set accept[mime_type_string] to extensions."
@@ -411,7 +411,7 @@
{
"name": "execute a file handler launch",
"href": "https://wicg.github.io/manifest-incubations/#dfn-execute-a-file-handler-launch",
- "html": "The steps to execute a file handler launch are given by\n the following algorithm. The algorithm takes list files\n and a ordered map manifest which holds results from\n processing a manifest.",
+ "html": "The steps to execute a file handler launch are given by\n the following algorithm. The algorithm takes list files\n and a ordered map manifest which holds results from\n processing a manifest.",
"rationale": ".algorithm",
"steps": [
{
@@ -421,35 +421,35 @@
"html": "If file_handlers is null, return."
},
{
- "html": "Let launches be an ordered map."
+ "html": "Let launches be an ordered map."
},
{
- "html": "for each filename of files",
+ "html": "for each filename of files",
"rationale": "for",
"steps": [
{
- "html": "for each file_handler of\n file_handlers:",
+ "html": "for each file_handler of\n file_handlers:",
"rationale": "for",
"steps": [
{
- "html": "for each mime_type_string →\n extensions of file_handler[\"accept\"]",
+ "html": "for each mime_type_string →\n extensions of file_handler[\"accept\"]",
"rationale": "for",
"steps": [
{
- "html": "for each extension of extensions:",
+ "html": "for each extension of extensions:",
"rationale": "if",
"steps": [
{
- "html": "If filename does not end in extension,\n continue."
+ "html": "If filename does not end in extension,\n continue."
},
{
- "html": "If launches[file_handler] exists,\n append filename to\n launches[file_handler]."
+ "html": "If launches[file_handler] exists,\n append filename to\n launches[file_handler]."
},
{
- "html": "Else, set launches[file_handler] to a\n list with the single element filename."
+ "html": "Else, set launches[file_handler] to a\n list with the single element filename."
},
{
- "html": "Continue to next element of\n files."
+ "html": "Continue to next element of\n files."
}
]
}
@@ -460,7 +460,7 @@
]
},
{
- "html": "for each file_handler → files of launches",
+ "html": "for each file_handler → files of launches",
"rationale": "if",
"steps": [
{
@@ -468,14 +468,14 @@
"rationale": "for",
"steps": [
{
- "html": "for each file of files",
+ "html": "for each file of files",
"rationale": "let",
"steps": [
{
- "html": "Let params be a new LaunchParams
\n with files
set to a FrozenArray
with\n a single element that is a FileSystemHandle
\n corresponding to file."
+ "html": "Let params be a new LaunchParams
\n with files
set to a FrozenArray
with\n a single element that is a FileSystemHandle
\n corresponding to file."
},
{
- "html": "Launch a web application with handling, passing\n manifest and params."
+ "html": "Launch a web application with handling, passing\n manifest and params."
}
]
}
@@ -486,10 +486,10 @@
"rationale": "let",
"steps": [
{
- "html": "Let params be a new LaunchParams
with\n files
set to a FrozenArray
of\n FileSystemHandle
s that correspond to the file paths named\n by files."
+ "html": "Let params be a new LaunchParams
with\n files
set to a FrozenArray
of\n FileSystemHandle
s that correspond to the file paths named\n by files."
},
{
- "html": "Launch a web application with handling, passing\n manifest and params."
+ "html": "Launch a web application with handling, passing\n manifest and params."
}
]
}
@@ -500,20 +500,20 @@
{
"name": "process the related_applications member",
"href": "https://wicg.github.io/manifest-incubations/#dfn-process-the-related_applications-member",
- "html": "To process the related_applications
member, given\n ordered map json and ordered map\n manifest:",
+ "html": "To process the related_applications
member, given\n ordered map json and ordered map\n manifest:",
"rationale": ".algorithm",
"steps": [
{
- "html": "Let relatedApplications be a new list."
+ "html": "Let relatedApplications be a new list."
},
{
"html": "Set manifest[\"related_applications\"] to relatedApplications."
},
{
- "html": "If json[\"related_applications\"] doesn't exist or\n json[\"related_applications\"] is not a list, return."
+ "html": "If json[\"related_applications\"] doesn't exist or\n json[\"related_applications\"] is not a list, return."
},
{
- "html": "For each app of json[\"related_applications\"]:",
+ "html": "For each app of json[\"related_applications\"]:",
"rationale": "if",
"steps": [
{
@@ -524,7 +524,7 @@
"html": "Set app[\"url\"] to the result of running\n process the url
member of an application given\n app[\"url\"]."
},
{
- "html": "append app to\n relatedApplications."
+ "html": "append app to\n relatedApplications."
}
]
}
@@ -545,7 +545,7 @@
"html": "If application URL is missing, return null."
},
{
- "html": "Otherwise, parse application URL and if\n the result is not failure, return the result. Otherwise return null."
+ "html": "Otherwise, parse application URL and if\n the result is not failure, return the result. Otherwise return null."
}
]
},
@@ -559,7 +559,7 @@
"html": "Show some user-agent-specific UI, asking the user whether to\n proceed with installing the app. The result of this choice\n is either \"accepted
\" or\n \"dismissed
\"."
},
{
- "html": "Return result, and in parallel:",
+ "html": "Return result, and in parallel:",
"rationale": "if",
"steps": [
{
@@ -576,20 +576,20 @@
"rationale": "wait",
"steps": [
{
- "html": "Wait until the Document
of the top-level browsing\n context is completely\n loaded."
+ "html": "Wait until the Document
of the top-level browsing\n context is completely\n loaded."
},
{
"html": "If there is already an install prompt being presented or if\n the steps to install the web application are currently being\n executed, then abort this step."
},
{
- "html": "Queue a task on the application life-cycle task source\n to do the following:",
+ "html": "Queue a task on the application life-cycle task source\n to do the following:",
"rationale": "let",
"steps": [
{
- "html": "Let mayShowPrompt be the result of fire an event named\n \"beforeinstallprompt\"
at the top-level browsing context's\n relevant global object using the BeforeInstallPromptEvent
\n interface, with steps to initialize the cancelable
\n attribute to true
."
+ "html": "Let mayShowPrompt be the result of fire an event named\n \"beforeinstallprompt\"
at the top-level browsing context's\n relevant global object using the BeforeInstallPromptEvent
\n interface, with steps to initialize the cancelable
\n attribute to true
."
},
{
- "html": "If mayShowPrompt is true, then the user agent MAY, in\n parallel, request to present an install prompt with\n event."
+ "html": "If mayShowPrompt is true, then the user agent MAY, in\n parallel, request to present an install prompt with\n event."
}
]
}
@@ -608,7 +608,7 @@
"html": "Perform an unspecified sequence of actions to attempt to register\n the web application in the user's operating system (e.g., create\n shortcuts that launch the web application, register the application\n in the system uninstall menu, etc.). If the installation fails (which\n can be for any reason, for example, the OS denying permission to the\n user agent to add an icon to the home screen of the device), abort\n these steps."
},
{
- "html": "Queue a task on the application life-cycle task\n source to fire an event named \"appinstalled\"
at the\n top-level browsing context's relevant global object for\n which the installation took place."
+ "html": "Queue a task on the application life-cycle task\n source to fire an event named \"appinstalled\"
at the\n top-level browsing context's relevant global object for\n which the installation took place."
}
]
},
@@ -626,16 +626,16 @@
"rationale": "if",
"steps": [
{
- "html": "If this.[[didPrompt]]
is\n true
, terminate this algorithm."
+ "html": "If this.[[didPrompt]]
is\n true
, terminate this algorithm."
},
{
- "html": "If this event's isTrusted
attribute is false
,\n reject userResponsePromise with \"NotAllowedError
\" and\n terminate this algorithm."
+ "html": "If this event's isTrusted
attribute is false
,\n reject userResponsePromise with \"NotAllowedError
\" and\n terminate this algorithm."
},
{
- "html": "Set this.[[didPrompt]]
to\n true
."
+ "html": "Set this.[[didPrompt]]
to\n true
."
},
{
- "html": "In parallel, request to present an install\n prompt with this. Wait, possibly indefinitely, for\n the end-user to make a choice."
+ "html": "In parallel, request to present an install\n prompt with this. Wait, possibly indefinitely, for\n the end-user to make a choice."
}
]
},
@@ -657,7 +657,7 @@
"html": "Let response be a newly created PromptResponseObject
,\n initializing its userChoice
to outcome."
},
{
- "html": "Resolve\n event.[[userResponsePromise]]
with\n response."
+ "html": "Resolve\n event.[[userResponsePromise]]
with\n response."
}
]
}
diff --git a/ed/algorithms/media-playback-quality.json b/ed/algorithms/media-playback-quality.json
index 0d38cb915b08..7e733c2f042c 100644
--- a/ed/algorithms/media-playback-quality.json
+++ b/ed/algorithms/media-playback-quality.json
@@ -14,7 +14,7 @@
"html": "Let playbackQuality\n be a new instance of VideoPlaybackQuality
."
},
{
- "html": "Set playbackQuality.creationTime
\n to the current high resolution time."
+ "html": "Set playbackQuality.creationTime
\n to the current high resolution time."
},
{
"html": "Set playbackQuality.totalVideoFrames
\n to the current value of the total video frame count."
diff --git a/ed/algorithms/mediacapture-automation.json b/ed/algorithms/mediacapture-automation.json
index e46cf3d45ce2..713d4400ed05 100644
--- a/ed/algorithms/mediacapture-automation.json
+++ b/ed/algorithms/mediacapture-automation.json
@@ -5,17 +5,17 @@
},
"algorithms": [
{
- "html": "The remote end steps are:",
+ "html": "The remote end steps are:",
"rationale": "let",
"steps": [
{
- "html": "Let configuration be the command parameters argument,\n converted to an IDL value of MockCapturePromptResultConfiguration
.\n If this throws an exception, return a WebDriver error\n with WebDriver error code\n invalid argument.
Let configuration be the command parameters argument,\n converted to an IDL value of MockCapturePromptResultConfiguration
.\n If this throws an exception, return a WebDriver error\n with WebDriver error code\n invalid argument.
If the current browsing context is\n no longer open, return a WebDriver error\n with WebDriver error code no such window.
" + "html": "If the current browsing context is\n no longer open, return a WebDriver error\n with WebDriver error code no such window.
" }, { - "html": "Handle any user prompts,\n and return its value if it is a WebDriver error.
" + "html": "Handle any user prompts,\n and return its value if it is a WebDriver error.
" }, { "html": "If configuration.getUserMedia
is set,\n set getUserMedia prompt result \n to configuration.getUserMedia
.
If configuration.getDisplayMedia
is set,\n set getDisplayMedia prompt result \n to configuration.getDisplayMedia
.
Return success with data null
.
Return success with data null
.
If the current browsing context is\n no longer open, return a WebDriver error\n with WebDriver error code no such window.
" + "html": "If the current browsing context is\n no longer open, return a WebDriver error\n with WebDriver error code no such window.
" }, { - "html": "Handle any user prompts,\n and return its value if it is a WebDriver error.
" + "html": "Handle any user prompts,\n and return its value if it is a WebDriver error.
" }, { "html": "Let result be a MockCapturePromptResultConfiguration
.
Set result.getDisplayMedia
to getDisplayMedia prompt result.
Return success with data result.
" + "html": "Return success with data result.
" } ] }, { - "html": "The remote end steps are:", + "html": "The remote end steps are:", "rationale": "let", "steps": [ { - "html": "Let configuration be the command parameters argument,\n converted to an IDL value of type MockCameraConfiguration
.\n If this throws an exception, return a WebDriver error\n with WebDriver error code\n invalid argument.
Let configuration be the command parameters argument,\n converted to an IDL value of type MockCameraConfiguration
.\n If this throws an exception, return a WebDriver error\n with WebDriver error code\n invalid argument.
If the current browsing context is\n no longer open, return a WebDriver error\n with WebDriver error code no such window.
" + "html": "If the current browsing context is\n no longer open, return a WebDriver error\n with WebDriver error code no such window.
" }, { - "html": "Handle any user prompts,\n and return its value if it is a WebDriver error.
" + "html": "Handle any user prompts,\n and return its value if it is a WebDriver error.
" }, { "html": "Let mockCamera be the mock camera in the list of mock cameras whose deviceId
is equal to the url variable deviceId parameter, or undefined
otherwise.
Add mockCamera to the list of mock cameras.
" }, { - "html": "Run the following step in parallel:", + "html": "Run the following step in parallel:", "rationale": "execute", "steps": [ { @@ -96,22 +96,22 @@ ] }, { - "html": "Return success with data null
.
Return success with data null
.
Let deviceId be the result of getting the property deviceId
from the parameters,\n converted to an IDL value of type DOMString
.
If this throws an exception, return a WebDriver error\n with WebDriver error code\n invalid argument.
" + "html": "Let deviceId be the result of getting the property deviceId
from the parameters,\n converted to an IDL value of type DOMString
.
If this throws an exception, return a WebDriver error\n with WebDriver error code\n invalid argument.
" }, { - "html": "If the current browsing context is\n no longer open, return a WebDriver error\n with WebDriver error code no such window.
" + "html": "If the current browsing context is\n no longer open, return a WebDriver error\n with WebDriver error code no such window.
" }, { - "html": "Handle any user prompts,\n and return its value if it is a WebDriver error.
" + "html": "Handle any user prompts,\n and return its value if it is a WebDriver error.
" }, { "html": "Let mockCamera be the mock camera in the list of mock cameras whose deviceId
is equal to the url variable deviceId parameter, or undefined
otherwise.
Remove mockCamera from the list of mock cameras.
" }, { - "html": "Run the following step in parallel:", + "html": "Run the following step in parallel:", "rationale": "execute", "steps": [ { @@ -135,22 +135,22 @@ ] }, { - "html": "Return success with data null
.
Return success with data null
.
Let configuration be the result of getting the property configuration
from the parameters,\n converted to an IDL value of type MockMicrophoneConfiguration
.
If this throws an exception, return a WebDriver error\n with WebDriver error code\n invalid argument.
" + "html": "Let configuration be the result of getting the property configuration
from the parameters,\n converted to an IDL value of type MockMicrophoneConfiguration
.
If this throws an exception, return a WebDriver error\n with WebDriver error code\n invalid argument.
" }, { - "html": "If the current browsing context is\n no longer open, return a WebDriver error\n with WebDriver error code no such window.
" + "html": "If the current browsing context is\n no longer open, return a WebDriver error\n with WebDriver error code no such window.
" }, { - "html": "Handle any user prompts,\n and return its value if it is a WebDriver error.
" + "html": "Handle any user prompts,\n and return its value if it is a WebDriver error.
" }, { "html": "Let mockMicrophone be the mock microphone in the list of mock microphones whose deviceId
is equal to the url variable deviceId parameter, or undefined
otherwise.
If the default microphone is undefined
, set\n default microphone to mockMicrophone.
Return success with data null
.
Return success with data null
.
Let deviceId be the result of getting the property deviceId
from the parameters,\n converted to an IDL value of type DOMString
.
If this throws an exception, return a WebDriver error\n with WebDriver error code\n invalid argument.
" + "html": "Let deviceId be the result of getting the property deviceId
from the parameters,\n converted to an IDL value of type DOMString
.
If this throws an exception, return a WebDriver error\n with WebDriver error code\n invalid argument.
" }, { - "html": "If the current browsing context is\n no longer open, return a WebDriver error\n with WebDriver error code no such window.
" + "html": "If the current browsing context is\n no longer open, return a WebDriver error\n with WebDriver error code no such window.
" }, { - "html": "Handle any user prompts,\n and return its value if it is a WebDriver error.
" + "html": "Handle any user prompts,\n and return its value if it is a WebDriver error.
" }, { "html": "Let mockMicrophone be the mock microphone in the list of mock microphones whose deviceId
is equal to the url variable deviceId parameter, or undefined
otherwise.
If mockMicrophone is the default microphone,\n set the default microphone to the first microphone in the list of mock microphones\n if not empty and to undefined
otherwise.
Return success with data null
.
Return success with data null
.
Let deviceId be the result of getting the property deviceId
from the parameters,\n converted to an IDL value of type DOMString
.
If this throws an exception, return a WebDriver error\n with WebDriver error code\n invalid argument.
" + "html": "Let deviceId be the result of getting the property deviceId
from the parameters,\n converted to an IDL value of type DOMString
.
If this throws an exception, return a WebDriver error\n with WebDriver error code\n invalid argument.
" }, { - "html": "If the current browsing context is\n no longer open, return a WebDriver error\n with WebDriver error code no such window.
" + "html": "If the current browsing context is\n no longer open, return a WebDriver error\n with WebDriver error code no such window.
" }, { - "html": "Handle any user prompts,\n and return its value if it is a WebDriver error.
" + "html": "Handle any user prompts,\n and return its value if it is a WebDriver error.
" }, { "html": "Let mockMicrophone be the mock microphone in the list of mock microphones whose deviceId
is equal to deviceId or undefined
otherwise.
Set the default mock microphone to mockMicrophone.
" }, { - "html": "Run the following step in parallel:", + "html": "Run the following step in parallel:", "rationale": "execute", "steps": [ { @@ -267,25 +267,25 @@ ] }, { - "html": "Return success with data null
.
Return success with data null
.
If the current browsing context is\n no longer open, return a WebDriver error\n with WebDriver error code no such window.
" + "html": "If the current browsing context is\n no longer open, return a WebDriver error\n with WebDriver error code no such window.
" }, { - "html": "Handle any user prompts,\n and return its value if it is a WebDriver error.
" + "html": "Handle any user prompts,\n and return its value if it is a WebDriver error.
" }, { "html": "Set the the mock capture device set to the default mock capture device set.
" }, { - "html": "Run the following step in parallel:", + "html": "Run the following step in parallel:", "rationale": "execute", "steps": [ { @@ -294,22 +294,22 @@ ] }, { - "html": "Return success with data null
.
Return success with data null
.
If the current browsing context is\n no longer open, return a WebDriver error\n with WebDriver error code no such window.
" + "html": "If the current browsing context is\n no longer open, return a WebDriver error\n with WebDriver error code no such window.
" }, { - "html": "Handle any user prompts,\n and return its value if it is a WebDriver error.
" + "html": "Handle any user prompts,\n and return its value if it is a WebDriver error.
" }, { - "html": "Return success with data as the mock capture device set, serialized as JSON.
" + "html": "Return success with data as the mock capture device set, serialized as JSON.
" } ] } diff --git a/ed/algorithms/mediacapture-handle-actions.json b/ed/algorithms/mediacapture-handle-actions.json index 21df38634ee7..dda28d0fc300 100644 --- a/ed/algorithms/mediacapture-handle-actions.json +++ b/ed/algorithms/mediacapture-handle-actions.json @@ -11,13 +11,13 @@ "rationale": "if", "steps": [ { - "html": "If the relevant global object's associatedDocument
is\n either not fully active or its browsing context is not a\n top-level browsing context, then throw InvalidAccessError
."
+ "html": "If the relevant global object's associated Document
is\n either not fully active or its browsing context is not a\n top-level browsing context, then throw InvalidAccessError
."
},
{
"html": "Let actions be the method's first argument."
},
{
- "html": "If actions is non-empty, and this method was previously\n called with a non-empty array on this MediaDevices
object,\n then throw InvalidStateError
.\n "
+ "html": "If actions is non-empty, and this method was previously\n called with a non-empty array on this MediaDevices
object,\n then throw InvalidStateError
.\n "
},
{
"html": "Remove from actions any value not found in CaptureAction
."
@@ -26,13 +26,13 @@
"html": "Remove from actions any duplicates."
},
{
- "html": "Set this's [[RegisteredCaptureActions]]
to actions."
+ "html": "Set this's [[RegisteredCaptureActions]]
to actions."
},
{
- "html": "return undefined
and run the remaining step in parallel."
+ "html": "return undefined
and run the remaining step in parallel."
},
{
- "html": "If this document is currently being captured as part of a\n browser\n display surface,\n then for each capturer of that surface, queue a task on that capturer's\n task-list to set all associated video MediaStreamTrack
s'\n [[AvailableCaptureActions]]
to actions."
+ "html": "If this document is currently being captured as part of a\n browser\n display surface,\n then for each capturer of that surface, queue a task on that capturer's\n task-list to set all associated video MediaStreamTrack
s'\n [[AvailableCaptureActions]]
to actions."
}
]
},
@@ -43,36 +43,36 @@
"rationale": "if",
"steps": [
{
- "html": "If the relevant global object of this does not have\n transient activation, return a promise rejected with\n InvalidStateError
."
+ "html": "If the relevant global object of this does not have\n transient activation, return a promise rejected with\n InvalidStateError
."
},
{
- "html": "Consume user activation."
+ "html": "Consume user activation."
},
{
"html": "Let action be the method's first argument."
},
{
- "html": "If action is not in this' [[AvailableCaptureActions]]
,\n return a promise rejected with NotFoundError
."
+ "html": "If action is not in this' [[AvailableCaptureActions]]
,\n return a promise rejected with NotFoundError
."
},
{
"html": "Let p be a new promise."
},
{
- "html": "Run the following steps in parallel:",
+ "html": "Run the following steps in parallel:",
"rationale": "queue",
"steps": [
{
- "html": "Queue a task on the task-list of the captured\n browser\n display surface's\n top-level browsing context's active document to run the\n following steps:",
+ "html": "Queue a task on the task-list of the captured\n browser\n display surface's\n top-level browsing context's active document to run the\n following steps:",
"rationale": "let",
"steps": [
{
- "html": "Let target be the the relevant global object's\n associated Document
's\n associated navigator's MediaDevices
object."
+ "html": "Let target be the the relevant global object's\n associated Document
's\n associated navigator's MediaDevices
object."
},
{
"html": "If action is not in target's\n [[RegisteredCaptureActions]]
, abort these steps."
},
{
- "html": "Fire an event named \"captureaction\"
, using a\n CaptureActionEvent
with action
\n set to action, at target."
+ "html": "Fire an event named \"captureaction\"
, using a\n CaptureActionEvent
with action
\n set to action, at target."
}
]
},
diff --git a/ed/algorithms/mediacapture-region.json b/ed/algorithms/mediacapture-region.json
index c3234abfcb78..1267254016fd 100644
--- a/ed/algorithms/mediacapture-region.json
+++ b/ed/algorithms/mediacapture-region.json
@@ -19,11 +19,11 @@
]
},
{
- "html": "CropTarget
objects are serializable. The serialization steps, given\n value, serialized, and a boolean forStorage, are:",
+ "html": "CropTarget
objects are serializable. The serialization steps, given\n value, serialized, and a boolean forStorage, are:",
"rationale": "if",
"steps": [
{
- "html": "\n If forStorage is true
, throw with new DOMException
object\n whose name
attribute has the value \"DataCloneError
\".\n
\n If forStorage is true
, throw with new DOMException
object\n whose name
attribute has the value \"DataCloneError
\".\n
\n Set serialized.[[CropTargetElement]] to\n value.[[Element]]
.\n
\n If cropTarget is neither a valid CropTarget nor null
,\n the user agent MUST return a Promise
rejected with an UnknownError
.\n
\n If cropTarget is neither a valid CropTarget nor null
,\n the user agent MUST return a Promise
rejected with an UnknownError
.\n
Promise
."
+ "html": "Let p be a new Promise
."
},
{
"html": "Run the following steps in parallel:",
"rationale": "if",
"steps": [
{
- "html": "If cropTarget is neither undefined
nor a valid CropTarget,\n reject p with a NotAllowedError
and abort these steps."
+ "html": "If cropTarget is neither undefined
nor a valid CropTarget,\n reject p with a NotAllowedError
and abort these steps."
},
{
- "html": "\n If cropTarget is either undefined
or a valid CropTarget,\n the user agent MUST update this video track's crop-state according to\n cropTarget:\n
undefined
, the user agent MUST stop\n cropping. This video track reverts to the uncropped state.\n CropTarget
. This means that for each new frame\n produced on the track, the user agent calculates the bounding box of the\n pixels belonging to the element, and crops the frame to the coordinates of\n this bounding box.\n \n If cropTarget is either undefined
or a valid CropTarget,\n the user agent MUST update this video track's crop-state according to\n cropTarget:\n
undefined
, the user agent MUST stop\n cropping. This video track reverts to the uncropped state.\n CropTarget
. This means that for each new frame\n produced on the track, the user agent calculates the bounding box of the\n pixels belonging to the element, and crops the frame to the coordinates of\n this bounding box.\n \n Call the track's state before this method invocation PRE-STATE, and\n after this method invocation POST-STATE. The user agent MUST\n resolve p when it is guaranteed that no more frames cropped (or\n uncropped) according to PRE-STATE will be delivered to the\n application, and that any additional frames delivered to the application will\n therefore be cropped (or uncropped) according to either\n POST-STATE or a later state.\n
" diff --git a/ed/algorithms/mediacapture-surface-control.json b/ed/algorithms/mediacapture-surface-control.json new file mode 100644 index 000000000000..84e9f870c51e --- /dev/null +++ b/ed/algorithms/mediacapture-surface-control.json @@ -0,0 +1,293 @@ +{ + "spec": { + "title": "Captured Surface Control", + "url": "https://w3c.github.io/mediacapture-surface-control/" + }, + "algorithms": [ + { + "name": "CaptureController/getSupportedZoomLevels()", + "href": "https://w3c.github.io/mediacapture-surface-control/#dom-capturecontroller-getsupportedzoomlevels", + "html": "When invoked, the user agent MUST run the following steps:", + "rationale": "if", + "steps": [ + { + "html": "If this is not actively capturing, throw an\n \"InvalidStateError
\" DOMException
."
+ },
+ {
+ "html": "Let surfaceType be this.[[DisplaySurfaceType]]."
+ },
+ {
+ "html": "If surfaceType is not a supported display surface type, throw a\n \"NotSupportedError
\" DOMException
."
+ },
+ {
+ "html": "Return a monotonically increasing sequence containing all of the values in the\n supported zoom levels for surfaceType."
+ }
+ ]
+ },
+ {
+ "name": "CaptureController/getZoomLevel()",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#dom-capturecontroller-getzoomlevel",
+ "html": "When invoked, the user agent MUST run the following steps:",
+ "rationale": "if",
+ "steps": [
+ {
+ "html": "If this is not actively capturing, throw an\n \"InvalidStateError
\" DOMException
."
+ },
+ {
+ "html": "If this.[[DisplaySurfaceType]]\n is not a supported display surface type, throw a\n \"NotSupportedError
\" DOMException
."
+ },
+ {
+ "html": "Return this.[[Source]]'s zoom level."
+ }
+ ]
+ },
+ {
+ "name": "CaptureController/setZoomLevel()",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#dom-capturecontroller-setzoomlevel",
+ "html": "When invoked, the user agent MUST run the following steps:",
+ "rationale": "if",
+ "steps": [
+ {
+ "html": "If this is not actively capturing, return a promise rejected with\n a DOMException
object whose name
attribute has the value\n InvalidStateError
."
+ },
+ {
+ "html": "If this is self-capturing, return a promise rejected with a\n DOMException
object whose name
attribute has the value\n InvalidStateError
."
+ },
+ {
+ "html": "Let surfaceType be this.[[DisplaySurfaceType]]."
+ },
+ {
+ "html": "If surfaceType is not a supported display surface type, return a promise\n rejected with a DOMException
object whose name
\n attribute has the value NotSupportedError
."
+ },
+ {
+ "html": "Ensure that the code is running from within the context of an event handler which\n was triggered by the browser agent firing a trusted event, triggered by the user\n interacting with the user agent. To do so, run the following steps:",
+ "rationale": "let",
+ "steps": [
+ {
+ "html": "Let currentEvent be Window
.event
."
+ },
+ {
+ "html": "If currentEvent is undefined
, return a promise rejected with a\n DOMException
object whose name
attribute has the value\n InvalidStateError
."
+ },
+ {
+ "html": "If currentEvent.isTrusted
is false
, return a promise\n rejected with a DOMException
object whose name
\n attribute has the value InvalidStateError
."
+ },
+ {
+ "html": "If currentEvent.type
is not in\n permitted event types for setZoomLevel, return a promise\n rejected with a DOMException
object whose name
\n attribute has the value InvalidStateError
."
+ }
+ ]
+ },
+ {
+ "html": "Let targetZoomLevel be the method's first argument."
+ },
+ {
+ "html": "If targetZoomLevel is not included in the user agent's set of supported zoom levels for surfaceType, return a promise rejected with a\n DOMException
object whose name
attribute has the value\n InvalidStateError
."
+ },
+ {
+ "html": "Let P be a new Promise
."
+ },
+ {
+ "html": "Run the following steps in parallel:",
+ "rationale": "abort these steps",
+ "steps": [
+ {
+ "html": "Request permission to use a PermissionDescriptor
with its\n name
member set to\n \"captured-surface-control\"
. If the result of the request is\n \"denied
\", reject P with a new DOMException
object\n whose name
is NotAllowedError
and abort these steps."
+ },
+ {
+ "html": "Set this.[[Source]]'s zoom level to targetZoomLevel."
+ },
+ {
+ "html": "Resolve P."
+ }
+ ]
+ },
+ {
+ "html": "Return P."
+ }
+ ]
+ },
+ {
+ "name": "CaptureController/forwardWheel()",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#dom-capturecontroller-forwardwheel",
+ "html": "When invoked, the user agent MUST run the following steps:",
+ "rationale": "if",
+ "steps": [
+ {
+ "html": "If this is not actively capturing, return a promise rejected with a\n DOMException
object whose name
attribute has the value\n InvalidStateError
."
+ },
+ {
+ "html": "If this is self-capturing, return a promise rejected with a\n DOMException
object whose name
attribute has the value\n InvalidStateError
."
+ },
+ {
+ "html": "Let surfaceType be this.[[DisplaySurfaceType]]."
+ },
+ {
+ "html": "If surfaceType is not a supported display surface type, return a promise\n rejected with a DOMException
object whose name
\n attribute has the value NotSupportedError
."
+ },
+ {
+ "html": "Let element be the method's first argument."
+ },
+ {
+ "html": "Let P be a new Promise
."
+ },
+ {
+ "html": "Run the following steps in parallel:",
+ "rationale": "reject",
+ "steps": [
+ {
+ "html": "Get the current permission state of \"captured-surface-control\"
. If the\n result is NOT \"granted
\", and the relevant global object\n does NOT have transient activation, return a promise rejected with\n a DOMException
object whose name
attribute has the value\n InvalidStateError
."
+ },
+ {
+ "html": "Request permission to use a PermissionDescriptor
with its\n name
member set to\n \"captured-surface-control\"
. If the result of the request is\n \"denied
\", reject P with a new DOMException
object\n whose name
is NotAllowedError
and abort these steps."
+ },
+ {
+ "html": "If this.[[forwardWheelElement]]
is not\n null
, remove an event listener with\n this.[[forwardWheelElement]]
as eventTarget and\n this.[[forwardWheelEventListener]]
as listener."
+ },
+ {
+ "html": "Set this.[[forwardWheelEventListener]]
to\n null
."
+ },
+ {
+ "html": "Set this.[[forwardWheelElement]]
to element."
+ },
+ {
+ "html": "If this.[[forwardWheelElement]]
is not\n null
:",
+ "rationale": "set",
+ "steps": [
+ {
+ "html": "Set this.[[forwardWheelEventListener]]
to an event listener defined as follows:\n wheel
EventListener
instance\n representing a reference to a function of one argument of type Event
\n event. This function executes the forward wheel event algorithm\n given this and event.\n [[forwardWheelElement]]
as eventTarget and\n this.[[forwardWheelEventListener]]
as listener."
+ }
+ ]
+ },
+ {
+ "html": "Resolve P."
+ }
+ ]
+ },
+ {
+ "html": "Return P."
+ }
+ ]
+ },
+ {
+ "name": "actively capturing",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#dfn-actively-capturing",
+ "html": "To determine if a CaptureController
controller is\n actively capturing, run the following steps:",
+ "rationale": "let",
+ "steps": [
+ {
+ "html": "Let source be controller.[[Source]]."
+ },
+ {
+ "html": "If source is null
, return false
."
+ },
+ {
+ "html": "If source has been stopped, return\n false
."
+ },
+ {
+ "html": "Return true
."
+ }
+ ]
+ },
+ {
+ "name": "is self-capturing",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#dfn-is-self-capturing",
+ "html": "To determine if a CaptureController
controller is\n is self-capturing, run the following steps:",
+ "rationale": "if",
+ "steps": [
+ {
+ "html": "If controller is not actively capturing, return false
."
+ },
+ {
+ "html": "If controller.[[Source]] is a\n display surface of type browser, and represents the relevant global object's associated Document
, return true
."
+ },
+ {
+ "html": "Return false
."
+ }
+ ]
+ },
+ {
+ "name": "supported display surface type",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#dfn-supported-display-surface-type",
+ "html": "To determine if a display surface surfaceType is\n supported display surface type, run the following steps:",
+ "rationale": "if",
+ "steps": [
+ {
+ "html": "If surfaceType is browser, return true
."
+ },
+ {
+ "html": "Return false
."
+ }
+ ]
+ },
+ {
+ "name": "forward wheel event algorithm",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#dfn-forward-wheel-event-algorithm",
+ "html": "The forward wheel event algorithm takes a CaptureController
controller\n and a WheelEvent
event, and runs the following steps:",
+ "rationale": "if",
+ "steps": [
+ {
+ "html": "If controller is not actively capturing, abort these steps."
+ },
+ {
+ "html": "If this is self-capturing, abort these steps."
+ },
+ {
+ "html": "Let surfaceType be controller.[[DisplaySurfaceType]]."
+ },
+ {
+ "html": "If surfaceType is not a supported display surface type, abort these steps."
+ },
+ {
+ "html": "Run the following steps in parallel:",
+ "rationale": "abort these steps",
+ "steps": [
+ {
+ "html": "Get the current permission state of \"captured-surface-control\"
. If the\n result is NOT \"granted
\", abort these steps."
+ },
+ {
+ "html": "If event.isTrusted
is false
, abort these steps."
+ },
+ {
+ "html": "Let [scaledX, scaledY] be the result of the scale element coordinates algorithm on [event.offsetX
, event.offsetY
] and\n this.[[forwardWheelElement]]
."
+ },
+ {
+ "html": "Fire an event named \"wheel\"
using WheelEvent
with the x
\n attribute initialized to scaledX, the y
attribute initialized to\n scaledY, the deltaX
attribute initialized to\n event.deltaX
and the deltaY
attribute initialized to\n event.deltaY
, at controller.[[Source]]'s viewport."
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "scale element coordinates algorithm",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#dfn-scale-element-coordinates-algorithm",
+ "html": "The scale element coordinates algorithm takes double
coordinates [x, y]\n and a CaptureController
controller, and run the following steps:",
+ "rationale": "let",
+ "steps": [
+ {
+ "html": "Let scaleFactorX be\n (x /\n controller.[[forwardWheelElement]]
.getBoundingClientRect
()
.width
)
."
+ },
+ {
+ "html": "Let scaleFactorX be\n (x /\n controller.[[forwardWheelElement]]
.getBoundingClientRect
()
.height
)
."
+ },
+ {
+ "html": "Let surfaceWidth be controller.[[Source]]'s viewport's width."
+ },
+ {
+ "html": "Let surfaceHeight be controller.[[Source]]'s viewport's height."
+ },
+ {
+ "html": "Let scaledX be\n (scaleFactorX * surfaceWidth)
."
+ },
+ {
+ "html": "Let scaledY be\n (scaleFactorY * surfaceHeight)
."
+ },
+ {
+ "html": "Return [scaledX, scaledY]."
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/ed/algorithms/mediacapture-viewport.json b/ed/algorithms/mediacapture-viewport.json
index 5eaedbbb0051..b44b5446a5dc 100644
--- a/ed/algorithms/mediacapture-viewport.json
+++ b/ed/algorithms/mediacapture-viewport.json
@@ -11,32 +11,32 @@
"rationale": "if",
"steps": [
{
- "html": "\n If the current settings object's cross-origin isolated capability is false, return a promise rejected with a DOMException
object whose\n name
attribute has the value SecurityError
.\n
\n If the current settings object's cross-origin isolated capability is false, return a promise rejected with a DOMException
object whose\n name
attribute has the value SecurityError
.\n
\n If the relevant global object's associated Document
's top-level browsing context's\n \n required document policy\n does not contain Require-Document-Policy: viewport-capture
and Document-Policy: viewport-capture
\n (TODO: use correct algorithm), return a promise rejected with a DOMException
object whose\n name
attribute has the value SecurityError
.\n
\n If the relevant global object's associated Document
's top-level browsing context's\n \n required document policy\n does not contain Require-Document-Policy: viewport-capture
and Document-Policy: viewport-capture
\n (TODO: use correct algorithm), return a promise rejected with a DOMException
object whose\n name
attribute has the value SecurityError
.\n
\n If the relevant global object of this does not have transient activation, return a promise\n rejected with a DOMException
object whose name
attribute has the value\n InvalidStateError
.\n
\n If the relevant global object of this does not have transient activation, return a promise\n rejected with a DOMException
object whose name
attribute has the value\n InvalidStateError
.\n
Let options be the method's first argument.
" }, { - "html": "\n If options.video
is false
, return a promise rejected with a newly\n created TypeError
.\n
\n If options.video
is false
, return a promise rejected with a newly\n created TypeError
.\n
\n If CS contains a member named advanced
, return a promise\n rejected with a newly created TypeError
.\n
\n If CS contains a member named advanced
, return a promise\n rejected with a newly created TypeError
.\n
\n If CS contains a member whose name specifies a constrainable property applicable to\n display surfaces, and whose value in turn is\n a dictionary containing a member named either min
or exact
, return a\n promise rejected with a newly created TypeError
.\n
\n If CS contains a member whose name specifies a constrainable property applicable to\n display surfaces, and whose value in turn is\n a dictionary containing a member named either min
or exact
, return a\n promise rejected with a newly created TypeError
.\n
\n If CS contains a member whose name specifies a constrainable property applicable to\n display surfaces, and whose value in turn is\n a dictionary containing a member named max
, and that member's value in turn is less\n than the constrainable property's floor value,\n then let failedConstraint be the name of the member, let message be either\n undefined
or an informative human-readable message, and return a promise\n rejected with a new OverconstrainedError
created by calling\n OverconstrainedError(failedConstraint, message)
.\n
\n If CS contains a member whose name specifies a constrainable property applicable to\n display surfaces, and whose value in turn is\n a dictionary containing a member named max
, and that member's value in turn is less\n than the constrainable property's floor value,\n then let failedConstraint be the name of the member, let message be either\n undefined
or an informative human-readable message, and return a promise\n rejected with a new OverconstrainedError
created by calling\n OverconstrainedError(failedConstraint, message)
.\n
\n Let requestedMediaTypes be the set of media types in options with either a\n dictionary value or a value of true
.\n
\n If the relevant global object's associated Document
is NOT fully active or does\n NOT have focus, return a promise rejected with a\n DOMException
object whose name
attribute has the value InvalidStateError
.\n
\n If the relevant global object's associated Document
is NOT fully active or does\n NOT have focus, return a promise rejected with a\n DOMException
object whose name
attribute has the value InvalidStateError
.\n
Let p be a new promise.
" @@ -58,10 +58,10 @@ "rationale": "if", "steps": [ { - "html": "\n If no sources of type T are available, reject p with a new\n DOMException
object whose name
attribute has the value NotFoundError
.\n
\n If no sources of type T are available, reject p with a new\n DOMException
object whose name
attribute has the value NotFoundError
.\n
\n Read the current permission state for obtaining sources of type T in the\n current browsing context. If the permission state is \"denied
\", jump to the\n step labeled PermissionFailure below.\n
\n Read the current permission state for obtaining sources of type T in the\n current browsing context. If the permission state is \"denied
\", jump to the\n step labeled PermissionFailure below.\n
\n Optionally, e.g., based on a previously-established user preference, for security reasons, or due\n to platform limitations, jump to the step labeled Permission Failure below.\n
" }, { - "html": "\n Request permission to use viewport capture, for a PermissionDescriptor
with its\n name
set to \"viewport-capture\"
, resulting in a set of provided\n media.\n
\n The provided media MUST include precisely one video track, which MUST be a live-capture of the\n browser\n display surface\n of the relevant global object's associated Document
's top-level browsing context's\n viewport.\n
\n The provided media MUST include at most one audio track, which, if provided, MUST be the combined\n audio produced by the sum of documents that consist of the relevant global object's\n associated Document
's top-level browsing context's active document, and\n all active documents in nested browsing contexts of the relevant global object's associated Document
's top-level browsing context. This audio track MUST NOT\n be included if audio was not specified in requestedMediaTypes, or if it was specified\n as false
.\n
The source of a MediaStreamTrack
MUST NOT change.
\n If the result of the request is \"granted
\", then for each device that is\n sourcing the provided media, using a stable and private id for the device, deviceId,\n set [[devicesLiveMap]][deviceId] to true
, if it isn’t already\n true
, and set the [[devicesAccessibleMap]][deviceId] to\n true
, if it isn’t already true
.\n
The user agent MUST NOT store a \"granted
\" permission entry.
\n If the result is \"denied
\", jump to the step labeled\n Permission Failure below. If the user never responds, this algorithm stalls on this step.\n
\n If the user grants permission but a hardware error such as an OS/program/webpage lock prevents\n access, reject p with a new DOMException
object whose name
\n attribute has the value NotReadableError
and abort these steps.\n
\n If the result is \"granted
\" but device access fails for any reason other than\n those listed above, reject p with a new DOMException
object whose\n name
attribute has the value AbortError
and abort these steps.\n
\n Request permission to use viewport capture, for a PermissionDescriptor
with its\n name
set to \"viewport-capture\"
, resulting in a set of provided\n media.\n
\n The provided media MUST include precisely one video track, which MUST be a live-capture of the\n browser\n display surface\n of the relevant global object's associated Document
's top-level browsing context's\n viewport.\n
\n The provided media MUST include at most one audio track, which, if provided, MUST be the combined\n audio produced by the sum of documents that consist of the relevant global object's\n associated Document
's top-level browsing context's active document, and\n all active documents in nested browsing contexts of the relevant global object's associated Document
's top-level browsing context. This audio track MUST NOT\n be included if audio was not specified in requestedMediaTypes, or if it was specified\n as false
.\n
The source of a MediaStreamTrack
MUST NOT change.
\n If the result of the request is \"granted
\", then for each device that is\n sourcing the provided media, using a stable and private id for the device, deviceId,\n set [[devicesLiveMap]][deviceId] to true
, if it isn’t already\n true
, and set the [[devicesAccessibleMap]][deviceId] to\n true
, if it isn’t already true
.\n
The user agent MUST NOT store a \"granted
\" permission entry.
\n If the result is \"denied
\", jump to the step labeled\n Permission Failure below. If the user never responds, this algorithm stalls on this step.\n
\n If the user grants permission but a hardware error such as an OS/program/webpage lock prevents\n access, reject p with a new DOMException
object whose name
\n attribute has the value NotReadableError
and abort these steps.\n
\n If the result is \"granted
\" but device access fails for any reason other than\n those listed above, reject p with a new DOMException
object whose\n name
attribute has the value AbortError
and abort these steps.\n
Let stream be the MediaStream
object for which the user granted permission.
Let stream be the MediaStream
object for which the user granted permission.
\n Run the ApplyConstraints algorithm on all tracks in stream with the appropriate\n constraints. Should this fail, let failedConstraint\n be the result of the algorithm that failed, and let\n message be either undefined
or an informative human-readable message, and\n then reject p with a new OverconstrainedError
\n created by calling\n OverconstrainedError(failedConstraint, message)
.\n
\n Run the ApplyConstraints algorithm on all tracks in stream with the appropriate\n constraints. Should this fail, let failedConstraint\n be the result of the algorithm that failed, and let\n message be either undefined
or an informative human-readable message, and\n then reject p with a new OverconstrainedError
\n created by calling\n OverconstrainedError(failedConstraint, message)
.\n
[[Restrictable]]
to true
."
+ "html": "Set videoTrack.[[Restrictable]]
to true
."
},
{
- "html": "Resolve p with stream and abort these steps.
" + "html": "Resolve p with stream and abort these steps.
" }, { - "html": "\n Permission Failure: Reject p with a new DOMException
object whose\n name
attribute has the value NotAllowedError
.\n
\n Permission Failure: Reject p with a new DOMException
object whose\n name
attribute has the value NotAllowedError
.\n
description
member, given ordered map json and ordered map manifest:",
+ "html": "To process the description
member, given ordered map json and ordered map manifest:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If json[\"description\"] is not a string, return."
+ "html": "If json[\"description\"] is not a string, return."
},
{
"html": "Set manifest[\"description\"] to json[\"description\"]."
@@ -21,11 +21,11 @@
{
"name": "process the app_id member",
"href": "https://w3c.github.io/miniapp-manifest/#dfn-process-the-app_id-member",
- "html": "To process the app_id
member, given ordered map json and ordered map manifest:",
+ "html": "To process the app_id
member, given ordered map json and ordered map manifest:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If json[\"app_id\"] does not exist, or if json[\"app_id\"] is not a string, return."
+ "html": "If json[\"app_id\"] does not exist, or if json[\"app_id\"] is not a string, return."
},
{
"html": "Set manifest[\"app_id\"] to json[\"app_id\"]."
@@ -35,11 +35,11 @@
{
"name": "process the color_scheme member",
"href": "https://w3c.github.io/miniapp-manifest/#dfn-process-the-color_scheme-member",
- "html": "To process the color_scheme
member, given ordered map json and ordered map manifest:",
+ "html": "To process the color_scheme
member, given ordered map json and ordered map manifest:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If json[\"color_scheme\"] does not exist,device_type
member, given ordered map json and ordered map manifest:",
+ "html": "To process the device_type
member, given ordered map json and ordered map manifest:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If json[\"device_type\"] does not exist, or if json[\"device_type\"] is not a list, return."
+ "html": "If json[\"device_type\"] does not exist, or if json[\"device_type\"] is not a list, return."
},
{
- "html": "Let device_type be a new empty list."
+ "html": "Let device_type be a new empty list."
},
{
- "html": "For each item of json[\"device_type\"]:",
+ "html": "For each item of json[\"device_type\"]:",
"rationale": "if",
"steps": [
{
- "html": "If item is not a string, return."
+ "html": "If item is not a string, return."
},
{
- "html": "Append item to device_type."
+ "html": "Append item to device_type."
}
]
},
@@ -78,30 +78,30 @@
{
"name": "process the pages member",
"href": "https://w3c.github.io/miniapp-manifest/#dfn-process-the-pages-member",
- "html": "To process the pages
member, given ordered map json and ordered map manifest:",
+ "html": "To process the pages
member, given ordered map json and ordered map manifest:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If json[\"pages\"] does not exist, or if json[\"pages\"] is not a list, return."
+ "html": "If json[\"pages\"] does not exist, or if json[\"pages\"] is not a list, return."
},
{
- "html": "Let pages be a new list."
+ "html": "Let pages be a new list."
},
{
- "html": "For each item of json[\"pages\"]:",
+ "html": "For each item of json[\"pages\"]:",
"rationale": "if",
"steps": [
{
- "html": "If item is not a string, return."
+ "html": "If item is not a string, return."
},
{
- "html": "Let url be the result of parsing item."
+ "html": "Let url be the result of parsing item."
},
{
- "html": "If url is failure, continue."
+ "html": "If url is failure, continue."
},
{
- "html": "Append pages to url."
+ "html": "Append pages to url."
}
]
},
@@ -113,14 +113,14 @@
{
"name": "process the platform_version member",
"href": "https://w3c.github.io/miniapp-manifest/#dfn-process-the-platform_version-member",
- "html": "To process the platform_version
member, given ordered map json and ordered map manifest:",
+ "html": "To process the platform_version
member, given ordered map json and ordered map manifest:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If json[\"platform_version\"] does not exist, or if json[\"platform_version\"] is not an ordered map, return."
+ "html": "If json[\"platform_version\"] does not exist, or if json[\"platform_version\"] is not an ordered map, return."
},
{
- "html": "Let platform_version be a new ordered map."
+ "html": "Let platform_version be a new ordered map."
},
{
"html": "Process the platform version's min_code
member passing json[\"platform_version\"] and platform_version."
@@ -132,7 +132,7 @@
"html": "Process the platform version's release_type
member passing json[\"platform_version\"] and platform_version."
},
{
- "html": "If platform_version[\"min_code\"] does not exist, return failure."
+ "html": "If platform_version[\"min_code\"] does not exist, return failure."
},
{
"html": "Set manifest[\"platform_version\"] to platform_version."
@@ -142,36 +142,36 @@
{
"name": "process the req_permissions member",
"href": "https://w3c.github.io/miniapp-manifest/#dfn-process-the-req_permissions-member",
- "html": "To process the req_permissions
member, given ordered map json and ordered map manifest:",
+ "html": "To process the req_permissions
member, given ordered map json and ordered map manifest:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If json[\"req_permissions\"] does not exist, or if json[\"req_permissions\"] is not a list, return."
+ "html": "If json[\"req_permissions\"] does not exist, or if json[\"req_permissions\"] is not a list, return."
},
{
- "html": "Let permissions be a new list."
+ "html": "Let permissions be a new list."
},
{
- "html": "For each item of json[\"req_permissions\"]:",
+ "html": "For each item of json[\"req_permissions\"]:",
"rationale": "if",
"steps": [
{
- "html": "If item is not an ordered map, continue."
+ "html": "If item is not an ordered map, continue."
},
{
- "html": "Let permission be an ordered map."
+ "html": "Let permission be an ordered map."
},
{
"html": "Process the permission resource's name
member passing item and permission."
},
{
- "html": "If permission[\"name\"] does not exist, continue."
+ "html": "If permission[\"name\"] does not exist, continue."
},
{
"html": "Process the permission resource's reason
member passing item and permission."
},
{
- "html": "Append permission to permissions."
+ "html": "Append permission to permissions."
}
]
},
@@ -183,14 +183,14 @@
{
"name": "process the version member",
"href": "https://w3c.github.io/miniapp-manifest/#dfn-process-the-version-member",
- "html": "To process the version
member, given ordered map json and ordered map manifest:",
+ "html": "To process the version
member, given ordered map json and ordered map manifest:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If json[\"version\"] does not exist, or if json[\"version\"] is not ordered map, return."
+ "html": "If json[\"version\"] does not exist, or if json[\"version\"] is not ordered map, return."
},
{
- "html": "Let version be a new ordered map."
+ "html": "Let version be a new ordered map."
},
{
"html": "Process the version's code
member passing json[\"version\"] and version."
@@ -206,24 +206,24 @@
{
"name": "process the widgets member",
"href": "https://w3c.github.io/miniapp-manifest/#dfn-process-the-widgets-member",
- "html": "To process the widgets
member, given ordered map json and ordered map manifest:",
+ "html": "To process the widgets
member, given ordered map json and ordered map manifest:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If json[\"widgets\"] does not exist, or if json[\"widgets\"] is not a list, return."
+ "html": "If json[\"widgets\"] does not exist, or if json[\"widgets\"] is not a list, return."
},
{
- "html": "Let widgets be a new empty list."
+ "html": "Let widgets be a new empty list."
},
{
- "html": "For each item of json[\"widgets\"]:",
+ "html": "For each item of json[\"widgets\"]:",
"rationale": "if",
"steps": [
{
- "html": "If item is not an ordered map, continue."
+ "html": "If item is not an ordered map, continue."
},
{
- "html": "Let widget be an ordered map."
+ "html": "Let widget be an ordered map."
},
{
"html": "Process the widget's name
member passing item and widget."
@@ -235,10 +235,10 @@
"html": "Process the widget's min_code
member passing item, manifest, and widget."
},
{
- "html": "If widget[\"name\"] does not exist, or if item[\"path\"] does not exist, continue."
+ "html": "If widget[\"name\"] does not exist, or if item[\"path\"] does not exist, continue."
},
{
- "html": "Append widget to widgets."
+ "html": "Append widget to widgets."
}
]
},
@@ -250,14 +250,14 @@
{
"name": "process the window member",
"href": "https://w3c.github.io/miniapp-manifest/#dfn-process-the-window-member",
- "html": "To process the window
member, given ordered map json and ordered map manifest:",
+ "html": "To process the window
member, given ordered map json and ordered map manifest:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If json[\"window\"] does not exist, or if json[\"window\"] is not an ordered map, return."
+ "html": "If json[\"window\"] does not exist, or if json[\"window\"] is not an ordered map, return."
},
{
- "html": "Let window be a new ordered map «[ \"auto_design_width\" → false, \"background_color\" → \"#ffffff\", \"background_text_style\" → \"dark\", \"design_width\" → 750, \"enable_pull_down_refresh\" → false, \"fullscreen\" → \"false\", \"navigation_bar_background_color\" → \"#000000\", \"navigation_bar_text_style\" → \"white\", \"navigation_bar_title_text\" → \"default\", \"on_reach_bottom_distance\" → 50, \"orientation\" → \"portrait\" ]»."
+ "html": "Let window be a new ordered map «[ \"auto_design_width\" → false, \"background_color\" → \"#ffffff\", \"background_text_style\" → \"dark\", \"design_width\" → 750, \"enable_pull_down_refresh\" → false, \"fullscreen\" → \"false\", \"navigation_bar_background_color\" → \"#000000\", \"navigation_bar_text_style\" → \"white\", \"navigation_bar_title_text\" → \"default\", \"on_reach_bottom_distance\" → 50, \"orientation\" → \"portrait\" ]»."
},
{
"html": "Process the window's auto_design_width
member passing json[\"window\"] and window."
@@ -306,29 +306,29 @@
{
"name": "processing a MiniApp manifest",
"href": "https://w3c.github.io/miniapp-manifest/#dfn-processing-a-miniapp-manifest",
- "html": "To process a MiniApp manifest at the extension point, given ordered map json and ordered map manifest:",
+ "html": "To process a MiniApp manifest at the extension point, given ordered map json and ordered map manifest:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If manifest[\"name\"] does not exist, throw a TypeError
."
+ "html": "If manifest[\"name\"] does not exist, throw a TypeError
."
},
{
- "html": "If manifest[\"icons\"] does not exist, throw a TypeError
."
+ "html": "If manifest[\"icons\"] does not exist, throw a TypeError
."
},
{
"html": "Let icons be manifest[\"icons\"]."
},
{
- "html": "If icons[\"src\"] does not exist, throw a TypeError
."
+ "html": "If icons[\"src\"] does not exist, throw a TypeError
."
},
{
- "html": "If manifest[\"icons\"] does not exist, throw a TypeError
."
+ "html": "If manifest[\"icons\"] does not exist, throw a TypeError
."
},
{
"html": "Process the app_id
member passing json and manifest."
},
{
- "html": "If manifest[\"app_id\"] does not exist, throw a TypeError
."
+ "html": "If manifest[\"app_id\"] does not exist, throw a TypeError
."
},
{
"html": "Process the color_scheme
member passing json and manifest."
@@ -343,13 +343,13 @@
"html": "Process the pages
member passing json and manifest."
},
{
- "html": "If manifest[\"pages\"] does not exist, throw a TypeError
."
+ "html": "If manifest[\"pages\"] does not exist, throw a TypeError
."
},
{
"html": "Process the platform_version
member passing json and manifest."
},
{
- "html": "If manifest[\"platform_version\"] does not exist, throw a TypeError
."
+ "html": "If manifest[\"platform_version\"] does not exist, throw a TypeError
."
},
{
"html": "Process the req_permissions
member passing json and manifest."
@@ -358,7 +358,7 @@
"html": "Process the version
member passing json and manifest."
},
{
- "html": "If manifest[\"version\"] does not exist, throw a TypeError
."
+ "html": "If manifest[\"version\"] does not exist, throw a TypeError
."
},
{
"html": "Process the widgets
member passing json and manifest."
@@ -371,11 +371,11 @@
{
"name": "process the platform version's min_code member",
"href": "https://w3c.github.io/miniapp-manifest/#dfn-process-the-platform-version-s-min_code-member",
- "html": "To process the platform version's min_code
member, given ordered map json and ordered map platform_version:",
+ "html": "To process the platform version's min_code
member, given ordered map json and ordered map platform_version:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If json[\"min_code\"] does not exist, or if json[\"min_code\"] is not a number, return failure."
+ "html": "If json[\"min_code\"] does not exist, or if json[\"min_code\"] is not a number, return failure."
},
{
"html": "Set platform_version[\"min_code\"] to json[\"min_code\"]."
@@ -385,11 +385,11 @@
{
"name": "process the platform version's release_type member",
"href": "https://w3c.github.io/miniapp-manifest/#dfn-process-the-platform-version-s-release_type-member",
- "html": "To process the platform version's release_type
member, given ordered map json and ordered map platform_version:",
+ "html": "To process the platform version's release_type
member, given ordered map json and ordered map platform_version:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If json[\"release_type\"] does not exist, or if json[\"release_type\"] is not a string, return."
+ "html": "If json[\"release_type\"] does not exist, or if json[\"release_type\"] is not a string, return."
},
{
"html": "Set platform_version[\"release_type\"] to json[\"release_type\"]."
@@ -399,11 +399,11 @@
{
"name": "process the platform version's target_code member",
"href": "https://w3c.github.io/miniapp-manifest/#dfn-process-the-platform-version-s-target_code-member",
- "html": "To process the platform version's target_code
member, given ordered map json and ordered map platform_version:",
+ "html": "To process the platform version's target_code
member, given ordered map json and ordered map platform_version:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If json[\"target_code\"] does not exist, or if json[\"target_code\"] is not a number, return."
+ "html": "If json[\"target_code\"] does not exist, or if json[\"target_code\"] is not a number, return."
},
{
"html": "Set platform_version[\"target_code\"] to json[\"target_code\"]."
@@ -413,11 +413,11 @@
{
"name": "process the permission resource's name member",
"href": "https://w3c.github.io/miniapp-manifest/#dfn-process-the-permission-resource-s-name-member",
- "html": "To process the permission resource's name
member, given ordered map json and ordered map permission:",
+ "html": "To process the permission resource's name
member, given ordered map json and ordered map permission:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If json[\"name\"] does not exist, orreason
member, given ordered map json and ordered map permission:",
+ "html": "To process the permission resource's reason
member, given ordered map json and ordered map permission:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If json[\"reason\"] does not exist, orcode
member, given ordered map json and ordered map version:",
+ "html": "To process the version's code
member, given ordered map json and ordered map version:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If json[\"code\"] does not exist, or if json[\"code\"] is not a number, return failure."
+ "html": "If json[\"code\"] does not exist, or if json[\"code\"] is not a number, return failure."
},
{
"html": "Let version be a number, initially 1."
@@ -461,11 +461,11 @@
{
"name": "process the version's name member",
"href": "https://w3c.github.io/miniapp-manifest/#dfn-process-the-version-s-name-member",
- "html": "To process the version's name
member, given ordered map json and ordered map version:",
+ "html": "To process the version's name
member, given ordered map json and ordered map version:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If json[\"name\"] does not exist, or if json[\"name\"] is not a string, return failure."
+ "html": "If json[\"name\"] does not exist, or if json[\"name\"] is not a string, return failure."
},
{
"html": "Set version[\"name\"] to json[\"name\"]."
@@ -475,11 +475,11 @@
{
"name": "process the widget's name member",
"href": "https://w3c.github.io/miniapp-manifest/#dfn-process-the-widget-s-name-member",
- "html": "To process the widget's name
member, given ordered map json and ordered map widget:",
+ "html": "To process the widget's name
member, given ordered map json and ordered map widget:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If json[\"name\"] does not exist, or if json[\"name\"] is not a string, return."
+ "html": "If json[\"name\"] does not exist, or if json[\"name\"] is not a string, return."
},
{
"html": "Set widget[\"name\"] to json[\"name\"]."
@@ -489,14 +489,14 @@
{
"name": "process the widget's path member",
"href": "https://w3c.github.io/miniapp-manifest/#dfn-process-the-widget-s-path-member",
- "html": "To process the widget's path
member, given ordered map json and ordered map widget:",
+ "html": "To process the widget's path
member, given ordered map json and ordered map widget:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If json[\"path\"] does not exist, or if json[\"path\"] is not a string, return."
+ "html": "If json[\"path\"] does not exist, or if json[\"path\"] is not a string, return."
},
{
- "html": "Let url be the result of parsing json[\"path\"]."
+ "html": "Let url be the result of parsing json[\"path\"]."
},
{
"html": "If url is failure, return."
@@ -509,14 +509,14 @@
{
"name": "process the widget's min_code member",
"href": "https://w3c.github.io/miniapp-manifest/#dfn-process-the-widget-s-min_code-member",
- "html": "To process the widget's min_code
member, given ordered map json, ordered map widget and ordered map manifest:",
+ "html": "To process the widget's min_code
member, given ordered map json, ordered map widget and ordered map manifest:",
"rationale": ".algorithm",
"steps": [
{
"html": "Set widget[\"min_code\"] to manifest[\"min_code\"]."
},
{
- "html": "If json[\"min_code\"] does not exist, or if json[\"min_code\"] is not a string, return."
+ "html": "If json[\"min_code\"] does not exist, or if json[\"min_code\"] is not a string, return."
},
{
"html": "Set widget[\"min_code\"] to json[\"min_code\"]."
@@ -526,11 +526,11 @@
{
"name": "process the window's auto_design_width member",
"href": "https://w3c.github.io/miniapp-manifest/#dfn-process-the-window-s-auto_design_width-member",
- "html": "To process the window's auto_design_width
member, given ordered map json and ordered map window:",
+ "html": "To process the window's auto_design_width
member, given ordered map json and ordered map window:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If json[\"auto_design_width\"] does not exist, or if json[\"auto_design_width\"] is not a boolean, return."
+ "html": "If json[\"auto_design_width\"] does not exist, or if json[\"auto_design_width\"] is not a boolean, return."
},
{
"html": "Set window[\"auto_design_width\"] to json[\"auto_design_width\"]."
@@ -540,11 +540,11 @@
{
"name": "process the window's background_text_style member",
"href": "https://w3c.github.io/miniapp-manifest/#dfn-process-the-window-s-background_text_style-member",
- "html": "To process the window's background_text_style
member, given ordered map json and ordered map window:",
+ "html": "To process the window's background_text_style
member, given ordered map json and ordered map window:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If json[\"background_text_style\"] does not exist, ordesign_width
member, given ordered map json and ordered map window:",
+ "html": "To process the window's design_width
member, given ordered map json and ordered map window:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If json[\"design_width\"] does not exist, orenable_pull_down_refresh
member, given ordered map json and ordered map window:",
+ "html": "To process the window's enable_pull_down_refresh
member, given ordered map json and ordered map window:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If json[\"enable_pull_down_refresh\"] does not exist, fullscreen
member, given ordered map json and ordered map window:",
+ "html": "To process the window's fullscreen
member, given ordered map json and ordered map window:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If json[\"fullscreen\"] does not exist, navigation_bar_text_style
member, given ordered map json and ordered map window:",
+ "html": "To process the window's navigation_bar_text_style
member, given ordered map json and ordered map window:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If json[\"navigation_bar_text_style\"] does not exist, ornavigation_bar_title_text
member, given ordered map json and ordered map window:",
+ "html": "To process the window's navigation_bar_title_text
member, given ordered map json and ordered map window:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If json[\"navigation_bar_title_text\"] does not exist, ornavigation_style
member, given ordered map json and ordered map window:",
+ "html": "To process the window's navigation_style
member, given ordered map json and ordered map window:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If json[\"navigation_style\"] does not exist, oron_reach_bottom_distance
member, given ordered map json and ordered map window:",
+ "html": "To process the window's on_reach_bottom_distance
member, given ordered map json and ordered map window:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If json[\"on_reach_bottom_distance\"] does not exist, ororientation
member, given ordered map json and ordered map window:",
+ "html": "To process the window's orientation
member, given ordered map json and ordered map window:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If json[\"orientation\"] does not exist, or0x06054b50
(read as little-endian) in miniapp_zip_file that marks the End of the Central Directory [ZIP]."
+ "html": "Let eocd_pointer be a byte sequence as the result of locating the byte sequence 0x06054b50
(read as little-endian) in miniapp_zip_file that marks the End of the Central Directory [ZIP]."
},
{
"html": "Set eocd_pointer to eocd_pointer + 0x00000010."
@@ -99,20 +99,20 @@
{
"name": "processing the MiniApp manifest",
"href": "https://w3c.github.io/miniapp-packaging/#dfn-processing-the-miniapp-manifest",
- "html": "To process the MiniApp manifest, given MiniApp Package miniapp_package, perform the following steps. They return ordered map.",
+ "html": "To process the MiniApp manifest, given MiniApp Package miniapp_package, perform the following steps. They return ordered map.",
"rationale": ".algorithm",
"steps": [
{
"html": "If manifest.json
file does not exist in the package's root directory, then return failure."
},
{
- "html": "Let manifest_json be the result of parse JSON from bytes, passing manifest.json
."
+ "html": "Let manifest_json be the result of parse JSON from bytes, passing manifest.json
."
},
{
- "html": "If manifest_json is a parsing exception, or manifest_json is not an ordered map, then return failure."
+ "html": "If manifest_json is a parsing exception, or manifest_json is not an ordered map, then return failure."
},
{
- "html": "Let manifest be an ordered map."
+ "html": "Let manifest be an ordered map."
},
{
"html": "Process a MiniApp manifest, passing manifest_json and manifest."
@@ -125,7 +125,7 @@
{
"name": "preparing the platform runtime",
"href": "https://w3c.github.io/miniapp-packaging/#dfn-preparing-the-platform-runtime",
- "html": "To prepare the platform runtime, given URL miniapp_uri and ordered map manifest, perform the following steps. They return a MiniApp start page.",
+ "html": "To prepare the platform runtime, given URL miniapp_uri and ordered map manifest, perform the following steps. They return a MiniApp start page.",
"rationale": ".algorithm",
"steps": [
{
@@ -148,7 +148,7 @@
{
"name": "Verify platform compatibility",
"href": "https://w3c.github.io/miniapp-packaging/#dfn-verify-platform-compatibility",
- "html": "To verify platform compatibility, given MiniApp Package miniapp_package and ordered map manifest, perform the following steps:",
+ "html": "To verify platform compatibility, given MiniApp Package miniapp_package and ordered map manifest, perform the following steps:",
"rationale": ".algorithm",
"steps": [
{
@@ -158,7 +158,7 @@
"html": "If platform_required is not compatible with the user agent configuration, then return failure."
},
{
- "html": "For each page of list manifest[\"pages\"]:",
+ "html": "For each page of list manifest[\"pages\"]:",
"rationale": "if",
"steps": [
{
@@ -167,7 +167,7 @@
]
},
{
- "html": "If manifest[\"widgets\"] exists, then:kind
of MediaStreamTrack
contained. On setting\n contentHint
to value,",
+ "html": "Valid values for the application-set content hint are dependent on the\n kind
of MediaStreamTrack
contained. On setting\n contentHint
to value,",
"rationale": "if",
"steps": [
{
- "html": "If this MediaStreamTrack
's kind
attribute is\n \"audio\"
, and value is not one of \"\"
,\n \"speech\"
, \"speech-recognition\"
, or \"music\"
, abort these steps."
+ "html": "If this MediaStreamTrack
's kind
attribute is\n \"audio\"
, and value is not one of \"\"
,\n \"speech\"
, \"speech-recognition\"
, or \"music\"
, abort these steps."
},
{
- "html": "If this MediaStreamTrack
's kind
attribute is\n \"video\"
, and value is not one of \"\"
,\n \"motion\"
, \"detail\"
or \"text\"
,\n abort these steps."
+ "html": "If this MediaStreamTrack
's kind
attribute is\n \"video\"
, and value is not one of \"\"
,\n \"motion\"
, \"detail\"
or \"text\"
,\n abort these steps."
},
{
- "html": "Set this MediaStreamTrack
's application-set content hint to\n value."
+ "html": "Set this MediaStreamTrack
's application-set content hint to\n value."
},
{
- "html": "The implementation should adapt its decision on how to handle the\n content of this MediaStreamTrack
according to the new value of\n its application-set content hint. This adaptation should happen as\n quickly as reasonable, e.g. within the next couple of captured video\n frames or audio buffers."
+ "html": "The implementation should adapt its decision on how to handle the\n content of this MediaStreamTrack
according to the new value of\n its application-set content hint. This adaptation should happen as\n quickly as reasonable, e.g. within the next couple of captured video\n frames or audio buffers."
}
]
},
@@ -27,7 +27,7 @@
"rationale": "return",
"steps": [
{
- "html": "Return this MediaStreamTrack
's application-set content hint."
+ "html": "Return this MediaStreamTrack
's application-set content hint."
}
]
}
diff --git a/ed/algorithms/navigation-timing-2.json b/ed/algorithms/navigation-timing-2.json
index fe9e3dab794b..f398d0b55f5c 100644
--- a/ed/algorithms/navigation-timing-2.json
+++ b/ed/algorithms/navigation-timing-2.json
@@ -5,31 +5,31 @@
},
"algorithms": [
{
- "html": "The redirectStart
getter steps are to perform the following steps:",
+ "html": "The redirectStart
getter steps are to perform the following steps:",
"rationale": "if",
"steps": [
{
"html": "If this's [=PerformanceNavigationTiming/redirect count] is 0, return 0."
},
{
- "html": "Otherwise return this's redirectStart
."
+ "html": "Otherwise return this's redirectStart
."
}
]
},
{
- "html": "The redirectEnd
getter steps are to perform the following steps:",
+ "html": "The redirectEnd
getter steps are to perform the following steps:",
"rationale": "if",
"steps": [
{
"html": "If this's [=PerformanceNavigationTiming/redirect count] is 0, return 0."
},
{
- "html": "Otherwise return this's redirectEnd
."
+ "html": "Otherwise return this's redirectEnd
."
}
]
},
{
- "html": "The workerStart
getter steps are to perform the following steps:",
+ "html": "The workerStart
getter steps are to perform the following steps:",
"rationale": "let",
"steps": [
{
@@ -39,12 +39,12 @@
"html": "If workerTiming is null, then return this's prototype's workerStart
."
},
{
- "html": "Return workerTiming's start time."
+ "html": "Return workerTiming's start time."
}
]
},
{
- "html": "The fetchStart
getter steps are to perform the following steps:",
+ "html": "The fetchStart
getter steps are to perform the following steps:",
"rationale": "let",
"steps": [
{
@@ -54,27 +54,27 @@
"html": "If workerTiming is null, then return this's prototype's fetchStart
."
},
{
- "html": "Return workerTiming's fetch event dispatch time."
+ "html": "Return workerTiming's fetch event dispatch time."
}
]
},
{
"name": "create the navigation timing entry",
"href": "https://w3c.github.io/navigation-timing/#dfn-create-the-navigation-timing-entry",
- "html": "To create the navigation timing entry for Document
document,\n given a fetch timing info fetchTiming, a number redirectCount, a\n NavigationTimingType
navigationType, a null or service worker timing info serviceWorkerTiming,\n a DOMString cacheMode, a DOMHighResTimeStamp
criticalCHRestart, and a response body info bodyInfo, do the following:",
+ "html": "To create the navigation timing entry for Document
document,\n given a fetch timing info fetchTiming, a number redirectCount, a\n NavigationTimingType
navigationType, a null or service worker timing info serviceWorkerTiming,\n a DOMString cacheMode, a DOMHighResTimeStamp
criticalCHRestart, and a response body info bodyInfo, do the following:",
"rationale": "let",
"steps": [
{
- "html": "Let global be document's relevant global object."
+ "html": "Let global be document's relevant global object."
},
{
- "html": "Let navigationTimingEntry be a new PerformanceNavigationTiming
object in global's\n realm."
+ "html": "Let navigationTimingEntry be a new PerformanceNavigationTiming
object in global's\n realm."
},
{
- "html": "Setup the resource\n timing entry for navigationTimingEntry given \"navigation
\", document's\n URL
, fetchTiming, cacheMode, and bodyInfo."
+ "html": "Setup the resource\n timing entry for navigationTimingEntry given \"navigation
\", document's\n URL
, fetchTiming, cacheMode, and bodyInfo."
},
{
- "html": "Set navigationTimingEntry's document load\n timing to document's load timing info"
+ "html": "Set navigationTimingEntry's document load\n timing to document's load timing info"
},
{
"html": "Set navigationTimingEntry's previous\n document unload timing to document's previous document unload timing."
@@ -95,7 +95,7 @@
"html": "Set navigationTimingEntry's Critical-CH
restart time\n to criticalCHRestart."
},
{
- "html": "Set navigationTimingEntry's not restored reasons\n to the result of creating a\n NotRestoredReasons object given document's not restored reasons."
+ "html": "Set navigationTimingEntry's not restored reasons\n to the result of creating a\n NotRestoredReasons object given document's not restored reasons."
},
{
"html": "add navigationTimingEntry to global's\n performance entry buffer."
@@ -105,7 +105,7 @@
{
"name": "queue the navigation timing entry",
"href": "https://w3c.github.io/navigation-timing/#dfn-queue-the-navigation-timing-entry",
- "html": "To queue the navigation timing entry for Document
document,\n queue document's\n navigation timing entry.",
+ "html": "To queue the navigation timing entry for Document
document,\n queue document's\n navigation timing entry.",
"rationale": "To "
}
]
diff --git a/ed/algorithms/payment-handler.json b/ed/algorithms/payment-handler.json
index 13a116c23390..748b7c182a7f 100644
--- a/ed/algorithms/payment-handler.json
+++ b/ed/algorithms/payment-handler.json
@@ -23,29 +23,29 @@
]
},
{
- "html": "Given a PaymentMethodData and a payment handler that matches on\n payment method identifier, this algorithm returns\n true
if this payment handler can be used for payment:",
+ "html": "Given a PaymentMethodData and a payment handler that matches on\n payment method identifier, this algorithm returns\n true
if this payment handler can be used for payment:",
"rationale": ".algorithm",
"steps": [
{
- "html": "Let methodName be the payment method identifier\n string specified in the PaymentMethodData."
+ "html": "Let methodName be the payment method identifier\n string specified in the PaymentMethodData."
},
{
"html": "Let methodData be the payment method specific data of\n PaymentMethodData."
},
{
- "html": "Let paymentHandlerOrigin be the origin of the\n ServiceWorkerRegistration
scope URL of the payment handler."
+ "html": "Let paymentHandlerOrigin be the origin of the\n ServiceWorkerRegistration
scope URL of the payment handler."
},
{
"html": "Let paymentMethodManifest be the ingested and\n parsed payment method manifest for the\n methodName."
},
{
- "html": "If methodName is a URL-based payment method\n identifier with the \"*\"
string supported\n origins in paymentMethodManifest, return\n true
."
+ "html": "If methodName is a URL-based payment method\n identifier with the \"*\"
string supported\n origins in paymentMethodManifest, return\n true
."
},
{
- "html": "Otherwise, if the URL-based payment method identifier\n methodName has the same origin as\n paymentHandlerOrigin, fire the CanMakePaymentEvent
\n in the payment handler and return the result."
+ "html": "Otherwise, if the URL-based payment method identifier\n methodName has the same origin as\n paymentHandlerOrigin, fire the CanMakePaymentEvent
\n in the payment handler and return the result."
},
{
- "html": "Otherwise, if supported origins in\n paymentMethodManifest is an ordered set of origin\n that contains the paymentHandlerOrigin, fire the\n CanMakePaymentEvent
in the payment handler and return the\n result."
+ "html": "Otherwise, if supported origins in\n paymentMethodManifest is an ordered set of origin\n that contains the paymentHandlerOrigin, fire the\n CanMakePaymentEvent
in the payment handler and return the\n result."
},
{
"html": "Otherwise, return false
."
@@ -57,13 +57,13 @@
"rationale": "let",
"steps": [
{
- "html": "Let registeredMethods be the set of registered\n payment method identifiers of the invoked payment handler."
+ "html": "Let registeredMethods be the set of registered\n payment method identifiers of the invoked payment handler."
},
{
- "html": "Create a new empty Sequence."
+ "html": "Create a new empty Sequence."
},
{
- "html": "Set dataList to the newly created Sequence."
+ "html": "Set dataList to the newly created Sequence."
},
{
"html": "For each item in\n PaymentRequest@[[methodData]] in the\n corresponding payment request, perform the following steps:",
@@ -105,13 +105,13 @@
"rationale": "let",
"steps": [
{
- "html": "Let registeredMethods be the set of registered\n payment method identifiers of the invoked payment handler."
+ "html": "Let registeredMethods be the set of registered\n payment method identifiers of the invoked payment handler."
},
{
- "html": "Create a new empty Sequence."
+ "html": "Create a new empty Sequence."
},
{
- "html": "Set modifierList to the newly created\n Sequence."
+ "html": "Set modifierList to the newly created\n Sequence."
},
{
"html": "For each item in\n PaymentRequest@[[paymentDetails]].modifiers
\n in the corresponding payment request, perform the following steps:",
@@ -156,7 +156,7 @@
"html": "Let registration be the ServiceWorkerRegistration
\n corresponding to the payment handler selected by the user."
},
{
- "html": "If registration is not found, reject the Promise
\n that was created by PaymentRequest.show() with an\n \"InvalidStateError
\" DOMException
and terminate these steps."
+ "html": "If registration is not found, reject the Promise
\n that was created by PaymentRequest.show() with an\n \"InvalidStateError
\" DOMException
and terminate these steps."
},
{
"html": "Then run the following steps in parallel, with\n dispatchedEvent:",
@@ -166,7 +166,7 @@
"html": "Wait for all of the promises in the extend lifetime\n promises of dispatchedEvent to resolve."
},
{
- "html": "If the payment handler has not provided a\n PaymentHandlerResponse
, reject the Promise
that was\n created by PaymentRequest.show() with an\n \"OperationError
\" DOMException
."
+ "html": "If the payment handler has not provided a\n PaymentHandlerResponse
, reject the Promise
that was\n created by PaymentRequest.show() with an\n \"OperationError
\" DOMException
."
}
]
}
@@ -179,7 +179,7 @@
"html": "Let event be this PaymentRequestEvent
."
},
{
- "html": "If event's isTrusted
attribute is false, return a\n Promise
rejected with a \"InvalidStateError
\" DOMException
."
+ "html": "If event's isTrusted
attribute is false, return a\n Promise
rejected with a \"InvalidStateError
\" DOMException
."
},
{
"html": "Let request be the PaymentRequest that\n triggered this PaymentRequestEvent
."
@@ -188,16 +188,16 @@
"html": "Let url be the result of parsing the url argument."
},
{
- "html": "If the url parsing throws an exception, return a Promise
\n rejected with that exception."
+ "html": "If the url parsing throws an exception, return a Promise
\n rejected with that exception."
},
{
- "html": "If url is about:blank
, return a\n Promise
rejected with a TypeError
."
+ "html": "If url is about:blank
, return a\n Promise
rejected with a TypeError
."
},
{
- "html": "If url's origin is not the same as the service\n worker's origin associated with the payment handler, return a\n Promise
resolved with null."
+ "html": "If url's origin is not the same as the service\n worker's origin associated with the payment handler, return a\n Promise
resolved with null."
},
{
- "html": "Let promise be a new Promise
."
+ "html": "Let promise be a new Promise
."
},
{
"html": "Return promise and perform the remaining steps in\n parallel:"
@@ -207,15 +207,15 @@
"rationale": "if",
"steps": [
{
- "html": "If event.[[windowClient]]
.visibilityState\n is not \"unloaded\", reject promise with an\n \"InvalidStateError
\" DOMException
and abort these steps."
+ "html": "If event.[[windowClient]]
.visibilityState\n is not \"unloaded\", reject promise with an\n \"InvalidStateError
\" DOMException
and abort these steps."
}
]
},
{
- "html": "Let newContext be a new top-level browsing\n context."
+ "html": "Let newContext be a new top-level browsing\n context."
},
{
- "html": "Navigate newContext to url, with\n exceptions enabled and replacement enabled."
+ "html": "Navigate newContext to url, with\n exceptions enabled and replacement enabled."
},
{
"html": "If the navigation throws an exception, reject promise\n with that exception and abort these steps."
@@ -257,7 +257,7 @@
"html": "If event.updateWith(detailsPromise) throws, rethrow the\n error."
},
{
- "html": "If event.updateWith(detailsPromise) times out\n (optional), throw \"InvalidStateError
\" DOMException
."
+ "html": "If event.updateWith(detailsPromise) times out\n (optional), throw \"InvalidStateError
\" DOMException
."
},
{
"html": "Construct and return a PaymentRequestDetailsUpdate
from\n the detailsPromise in\n event.updateWith(detailsPromise)."
@@ -278,7 +278,7 @@
"html": "If event.updateWith(detailsPromise) throws, rethrow the\n error."
},
{
- "html": "If event.updateWith(detailsPromise) times out\n (optional), throw \"InvalidStateError
\" DOMException
."
+ "html": "If event.updateWith(detailsPromise) times out\n (optional), throw \"InvalidStateError
\" DOMException
."
},
{
"html": "Construct and return a PaymentRequestDetailsUpdate
from\n the detailsPromise in\n event.updateWith(detailsPromise)."
@@ -290,19 +290,19 @@
"rationale": ".algorithm",
"steps": [
{
- "html": "If event's isTrusted
is false, then throw an\n \"InvalidStateError\" DOMException
and abort these steps."
+ "html": "If event's isTrusted
is false, then throw an\n \"InvalidStateError\" DOMException
and abort these steps."
},
{
- "html": "If event's dispatch flag is unset, then throw an\n \"InvalidStateError
\" DOMException
and abort these steps."
+ "html": "If event's dispatch flag is unset, then throw an\n \"InvalidStateError
\" DOMException
and abort these steps."
},
{
- "html": "If event.[[respondWithCalled]]
is true, throw an\n \"InvalidStateError
\" DOMException
and abort these steps."
+ "html": "If event.[[respondWithCalled]]
is true, throw an\n \"InvalidStateError
\" DOMException
and abort these steps."
},
{
"html": "Set event.[[respondWithCalled]]
to true."
},
{
- "html": "Set the event's stop propagation flag and\n event's stop immediate propagation flag."
+ "html": "Set the event's stop propagation flag and\n event's stop immediate propagation flag."
},
{
"html": "Add handlerResponsePromise to the event's extend\n lifetime promises"
@@ -311,7 +311,7 @@
"html": "Increment the event's pending promises count by one."
},
{
- "html": "Upon rejection of handlerResponsePromise:",
+ "html": "Upon rejection of handlerResponsePromise:",
"rationale": "run",
"steps": [
{
@@ -320,11 +320,11 @@
]
},
{
- "html": "Upon fulfillment of handlerResponsePromise:",
+ "html": "Upon fulfillment of handlerResponsePromise:",
"rationale": "let",
"steps": [
{
- "html": "Let handlerResponse be value converted to an\n IDL value PaymentHandlerResponse
. If this throws an\n exception, run the payment app failure algorithm and\n terminate these steps."
+ "html": "Let handlerResponse be value converted to an\n IDL value PaymentHandlerResponse
. If this throws an\n exception, run the payment app failure algorithm and\n terminate these steps."
},
{
"html": "Validate that all required members exist in\n handlerResponse and are well formed.",
@@ -404,14 +404,14 @@
]
},
{
- "html": "Upon fulfillment or upon rejection of\n handlerResponsePromise, queue a microtask to perform the\n following steps:",
+ "html": "Upon fulfillment or upon rejection of\n handlerResponsePromise, queue a microtask to perform the\n following steps:",
"rationale": "decrement",
"steps": [
{
"html": "Decrement the event's pending promises count by one."
},
{
- "html": "Let registration be the this's relevant\n global object's associated service worker's\n containing service worker registration."
+ "html": "Let registration be the this's relevant\n global object's associated service worker's\n containing service worker registration."
},
{
"html": "If registration is not null, invoke Try\n Activate with registration."
diff --git a/ed/algorithms/payment-method-id.json b/ed/algorithms/payment-method-id.json
index b87f7977bf56..3a4b7d71d5e3 100644
--- a/ed/algorithms/payment-method-id.json
+++ b/ed/algorithms/payment-method-id.json
@@ -11,7 +11,7 @@
"rationale": ".algorithm",
"steps": [
{
- "html": "Let url be the result of running the basic URL parser\n with pmi."
+ "html": "Let url be the result of running the basic URL parser\n with pmi."
},
{
"html": "If url is failure, validate a standardized payment method identifier with pmi and return the result."
@@ -24,14 +24,14 @@
{
"name": "validate a URL-based payment method identifier",
"href": "https://w3c.github.io/payment-method-id/#dfn-validate-a-url-based-payment-method-identifier",
- "html": "The steps to validate a URL-based payment method\n identifier are given by the following algorithm. The algorithm\n takes a URL url as input and returns true if the URL is\n valid:",
+ "html": "The steps to validate a URL-based payment method\n identifier are given by the following algorithm. The algorithm\n takes a URL url as input and returns true if the URL is\n valid:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If url's scheme is not \"https\", return false."
+ "html": "If url's scheme is not \"https\", return false."
},
{
- "html": "If url's username or password is not the empty\n string, return false."
+ "html": "If url's username or password is not the empty\n string, return false."
},
{
"html": "Otherwise, return true."
diff --git a/ed/algorithms/payment-request.json b/ed/algorithms/payment-request.json
index 81c419e58226..5451c43a6bd6 100644
--- a/ed/algorithms/payment-request.json
+++ b/ed/algorithms/payment-request.json
@@ -11,7 +11,7 @@
"rationale": ".algorithm",
"steps": [
{
- "html": "If this's relevant global object's associated Document
is not allowed to use the \"payment\"\n permission, then throw a \"SecurityError
\"\n DOMException
."
+ "html": "If this's relevant global object's associated Document
is not allowed to use the \"payment\"\n permission, then throw a \"SecurityError
\"\n DOMException
."
},
{
"html": "Establish the request's id:",
@@ -30,20 +30,20 @@
"rationale": "if",
"steps": [
{
- "html": "If the length of the methodData sequence is zero, then\n throw a TypeError
, optionally informing the\n developer that at least one payment method is required."
+ "html": "If the length of the methodData sequence is zero, then\n throw a TypeError
, optionally informing the\n developer that at least one payment method is required."
},
{
- "html": "Let seenPMIs be the empty set."
+ "html": "Let seenPMIs be the empty set."
},
{
"html": "For each paymentMethod of methodData:",
"rationale": "run",
"steps": [
{
- "html": "Run the\n steps to validate a payment method identifier with\n paymentMethod.supportedMethods
. If it\n returns false, then throw a RangeError
exception.\n Optionally, inform the developer that the payment method\n identifier is invalid."
+ "html": "Run the\n steps to validate a payment method identifier with\n paymentMethod.supportedMethods
. If it\n returns false, then throw a RangeError
exception.\n Optionally, inform the developer that the payment method\n identifier is invalid."
},
{
- "html": "Let pmi be the result of parsing\n paymentMethod.supportedMethods
with\n basic URL parser:",
+ "html": "Let pmi be the result of parsing\n paymentMethod.supportedMethods
with\n basic URL parser:",
"rationale": "if",
"steps": [
{
@@ -52,13 +52,13 @@
]
},
{
- "html": "If seenPMIs contains pmi throw a\n RangeError
DOMException
optionally informing the\n developer that this payment method identifier is a\n duplicate."
+ "html": "If seenPMIs contains pmi throw a\n RangeError
DOMException
optionally informing the\n developer that this payment method identifier is a\n duplicate."
},
{
- "html": "Append pmi to seenPMIs."
+ "html": "Append pmi to seenPMIs."
},
{
- "html": "If the data
member of\n paymentMethod is missing, let serializedData be null.\n Otherwise, let serializedData be the result of serialize\n paymentMethod.data
into a JSON\n string. Rethrow any exceptions."
+ "html": "If the data
member of\n paymentMethod is missing, let serializedData be null.\n Otherwise, let serializedData be the result of serialize\n paymentMethod.data
into a JSON\n string. Rethrow any exceptions."
},
{
"html": "If serializedData is not null, and if the specification\n that defines the\n paymentMethod.supportedMethods
\n specifies an additional data type:",
@@ -68,7 +68,7 @@
"html": "Let object be the result of JSON-parsing\n serializedData."
},
{
- "html": "\n Let idl be the result of converting object to an IDL value of the\n additional data type. Rethrow any\n exceptions.\n
" + "html": "\n Let idl be the result of converting object to an IDL value of the\n additional data type. Rethrow any\n exceptions.\n
" }, { "html": "\n Run the steps to validate payment method data,\n if any, from the specification that defines the\n paymentMethod.supportedMethods
\n on object. Rethrow any exceptions.\n
sequence
<PaymentShippingOption
>."
+ "html": "Let options be an empty\n sequence
<PaymentShippingOption
>."
},
{
"html": "If the shippingOptions
member of\n details is present, then:",
@@ -125,7 +125,7 @@
"html": "Check and canonicalize amount\n item.amount
. Rethrow any exceptions."
},
{
- "html": "If seenIDs contains\n option.id
, then throw a\n TypeError
. Optionally, inform the developer that\n shipping option IDs must be unique."
+ "html": "If seenIDs contains\n option.id
, then throw a\n TypeError
. Optionally, inform the developer that\n shipping option IDs must be unique."
},
{
"html": "Otherwise, append\n option.id
to seenIDs."
@@ -150,7 +150,7 @@
"rationale": "let",
"steps": [
{
- "html": "Let modifiers be an empty\n sequence
<PaymentDetailsModifier
>."
+ "html": "Let modifiers be an empty\n sequence
<PaymentDetailsModifier
>."
},
{
"html": "If the modifiers
member of details\n is present, then:",
@@ -182,7 +182,7 @@
]
},
{
- "html": "If the data
member of\n modifier is missing, let serializedData be null.\n Otherwise, let serializedData be the result of\n serialize\n modifier.data
into a JSON\n string. Rethrow any exceptions."
+ "html": "If the data
member of\n modifier is missing, let serializedData be null.\n Otherwise, let serializedData be the result of\n serialize\n modifier.data
into a JSON\n string. Rethrow any exceptions."
},
{
"html": "Add the tuple\n (modifier.supportedMethods
,\n serializedData) to serializedModifierData."
@@ -245,34 +245,34 @@
"rationale": ".algorithm",
"steps": [
{
- "html": "Let request be this."
+ "html": "Let request be this."
},
{
- "html": "If the relevant global object of request does not have\n transient activation, the user agent MAY:",
+ "html": "If the relevant global object of request does not have\n transient activation, the user agent MAY:",
"rationale": "return",
"steps": [
{
- "html": "Return a promise rejected with with a \"SecurityError
\"\n DOMException
."
+ "html": "Return a promise rejected with with a \"SecurityError
\"\n DOMException
."
}
]
},
{
- "html": "Otherwise,\n consume user activation of the relevant global object."
+ "html": "Otherwise,\n consume user activation of the relevant global object."
},
{
- "html": "Let document be request's relevant global object's\n associated Document
."
+ "html": "Let document be request's relevant global object's\n associated Document
."
},
{
- "html": "If document is\n not fully active, then return a promise rejected\n with an \"AbortError
\" DOMException
."
+ "html": "If document is\n not fully active, then return a promise rejected\n with an \"AbortError
\" DOMException
."
},
{
- "html": "If document's visibility state is not \"visible\"
,\n then return a promise rejected with an \"AbortError
\"\n DOMException
."
+ "html": "If document's visibility state is not \"visible\"
,\n then return a promise rejected with an \"AbortError
\"\n DOMException
."
},
{
- "html": "\n Optionally, if the user agent wishes to disallow the call\n to show
()
to protect the user, then return a\n promise rejected with a \"SecurityError
\" DOMException
. For\n example, the user agent may limit the rate at which a page\n can call show
()
, as described in section\n 19. \n Privacy and Security Considerations.\n
\n Optionally, if the user agent wishes to disallow the call\n to show
()
to protect the user, then return a\n promise rejected with a \"SecurityError
\" DOMException
. For\n example, the user agent may limit the rate at which a page\n can call show
()
, as described in section\n 19. \n Privacy and Security Considerations.\n
[[state]]
is not\n \"created\" then return a promise rejected\n with an \"InvalidStateError
\" DOMException
."
+ "html": "If request.[[state]]
is not\n \"created\" then return a promise rejected\n with an \"InvalidStateError
\" DOMException
."
},
{
"html": "If the user agent's payment request is showing\n boolean is true, then:",
@@ -282,7 +282,7 @@
"html": "Set request.[[state]]
to\n \"closed\"."
},
{
- "html": "Return a promise rejected with an \"AbortError
\"\n DOMException
."
+ "html": "Return a promise rejected with an \"AbortError
\"\n DOMException
."
}
]
},
@@ -290,7 +290,7 @@
"html": "Set request.[[state]]
to\n \"interactive\"."
},
{
- "html": "Let acceptPromise be a new promise."
+ "html": "Let acceptPromise be a new promise."
},
{
"html": "Set request.[[acceptPromise]]
to\n acceptPromise."
@@ -300,7 +300,7 @@
"rationale": "reject",
"steps": [
{
- "html": "Reject acceptPromise with an \"AbortError
\"\n DOMException
."
+ "html": "Reject acceptPromise with an \"AbortError
\"\n DOMException
."
},
{
"html": "Set request.[[state]]
to\n \"closed\"."
@@ -314,10 +314,10 @@
"html": "Set request's payment-relevant browsing context's\n payment request is showing boolean to true."
},
{
- "html": "Return acceptPromise and perform the remaining steps in\n parallel."
+ "html": "Return acceptPromise and perform the remaining steps in\n parallel."
},
{
- "html": "Let handlers be an empty list."
+ "html": "Let handlers be an empty list."
},
{
"html": "For each paymentMethod tuple in\n request.[[serializedMethodData]]
:",
@@ -330,10 +330,10 @@
"html": "Let data be the result of JSON-parsing the second element\n in the paymentMethod tuple."
},
{
- "html": "If the specification that defines the identifier specifies\n an additional data type, then convert data to an IDL value of that type.\n Otherwise, convert data to\n object
."
+ "html": "If the specification that defines the identifier specifies\n an additional data type, then convert data to an IDL value of that type.\n Otherwise, convert data to\n object
."
},
{
- "html": "If conversion results in an exception error:",
+ "html": "If conversion results in an exception error:",
"rationale": "set",
"steps": [
{
@@ -351,7 +351,7 @@
]
},
{
- "html": "Let registeredHandlers be a list of registered\n payment handlers for the payment method identifier."
+ "html": "Let registeredHandlers be a list of registered\n payment handlers for the payment method identifier."
},
{
"html": "For each handler in registeredHandlers:",
@@ -375,7 +375,7 @@
"html": "Set request.[[state]]
to\n \"closed\"."
},
{
- "html": "Reject acceptPromise with \"NotSupportedError
\"\n DOMException
."
+ "html": "Reject acceptPromise with \"NotSupportedError
\"\n DOMException
."
},
{
"html": "Set request's payment-relevant browsing context's\n payment request is showing boolean to false."
@@ -386,7 +386,7 @@
]
},
{
- "html": "\n Present a user interface that will allow the user to interact\n with the handlers. The user agent SHOULD prioritize the user's\n preference when presenting payment methods. The user interface\n SHOULD be presented using the language and locale-based\n formatting that matches the document's document element's language, if any, or an\n appropriate fallback if that is not available.\n
" + "html": "\n Present a user interface that will allow the user to interact\n with the handlers. The user agent SHOULD prioritize the user's\n preference when presenting payment methods. The user interface\n SHOULD be presented using the language and locale-based\n formatting that matches the document's document element's language, if any, or an\n appropriate fallback if that is not available.\n
" }, { "html": "If\n detailsPromise was passed, then:", @@ -411,12 +411,12 @@ "rationale": "if", "steps": [ { - "html": "If the first element of tuple (a PMI) matches the\n payment method identifier of\n request.[[handler]]
, then append the second\n element of tuple (the serialized method data) to modifiers."
+ "html": "If the first element of tuple (a PMI) matches the\n payment method identifier of\n request.[[handler]]
, then append the second\n element of tuple (the serialized method data) to modifiers."
}
]
},
{
- "html": "If document stops being fully active while the\n user interface is being shown, or no longer is by the time this\n step is reached, then:",
+ "html": "If document stops being fully active while the\n user interface is being shown, or no longer is by the time this\n step is reached, then:",
"rationale": "close",
"steps": [
{
@@ -434,35 +434,35 @@
"rationale": ".algorithm",
"steps": [
{
- "html": "Let request be this."
+ "html": "Let request be this."
},
{
- "html": "If request.[[response]]
is not null, and\n request.[[response]]
.[[retryPromise]]
\n is not null, return a promise rejected with an\n \"InvalidStateError
\" DOMException
."
+ "html": "If request.[[response]]
is not null, and\n request.[[response]]
.[[retryPromise]]
\n is not null, return a promise rejected with an\n \"InvalidStateError
\" DOMException
."
},
{
- "html": "If the value of request.[[state]]
is not\n \"interactive\" then return a promise rejected\n with an \"InvalidStateError
\" DOMException
."
+ "html": "If the value of request.[[state]]
is not\n \"interactive\" then return a promise rejected\n with an \"InvalidStateError
\" DOMException
."
},
{
- "html": "Let promise be a new promise."
+ "html": "Let promise be a new promise."
},
{
- "html": "Return promise and perform the remaining steps in\n parallel."
+ "html": "Return promise and perform the remaining steps in\n parallel."
},
{
"html": "Try to abort the current user interaction with the payment\n handler and close down any remaining user interface."
},
{
- "html": "Queue a task on the user interaction task source to\n perform the following steps:",
+ "html": "Queue a task on the user interaction task source to\n perform the following steps:",
"rationale": "if",
"steps": [
{
- "html": "If it is not possible to abort the current user interaction,\n then reject promise with \"InvalidStateError
\"\n DOMException
and abort these steps."
+ "html": "If it is not possible to abort the current user interaction,\n then reject promise with \"InvalidStateError
\"\n DOMException
and abort these steps."
},
{
"html": "Set request.[[state]]
to\n \"closed\"."
},
{
- "html": "Reject the promise\n request.[[acceptPromise]]
with an\n \"AbortError
\" DOMException
."
+ "html": "Reject the promise\n request.[[acceptPromise]]
with an\n \"AbortError
\" DOMException
."
},
{
"html": "Resolve promise with undefined."
@@ -478,13 +478,13 @@
"rationale": "if",
"steps": [
{
- "html": "If the result of IsWellFormedCurrencyCode(amount.currency
)\n is false, then throw a RangeError
exception, optionally informing\n the developer that the currency is invalid."
+ "html": "If the result of IsWellFormedCurrencyCode(amount.currency
)\n is false, then throw a RangeError
exception, optionally informing\n the developer that the currency is invalid."
},
{
- "html": "If amount.value
is not a valid\n decimal monetary value, throw a TypeError
, optionally\n informing the developer that the currency is invalid."
+ "html": "If amount.value
is not a valid\n decimal monetary value, throw a TypeError
, optionally\n informing the developer that the currency is invalid."
},
{
- "html": "Set amount.currency
to the result of\n ASCII uppercase amount.currency
."
+ "html": "Set amount.currency
to the result of\n ASCII uppercase amount.currency
."
}
]
},
@@ -498,7 +498,7 @@
"html": "Check and canonicalize amount amount. Rethrow any\n exceptions."
},
{
- "html": "If the first code point of\n amount.value
is U+002D (-), then throw a\n TypeError
optionally informing the developer that a total's value\n can't be a negative number."
+ "html": "If the first code point of\n amount.value
is U+002D (-), then throw a\n TypeError
optionally informing the developer that a total's value\n can't be a negative number."
}
]
},
@@ -507,28 +507,28 @@
"rationale": ".algorithm",
"steps": [
{
- "html": "Let response be this."
+ "html": "Let response be this."
},
{
"html": "Let request be\n response.[[request]]
."
},
{
- "html": "Let document be request's relevant global\n object's associated Document
."
+ "html": "Let document be request's relevant global\n object's associated Document
."
},
{
- "html": "If\n document is not fully active, then return a promise\n rejected with an \"AbortError
\" DOMException
."
+ "html": "If\n document is not fully active, then return a promise\n rejected with an \"AbortError
\" DOMException
."
},
{
- "html": "If response.[[complete]]
is true, return\n a promise rejected with an \"InvalidStateError
\"\n DOMException
."
+ "html": "If response.[[complete]]
is true, return\n a promise rejected with an \"InvalidStateError
\"\n DOMException
."
},
{
- "html": "If response.[[retryPromise]]
is not null,\n return a promise rejected with an \"InvalidStateError
\"\n DOMException
."
+ "html": "If response.[[retryPromise]]
is not null,\n return a promise rejected with an \"InvalidStateError
\"\n DOMException
."
},
{
"html": "Set request.[[state]]
to\n \"interactive\"."
},
{
- "html": "Let retryPromise be a new promise."
+ "html": "Let retryPromise be a new promise."
},
{
"html": "Set response.[[retryPromise]]
to\n retryPromise."
@@ -544,13 +544,13 @@
]
},
{
- "html": "If\n errorFields.paymentMethod
\n member was passed, and if required by the specification that\n defines response.methodName
, then\n convert errorFields's\n paymentMethod
member to an IDL value\n of the type specified there. Otherwise, convert to object
."
+ "html": "If\n errorFields.paymentMethod
\n member was passed, and if required by the specification that\n defines response.methodName
, then\n convert errorFields's\n paymentMethod
member to an IDL value\n of the type specified there. Otherwise, convert to object
."
},
{
"html": "Set request's payment-relevant browsing context's\n payment request is showing boolean to false."
},
{
- "html": "If conversion results in a exception error:",
+ "html": "If conversion results in a exception error:",
"rationale": "reject",
"steps": [
{
@@ -573,7 +573,7 @@
"html": "Otherwise, if errorFields was not passed, signal to the end\n user to attempt to retry the payment. Re-enable any UI element that\n affords the end user the ability to retry accepting the payment\n request."
},
{
- "html": "If\n document stops being fully active while the user\n interface is being shown, or no longer is by the time this step is\n reached, then:",
+ "html": "If\n document stops being fully active while the user\n interface is being shown, or no longer is by the time this step is\n reached, then:",
"rationale": "close",
"steps": [
{
@@ -597,38 +597,38 @@
"rationale": ".algorithm",
"steps": [
{
- "html": "Let response be this."
+ "html": "Let response be this."
},
{
- "html": "If response.[[complete]]
is true, return\n a promise rejected with an \"InvalidStateError
\"\n DOMException
."
+ "html": "If response.[[complete]]
is true, return\n a promise rejected with an \"InvalidStateError
\"\n DOMException
."
},
{
- "html": "If response.[[retryPromise]]
is not null,\n return a promise rejected with an \"InvalidStateError
\"\n DOMException
."
+ "html": "If response.[[retryPromise]]
is not null,\n return a promise rejected with an \"InvalidStateError
\"\n DOMException
."
},
{
- "html": "Let promise be a new promise."
+ "html": "Let promise be a new promise."
},
{
- "html": "Let serializedData be the result of serialize\n details.data
into a JSON string."
+ "html": "Let serializedData be the result of serialize\n details.data
into a JSON string."
},
{
- "html": "If serializing throws an exception, return a\n promise rejected with that exception."
+ "html": "If serializing throws an exception, return a\n promise rejected with that exception."
},
{
"html": "If required by the specification that defines the\n response.methodName
:",
"rationale": "let",
"steps": [
{
- "html": "Let json be the result of calling JSON
's parse
()
\n with serializedData."
+ "html": "Let json be the result of calling JSON
's parse
()
\n with serializedData."
},
{
- "html": "Let idl be the result of converting json to an IDL value of the type specified\n by the specification that defines the\n response.methodName
."
+ "html": "Let idl be the result of converting json to an IDL value of the type specified\n by the specification that defines the\n response.methodName
."
},
{
- "html": "If the conversion to an IDL value throws an\n exception, return a promise rejected with that\n exception."
+ "html": "If the conversion to an IDL value throws an\n exception, return a promise rejected with that\n exception."
},
{
- "html": "If required by the specification that defines the\n response.methodName
, validate the members\n of idl. If a member's value is invalid, return a promise\n rejected with a TypeError
."
+ "html": "If required by the specification that defines the\n response.methodName
, validate the members\n of idl. If a member's value is invalid, return a promise\n rejected with a TypeError
."
}
]
},
@@ -636,10 +636,10 @@
"html": "Set response.[[complete]]
to true."
},
{
- "html": "Return promise and perform the remaining steps in\n parallel."
+ "html": "Return promise and perform the remaining steps in\n parallel."
},
{
- "html": "If document stops being fully active while the\n user interface is being shown, or no longer is by the time this step\n is reached, then:",
+ "html": "If document stops being fully active while the\n user interface is being shown, or no longer is by the time this step\n is reached, then:",
"rationale": "close",
"steps": [
{
@@ -672,7 +672,7 @@
"rationale": ".algorithm",
"steps": [
{
- "html": "Let event be the result of calling\n the constructor of PaymentRequestUpdateEvent
with\n type and eventInitDict."
+ "html": "Let event be the result of calling\n the constructor of PaymentRequestUpdateEvent
with\n type and eventInitDict."
},
{
"html": "Set event.[[waitForUpdate]]
to\n false."
@@ -687,31 +687,31 @@
"rationale": ".algorithm",
"steps": [
{
- "html": "Let event be this."
+ "html": "Let event be this."
},
{
- "html": "If event's isTrusted
attribute is false, then\n throw an \"InvalidStateError
\" DOMException
."
+ "html": "If event's isTrusted
attribute is false, then\n throw an \"InvalidStateError
\" DOMException
."
},
{
- "html": "If event.[[waitForUpdate]]
is\n true, then throw an \"InvalidStateError
\"\n DOMException
."
+ "html": "If event.[[waitForUpdate]]
is\n true, then throw an \"InvalidStateError
\"\n DOMException
."
},
{
- "html": "If event's target is an instance of\n PaymentResponse
, let request be event's\n target's [[request]]
."
+ "html": "If event's target is an instance of\n PaymentResponse
, let request be event's\n target's [[request]]
."
},
{
- "html": "Otherwise, let request be the value of\n event's target."
+ "html": "Otherwise, let request be the value of\n event's target."
},
{
"html": "Assert: request is an instance of PaymentRequest
."
},
{
- "html": "If request.[[state]]
is not\n \"interactive\", then throw an\n \"InvalidStateError
\" DOMException
."
+ "html": "If request.[[state]]
is not\n \"interactive\", then throw an\n \"InvalidStateError
\" DOMException
."
},
{
- "html": "If request.[[updating]]
is true, then\n throw an \"InvalidStateError
\" DOMException
."
+ "html": "If request.[[updating]]
is true, then\n throw an \"InvalidStateError
\" DOMException
."
},
{
- "html": "Set event's stop propagation flag and stop immediate propagation flag."
+ "html": "Set event's stop propagation flag and stop immediate propagation flag."
},
{
"html": "Set event.[[waitForUpdate]]
to\n true."
@@ -737,16 +737,16 @@
"html": "Let request be the PaymentRequest
object on\n which the method was called."
},
{
- "html": "If request.[[state]]
is not\n \"created\", then return a promise rejected\n with an \"InvalidStateError
\" DOMException
."
+ "html": "If request.[[state]]
is not\n \"created\", then return a promise rejected\n with an \"InvalidStateError
\" DOMException
."
},
{
- "html": "Optionally, at the top-level browsing\n context's discretion, return a promise rejected with a\n \"NotAllowedError
\" DOMException
."
+ "html": "Optionally, at the top-level browsing\n context's discretion, return a promise rejected with a\n \"NotAllowedError
\" DOMException
."
},
{
- "html": "Let hasHandlerPromise be a new promise."
+ "html": "Let hasHandlerPromise be a new promise."
},
{
- "html": "Return hasHandlerPromise, and perform the remaining steps in\n parallel."
+ "html": "Return hasHandlerPromise, and perform the remaining steps in\n parallel."
},
{
"html": "For each paymentMethod tuple in request.\n [[serializedMethodData]]
:",
@@ -775,7 +775,7 @@
"html": "Let request be the PaymentRequest
object\n that the user is interacting with."
},
{
- "html": "Queue a task on the user interaction task source to\n run the following steps:",
+ "html": "Queue a task on the user interaction task source to\n run the following steps:",
"rationale": "let",
"steps": [
{
@@ -785,7 +785,7 @@
"html": "Let redactList be the empty list. Set redactList to\n « \"organization\", \"phone\", \"recipient\", \"addressLine\" »."
},
{
- "html": "Let address be the result of running the\n steps to create a contactaddress from user-provided input with redactList."
+ "html": "Let address be the result of running the\n steps to create a contactaddress from user-provided input with redactList."
},
{
"html": "Set request.shippingAddress
to\n address."
@@ -807,7 +807,7 @@
"html": "Let request be the PaymentRequest
object\n that the user is interacting with."
},
{
- "html": "Queue a task on the user interaction task source to\n run the following steps:",
+ "html": "Queue a task on the user interaction task source to\n run the following steps:",
"rationale": "set",
"steps": [
{
@@ -823,14 +823,14 @@
{
"name": "payment handler/payment method changed algorithm",
"href": "https://w3c.github.io/payment-request/#dfn-payment-method-changed-algorithm",
- "html": "A payment handler MAY run the payment method changed algorithm\n when the user changes payment method with methodDetails,\n which is a dictionary or an object
or null, and a\n methodName, which is a DOMString that represents the payment\n method identifier of the payment handler the user is\n interacting with.",
+ "html": "A payment handler MAY run the payment method changed algorithm\n when the user changes payment method with methodDetails,\n which is a dictionary or an object
or null, and a\n methodName, which is a DOMString that represents the payment\n method identifier of the payment handler the user is\n interacting with.",
"rationale": ".algorithm",
"steps": [
{
"html": "Let request be the PaymentRequest
object\n that the user is interacting with."
},
{
- "html": "Queue a task on the user interaction task source to\n run the following steps:",
+ "html": "Queue a task on the user interaction task source to\n run the following steps:",
"rationale": "assert",
"steps": [
{
@@ -840,7 +840,7 @@
"html": "Assert: request.[[state]]
is\n \"interactive\"."
},
{
- "html": "Fire an event named \"paymentmethodchange
\" at\n request using PaymentMethodChangeEvent
, with its\n methodName
attribute initialized\n to methodName, and its\n methodDetails
attribute\n initialized to methodDetails."
+ "html": "Fire an event named \"paymentmethodchange
\" at\n request using PaymentMethodChangeEvent
, with its\n methodName
attribute initialized\n to methodName, and its\n methodDetails
attribute\n initialized to methodDetails."
}
]
}
@@ -849,7 +849,7 @@
{
"name": "PaymentRequest updated algorithm",
"href": "https://w3c.github.io/payment-request/#dfn-paymentrequest-updated-algorithm",
- "html": "The PaymentRequest updated algorithm is run by other\n algorithms above to fire an event to indicate that a user has\n made a change to a PaymentRequest
called request with an event\n name of name:",
+ "html": "The PaymentRequest updated algorithm is run by other\n algorithms above to fire an event to indicate that a user has\n made a change to a PaymentRequest
called request with an event\n name of name:",
"rationale": ".algorithm",
"steps": [
{
@@ -859,13 +859,13 @@
"html": "Assert: request.[[state]]
is\n \"interactive\"."
},
{
- "html": "Let event be the result of\n creating an event using the PaymentRequestUpdateEvent
\n interface."
+ "html": "Let event be the result of\n creating an event using the PaymentRequestUpdateEvent
\n interface."
},
{
- "html": "Initialize event's type
attribute to name."
+ "html": "Initialize event's type
attribute to name."
},
{
- "html": "Dispatch event at request."
+ "html": "Dispatch event at request."
},
{
"html": "If event.[[waitForUpdate]]
is\n true, disable any part of the user interface that could cause another\n update event to be fired."
@@ -891,7 +891,7 @@
"html": "Let response be\n request.[[response]]
."
},
{
- "html": "Queue a task on the user interaction task source to\n run the following steps:",
+ "html": "Queue a task on the user interaction task source to\n run the following steps:",
"rationale": "assert",
"steps": [
{
@@ -931,13 +931,13 @@
]
},
{
- "html": "Let event be the result of\n creating an event using PaymentRequestUpdateEvent
."
+ "html": "Let event be the result of\n creating an event using PaymentRequestUpdateEvent
."
},
{
- "html": "Initialize event's type
attribute to\n \"payerdetailchange
\"."
+ "html": "Initialize event's type
attribute to\n \"payerdetailchange
\"."
},
{
- "html": "Dispatch event at response."
+ "html": "Dispatch event at response."
},
{
"html": "If event.[[waitForUpdate]]
is\n true, disable any part of the user interface that could cause\n another change to the payer details to be fired."
@@ -952,7 +952,7 @@
{
"name": "user accepts the payment request algorithm",
"href": "https://w3c.github.io/payment-request/#dfn-user-accepts-the-payment-request-algorithm",
- "html": "The user accepts the payment request algorithm runs\n when the user accepts the payment request and confirms that they want\n to pay. It MUST queue a task on the user interaction task\n source to perform the following steps:",
+ "html": "The user accepts the payment request algorithm runs\n when the user accepts the payment request and confirms that they want\n to pay. It MUST queue a task on the user interaction task\n source to perform the following steps:",
"rationale": ".algorithm",
"steps": [
{
@@ -998,7 +998,7 @@
"html": "Let handler be\n request.[[handler]]
."
},
{
- "html": "Set the methodName
attribute value of\n response to the payment method identifier of handler."
+ "html": "Set the methodName
attribute value of\n response to the payment method identifier of handler."
},
{
"html": "Set the details
attribute value of response\n to an object resulting from running the handler's steps to\n respond to a payment request."
@@ -1008,7 +1008,7 @@
"rationale": "let",
"steps": [
{
- "html": "Let shippingAddress be the result of\n create a contactaddress from user-provided input"
+ "html": "Let shippingAddress be the result of\n create a contactaddress from user-provided input"
},
{
"html": "Set the shippingAddress
attribute value\n of response to shippingAddress."
@@ -1041,7 +1041,7 @@
{
"name": "user aborts the payment request",
"href": "https://w3c.github.io/payment-request/#dfn-user-aborts-the-payment-request",
- "html": "The user aborts the\n payment request algorithm runs when the user aborts the payment\n request through the currently interactive user interface. It MUST\n queue a task on the user interaction task source to\n perform the following steps:",
+ "html": "The user aborts the\n payment request algorithm runs when the user aborts the payment\n request through the currently interactive user interface. It MUST\n queue a task on the user interaction task source to\n perform the following steps:",
"rationale": ".algorithm",
"steps": [
{
@@ -1057,7 +1057,7 @@
"html": "Set request's payment-relevant browsing context's\n payment request is showing boolean to false."
},
{
- "html": "Let error be an \"AbortError
\" DOMException
."
+ "html": "Let error be an \"AbortError
\" DOMException
."
},
{
"html": "Let response be\n request.[[response]]
."
@@ -1093,23 +1093,23 @@
"html": "Set request.[[updating]]
to true."
},
{
- "html": "In parallel, disable the user interface that allows the user\n to accept the payment request. This is to ensure that the payment\n is not accepted until the user interface is updated with any new\n details."
+ "html": "In parallel, disable the user interface that allows the user\n to accept the payment request. This is to ensure that the payment\n is not accepted until the user interface is updated with any new\n details."
},
{
- "html": "Upon rejection of detailsPromise:",
+ "html": "Upon rejection of detailsPromise:",
"rationale": "abort",
"steps": [
{
- "html": "Abort the update with request and an \"AbortError
\"\n DOMException
."
+ "html": "Abort the update with request and an \"AbortError
\"\n DOMException
."
}
]
},
{
- "html": "Upon fulfillment of detailsPromise with value value:",
+ "html": "Upon fulfillment of detailsPromise with value value:",
"rationale": "let",
"steps": [
{
- "html": "Let details be the result of\n converting value to a\n PaymentDetailsUpdate
dictionary. If this throw\n an exception, abort the update with request and with the\n thrown exception."
+ "html": "Let details be the result of\n converting value to a\n PaymentDetailsUpdate
dictionary. If this throw\n an exception, abort the update with request and with the\n thrown exception."
},
{
"html": "Let serializedModifierData be an empty list."
@@ -1118,7 +1118,7 @@
"html": "Let selectedShippingOption be null."
},
{
- "html": "Let shippingOptions be an empty\n sequence
<PaymentShippingOption
>."
+ "html": "Let shippingOptions be an empty\n sequence
<PaymentShippingOption
>."
},
{
"html": "Validate and canonicalize the details:",
@@ -1157,7 +1157,7 @@
"html": "Check and canonicalize amount\n option.amount
. If an\n exception is thrown, then abort the update\n with request and that exception."
},
{
- "html": "If seenIDs[option.{{PaymentShippingOption/id}]\n exists, then abort the update with request\n and a TypeError
."
+ "html": "If seenIDs[option.{{PaymentShippingOption/id}]\n exists, then abort the update with request\n and a TypeError
."
},
{
"html": "Append option.id
to\n seenIDs."
@@ -1187,7 +1187,7 @@
"rationale": "run",
"steps": [
{
- "html": "Run the steps to validate a payment method\n identifier with\n modifier.supportedMethods
.\n If it returns false, then abort the update\n with request and a RangeError
exception.\n Optionally, inform the developer that the payment\n method identifier is invalid."
+ "html": "Run the steps to validate a payment method\n identifier with\n modifier.supportedMethods
.\n If it returns false, then abort the update\n with request and a RangeError
exception.\n Optionally, inform the developer that the payment\n method identifier is invalid."
},
{
"html": "If the total
member of\n modifier is present, then:",
@@ -1208,7 +1208,7 @@
]
},
{
- "html": "If the data
member of\n modifier is missing, let serializedData be null.\n Otherwise, let serializedData be the result of\n serialize\n modifier.data
into a\n JSON string. If it throws an exception, then abort\n the update with request and that exception."
+ "html": "If the data
member of\n modifier is missing, let serializedData be null.\n Otherwise, let serializedData be the result of\n serialize\n modifier.data
into a\n JSON string. If it throws an exception, then abort\n the update with request and that exception."
},
{
"html": "Add serializedData to serializedModifierData."
@@ -1227,10 +1227,10 @@
"rationale": "if",
"steps": [
{
- "html": "If required by the specification that defines the pmi,\n then convert\n paymentMethodErrors
to an IDL value."
+ "html": "If required by the specification that defines the pmi,\n then convert\n paymentMethodErrors
to an IDL value."
},
{
- "html": "If conversion results in a exception error, \n abort the update with error."
+ "html": "If conversion results in a exception error, \n abort the update with error."
},
{
"html": "The payment handler SHOULD display an error for\n each relevant erroneous field of\n paymentMethodErrors
."
@@ -1301,7 +1301,7 @@
{
"name": "abort the update",
"href": "https://w3c.github.io/payment-request/#dfn-abort-the-update",
- "html": "To abort the update with a\n PaymentRequest
request and exception exception:",
+ "html": "To abort the update with a\n PaymentRequest
request and exception exception:",
"rationale": ".algorithm",
"steps": [
{
@@ -1311,7 +1311,7 @@
"html": "Abort the current user interaction and close down any remaining\n user interface."
},
{
- "html": "Queue a task on the user interaction task source to\n perform the following steps:",
+ "html": "Queue a task on the user interaction task source to\n perform the following steps:",
"rationale": "set",
"steps": [
{
diff --git a/ed/algorithms/performance-timeline.json b/ed/algorithms/performance-timeline.json
index 819a346c4166..0fc96c0c6e3b 100644
--- a/ed/algorithms/performance-timeline.json
+++ b/ed/algorithms/performance-timeline.json
@@ -21,7 +21,7 @@
{
"name": "initialize a PerformanceEntry",
"href": "https://w3c.github.io/performance-timeline/#dfn-initialize-a-performanceentry",
- "html": "To initialize a PerformanceEntry
entry given a DOMHighResTimeStamp
startTime,\n a DOMString
entryType, a DOMString
name, and an optional DOMHighResTimeStamp
endTime (default 0
):",
+ "html": "To initialize a PerformanceEntry
entry given a DOMHighResTimeStamp
startTime,\n a DOMString
entryType, a DOMString
name, and an optional DOMHighResTimeStamp
endTime (default 0
):",
"rationale": "assert",
"steps": [
{
@@ -46,43 +46,43 @@
"rationale": "let",
"steps": [
{
- "html": "Let relevantGlobal be this's relevant\n global object."
+ "html": "Let relevantGlobal be this's relevant\n global object."
},
{
- "html": "If options's entryTypes
and type
members\n are both omitted, then throw a \"TypeError
\"."
+ "html": "If options's entryTypes
and type
members\n are both omitted, then throw a \"TypeError
\"."
},
{
- "html": "If options's entryTypes
is present and any other\n member is also present, then throw a \"TypeError
\"."
+ "html": "If options's entryTypes
is present and any other\n member is also present, then throw a \"TypeError
\"."
},
{
- "html": "Update or check this's observer type by running these\n steps:",
+ "html": "Update or check this's observer type by running these\n steps:",
"rationale": "if",
"steps": [
{
- "html": "If this's observer type is\n \"undefined\"
:",
+ "html": "If this's observer type is\n \"undefined\"
:",
"rationale": "if",
"steps": [
{
- "html": "If options's entryTypes
member is\n present, then set this's observer type to\n \"multiple\"
."
+ "html": "If options's entryTypes
member is\n present, then set this's observer type to\n \"multiple\"
."
},
{
- "html": "If options's type
member is present, then\n set this's observer type to\n \"single\"
."
+ "html": "If options's type
member is present, then\n set this's observer type to\n \"single\"
."
}
]
},
{
- "html": "If this's observer type is\n \"single\"
and options's entryTypes
\n member is present, then throw an\n \"InvalidModificationError
\"."
+ "html": "If this's observer type is\n \"single\"
and options's entryTypes
\n member is present, then throw an\n \"InvalidModificationError
\"."
},
{
- "html": "If this's observer type is\n \"multiple\"
and options's type
member\n is present, then throw an\n \"InvalidModificationError
\"."
+ "html": "If this's observer type is\n \"multiple\"
and options's type
member\n is present, then throw an\n \"InvalidModificationError
\"."
}
]
},
{
- "html": "Set this's requires dropped entries to true."
+ "html": "Set this's requires dropped entries to true."
},
{
- "html": "If this's observer type is\n \"multiple\"
, run the following steps:",
+ "html": "If this's observer type is\n \"multiple\"
, run the following steps:",
"rationale": "let",
"steps": [
{
@@ -95,10 +95,10 @@
"html": "If the resulting entry types sequence is an empty\n sequence, abort these steps. The user agent SHOULD notify\n developers when the steps are aborted to notify that registration\n has been aborted. For example, a console warning might be\n appropriate."
},
{
- "html": "If the list of registered performance observer objects\n of relevantGlobal contains a registered performance\n observer whose observer is this,\n replace its options list with a list containing\n options as its only item."
+ "html": "If the list of registered performance observer objects\n of relevantGlobal contains a registered performance\n observer whose observer is this,\n replace its options list with a list containing\n options as its only item."
},
{
- "html": "Otherwise, create and append a registered performance\n observer object to the list of registered performance\n observer objects of relevantGlobal, with\n observer set to this and options list set to a\n list containing options as its only item."
+ "html": "Otherwise, create and append a registered performance\n observer object to the list of registered performance\n observer objects of relevantGlobal, with\n observer set to this and options list set to a\n list containing options as its only item."
}
]
},
@@ -107,13 +107,13 @@
"rationale": "assert",
"steps": [
{
- "html": "Assert that this's observer type is\n \"single\"
."
+ "html": "Assert that this's observer type is\n \"single\"
."
},
{
"html": "If options's type
is not contained in the\n relevantGlobal's frozen array of supported entry\n types, abort these steps. The user agent SHOULD notify\n developers when this happens, for instance via a console warning."
},
{
- "html": "If the list of registered performance observer objects\n of relevantGlobal contains a registered performance\n observer obs whose observer is this:",
+ "html": "If the list of registered performance observer objects\n of relevantGlobal contains a registered performance\n observer obs whose observer is this:",
"rationale": "if",
"steps": [
{
@@ -125,7 +125,7 @@
]
},
{
- "html": "Otherwise, create and append a registered performance\n observer object to the list of registered performance\n observer objects of relevantGlobal, with\n observer set to the this and options list set\n to a list containing options as its only item."
+ "html": "Otherwise, create and append a registered performance\n observer object to the list of registered performance\n observer objects of relevantGlobal, with\n observer set to the this and options list set\n to a list containing options as its only item."
},
{
"html": "If options's buffered
flag is set:",
@@ -139,7 +139,7 @@
"rationale": "if",
"steps": [
{
- "html": "If \n should add entry with entry and options as\n parameters returns true, append entry to the\n observer buffer."
+ "html": "If \n should add entry with entry and options as\n parameters returns true, append entry to the\n observer buffer."
}
]
},
@@ -157,13 +157,13 @@
"rationale": "remove",
"steps": [
{
- "html": "Remove this from the list of registered\n performance observer objects of relevant global object."
+ "html": "Remove this from the list of registered\n performance observer objects of relevant global object."
},
{
- "html": "Empty this's observer buffer."
+ "html": "Empty this's observer buffer."
},
{
- "html": "Empty this's options list."
+ "html": "Empty this's options list."
}
]
},
@@ -206,14 +206,14 @@
"html": "Let entryType be newEntry’s entryType
value."
},
{
- "html": "Let relevantGlobal be newEntry's relevant\n global object."
+ "html": "Let relevantGlobal be newEntry's relevant\n global object."
},
{
- "html": "If relevantGlobal has an associated document:",
+ "html": "If relevantGlobal has an associated document:",
"rationale": "set",
"steps": [
{
- "html": "Set newEntry's navigationId
to the value of\n relevantGlobal's associated document's most recent navigation's id
."
+ "html": "Set newEntry's navigationId
to the value of\n relevantGlobal's associated document's most recent navigation's id
."
}
]
},
@@ -254,7 +254,7 @@
"html": "Let shouldAdd be the result of should add\n entry with newEntry as input."
},
{
- "html": "If isBufferFull is false and shouldAdd is true, append\n newEntry to tuple's performance entry buffer."
+ "html": "If isBufferFull is false and shouldAdd is true, append\n newEntry to tuple's performance entry buffer."
},
{
"html": "Queue the PerformanceObserver task with\n relevantGlobal as input."
@@ -271,7 +271,7 @@
"html": "Let id be the result of running generate an id for newEntry."
},
{
- "html": "Let relevantGlobal be newEntry's relevant\n global object."
+ "html": "Let relevantGlobal be newEntry's relevant\n global object."
},
{
"html": "Set newEntry's id
to id."
@@ -280,11 +280,11 @@
"html": "Set newEntry's navigationId
to id."
},
{
- "html": "If relevantGlobal has an associated document:",
+ "html": "If relevantGlobal has an associated document:",
"rationale": "set",
"steps": [
{
- "html": "Set relevantGlobal's associated document's most recent navigation to newEntry."
+ "html": "Set relevantGlobal's associated document's most recent navigation to newEntry."
}
]
},
@@ -306,7 +306,7 @@
"html": "Set relevantGlobal's performance observer task queued\n flag."
},
{
- "html": "Queue a task that consists of running the following substeps.\n The task source for the queued task is the performance\n timeline task source.",
+ "html": "Queue a task that consists of running the following substeps.\n The task source for the queued task is the performance\n timeline task source.",
"rationale": "unset",
"steps": [
{
@@ -374,7 +374,7 @@
"html": "Let callbackOptions be a PerformanceObserverCallbackOptions
\n with its droppedEntriesCount
\n set to droppedEntriesCount if droppedEntriesCount is not null,\n otherwise unset."
},
{
- "html": "Call po’s observer callback with\n observerEntryList as the first argument, with po\n as the second argument and as callback this value, and with\n callbackOptions as the third argument. If this throws\n an exception, report the exception."
+ "html": "Call po’s observer callback with\n observerEntryList as the first argument, with po\n as the second argument and as callback this value, and with\n callbackOptions as the third argument. If this throws\n an exception, report the exception."
}
]
}
@@ -389,13 +389,13 @@
"rationale": "let",
"steps": [
{
- "html": "Let result be an initially empty list."
+ "html": "Let result be an initially empty list."
},
{
- "html": "Let map be the performance entry buffer map\n associated with the relevant global object of this."
+ "html": "Let map be the performance entry buffer map\n associated with the relevant global object of this."
},
{
- "html": "Let tuple list be an empty list."
+ "html": "Let tuple list be an empty list."
},
{
"html": "If type is not null, append the result of getting the\n value of entry on map given type as\n key to tuple list. Otherwise, assign the result of\n get the values on\n map to tuple list."
@@ -414,7 +414,7 @@
"html": "Let entries be the result of running filter\n buffer by name and type with buffer, name\n and type as inputs."
},
{
- "html": "For each entry in entries,\n append entry to result."
+ "html": "For each entry in entries,\n append entry to result."
}
]
},
@@ -433,7 +433,7 @@
"rationale": "let",
"steps": [
{
- "html": "Let result be an initially empty list."
+ "html": "Let result be an initially empty list."
},
{
"html": "For each PerformanceEntry
entry in\n buffer, run the following steps:",
@@ -446,7 +446,7 @@
"html": "If name is not null and if name is not\n identical to entry's\n name
attribute, continue to next entry."
},
{
- "html": "append entry to result."
+ "html": "append entry to result."
}
]
},
@@ -485,7 +485,7 @@
"rationale": "let",
"steps": [
{
- "html": "Let relevantGlobal be entry's relevant\n global object."
+ "html": "Let relevantGlobal be entry's relevant\n global object."
},
{
"html": "Increase relevantGlobal's last performance entry\n id by a small number chosen by the user agent."
diff --git a/ed/algorithms/pointerevents3.json b/ed/algorithms/pointerevents3.json
index e8e2c29dca46..af0927860f03 100644
--- a/ed/algorithms/pointerevents3.json
+++ b/ed/algorithms/pointerevents3.json
@@ -38,26 +38,26 @@
]
},
{
- "html": "Pointer capture is set on an element of type Element
by calling the element.setPointerCapture(pointerId)
method.\n When this method is invoked, the user agent MUST run the following steps:",
+ "html": "Pointer capture is set on an element of type Element
by calling the element.setPointerCapture(pointerId)
method.\n When this method is invoked, the user agent MUST run the following steps:",
"rationale": "if",
"steps": [
{
- "html": "If the pointerId
provided as the method's argument does not match any of the active pointers, then throw a \"NotFoundError
\" DOMException
."
+ "html": "If the pointerId
provided as the method's argument does not match any of the active pointers, then throw a \"NotFoundError
\" DOMException
."
},
{
"html": "Let the pointer be the active pointer specified by the given pointerId
."
},
{
- "html": "If the element is not connected [DOM], throw an \"InvalidStateError
\" DOMException
."
+ "html": "If the element is not connected [DOM], throw an \"InvalidStateError
\" DOMException
."
},
{
- "html": "If this method is invoked while the element's node document [DOM] has a locked element ([PointerLock] pointerLockElement
),\n throw an \"InvalidStateError
\" DOMException
."
+ "html": "If this method is invoked while the element's node document [DOM] has a locked element ([PointerLock] pointerLockElement
),\n throw an \"InvalidStateError
\" DOMException
."
},
{
- "html": "If the pointer is not in the active buttons state or\n the element's node document is not the active document of the pointer, then terminate these steps."
+ "html": "If the pointer is not in the active buttons state or\n the element's node document is not the active document of the pointer, then terminate these steps."
},
{
- "html": "For the specified pointerId
, set the pending pointer capture target override to the Element
on which this method was invoked."
+ "html": "For the specified pointerId
, set the pending pointer capture target override to the Element
on which this method was invoked."
}
]
},
@@ -66,10 +66,10 @@
"rationale": "if",
"steps": [
{
- "html": "If the pointerId
provided as the method's argument does not match any of the active pointers and these steps are not being invoked as a result of the implicit release of pointer capture, then throw a \"NotFoundError
\" DOMException
."
+ "html": "If the pointerId
provided as the method's argument does not match any of the active pointers and these steps are not being invoked as a result of the implicit release of pointer capture, then throw a \"NotFoundError
\" DOMException
."
},
{
- "html": "If hasPointerCapture
is false for the Element
with the specified pointerId
, then terminate these steps."
+ "html": "If hasPointerCapture
is false for the Element
with the specified pointerId
, then terminate these steps."
},
{
"html": "For the specified pointerId
, clear the pending pointer capture target override, if set."
@@ -81,10 +81,10 @@
"rationale": "set",
"steps": [
{
- "html": "Set the event's pointerId
, pointerType
,\n isPrimary
and isTrusted
to match the respective properties of the \"parent\" pointer event."
+ "html": "Set the event's pointerId
, pointerType
,\n isPrimary
and isTrusted
to match the respective properties of the \"parent\" pointer event."
},
{
- "html": "Set the event's cancelable
and bubbles
to false (as these events will never\n be dispatched in isolation)."
+ "html": "Set the event's cancelable
and bubbles
to false (as these events will never\n be dispatched in isolation)."
},
{
"html": "Set the event's coalesced events list and predicted events list to an empty list."
@@ -95,11 +95,11 @@
]
},
{
- "html": "When a trusted PointerEvent
's target
is changed, user agents SHOULD, for each event in the\n coalesced events list and predicted events list:",
+ "html": "When a trusted PointerEvent
's target
is changed, user agents SHOULD, for each event in the\n coalesced events list and predicted events list:",
"rationale": "set",
"steps": [
{
- "html": "Set the event's target
to match the target
of the \"parent\" pointer event."
+ "html": "Set the event's target
to match the target
of the \"parent\" pointer event."
}
]
},
diff --git a/ed/algorithms/pointerlock-2.json b/ed/algorithms/pointerlock-2.json
index 6b1dcfc04a0c..eb1c239f7e55 100644
--- a/ed/algorithms/pointerlock-2.json
+++ b/ed/algorithms/pointerlock-2.json
@@ -12,7 +12,7 @@
"html": "The system mouse cursor must be displayed again and positioned at\n cursor position."
},
{
- "html": "Queue an element task on the user interaction task source\n to fire an event named pointerlockchange
at the given\n element's node document."
+ "html": "Queue an element task on the user interaction task source\n to fire an event named pointerlockchange
at the given\n element's node document."
},
{
"html": "Exit the pointer lock state by setting pointer-lock target, pointer-lock options, and cursor position to null."
@@ -22,25 +22,25 @@
{
"name": "lock requests queue",
"href": "https://w3c.github.io/pointerlock/#dfn-lock-requests-queue",
- "html": "A parallel queue named as lock requests queue is\n used for queuing all requests. When requestPointerLock()
\n is invoked, perform the following steps:",
+ "html": "A parallel queue named as lock requests queue is\n used for queuing all requests. When requestPointerLock()
\n is invoked, perform the following steps:",
"rationale": ".algorithm",
"steps": [
{
- "html": "Let promise be a new promise."
+ "html": "Let promise be a new promise."
},
{
- "html": "When a window
is in focus, if the\n this's shadow-including root is the active document of a browsing context (or has an\n ancestor browsing context) that is not in focus:",
+ "html": "When a window
is in focus, if the\n this's shadow-including root is the active document of a browsing context (or has an\n ancestor browsing context) that is not in focus:",
"rationale": "queue",
"steps": [
{
- "html": "Queue an element task on the user interaction task source, given this, to perform the following steps:",
+ "html": "Queue an element task on the user interaction task source, given this, to perform the following steps:",
"rationale": "fire",
"steps": [
{
- "html": "Fire an event named pointerlockerror
at\n this's node document."
+ "html": "Fire an event named pointerlockerror
at\n this's node document."
},
{
- "html": "Reject promise with a \"WrongDocumentError
\"\n DOMException
."
+ "html": "Reject promise with a \"WrongDocumentError
\"\n DOMException
."
}
]
},
@@ -50,18 +50,18 @@
]
},
{
- "html": "If the 'relevant global object does not have transient activation and the Document
has not previously released a\n successful pointer lock with exitPointerLock
()
:",
+ "html": "If the 'relevant global object does not have transient activation and the Document
has not previously released a\n successful pointer lock with exitPointerLock
()
:",
"rationale": "queue",
"steps": [
{
- "html": "Queue an element task on the user interaction task source, given this, to perform the following steps:",
+ "html": "Queue an element task on the user interaction task source, given this, to perform the following steps:",
"rationale": "fire",
"steps": [
{
- "html": "Fire an event named pointerlockerror
at\n this's node document."
+ "html": "Fire an event named pointerlockerror
at\n this's node document."
},
{
- "html": "Reject promise with a\n \"NotAllowedError
\" DOMException
."
+ "html": "Reject promise with a\n \"NotAllowedError
\" DOMException
."
}
]
},
@@ -71,18 +71,18 @@
]
},
{
- "html": "If this's node document's active sandboxing flag set has the sandboxed pointer lock browsing context flag set:",
+ "html": "If this's node document's active sandboxing flag set has the sandboxed pointer lock browsing context flag set:",
"rationale": "queue",
"steps": [
{
- "html": "Queue an element task on the user interaction task source, given this, to perform the following steps:",
+ "html": "Queue an element task on the user interaction task source, given this, to perform the following steps:",
"rationale": "fire",
"steps": [
{
- "html": "Fire an event named pointerlockerror
at\n this's node document."
+ "html": "Fire an event named pointerlockerror
at\n this's node document."
},
{
- "html": "Reject promise with a\n \"SecurityError
\" DOMException
."
+ "html": "Reject promise with a\n \"SecurityError
\" DOMException
."
}
]
},
@@ -96,14 +96,14 @@
"rationale": "queue",
"steps": [
{
- "html": "Queue an element task on the user interaction task source, given this, to perform the following steps:",
+ "html": "Queue an element task on the user interaction task source, given this, to perform the following steps:",
"rationale": "fire",
"steps": [
{
- "html": "Fire an event named pointerlockerror
at\n this's node document."
+ "html": "Fire an event named pointerlockerror
at\n this's node document."
},
{
- "html": "Reject promise with a\n \"NotSupportedError
\" DOMException
."
+ "html": "Reject promise with a\n \"NotSupportedError
\" DOMException
."
}
]
},
@@ -117,39 +117,39 @@
"rationale": "if",
"steps": [
{
- "html": "If the user agent's pointer-lock target is an element\n whose shadow-including root is not equal to this's\n shadow-including root, then:",
+ "html": "If the user agent's pointer-lock target is an element\n whose shadow-including root is not equal to this's\n shadow-including root, then:",
"rationale": "queue",
"steps": [
{
- "html": "Queue an element task on the user interaction task source, given this, to perform the following\n steps:",
+ "html": "Queue an element task on the user interaction task source, given this, to perform the following\n steps:",
"rationale": "fire",
"steps": [
{
- "html": "Fire an event named pointerlockerror
at\n this's node document."
+ "html": "Fire an event named pointerlockerror
at\n this's node document."
},
{
- "html": "Reject promise with a\n \"InvalidStateError
\" DOMException
."
+ "html": "Reject promise with a\n \"InvalidStateError
\" DOMException
."
}
]
}
]
},
{
- "html": "If the user agent's pointer-lock target's\n shadow-including root is equal to this's\n shadow-including root and options are equivalent to the\n current pointer-lock options, then:",
+ "html": "If the user agent's pointer-lock target's\n shadow-including root is equal to this's\n shadow-including root and options are equivalent to the\n current pointer-lock options, then:",
"rationale": "set",
"steps": [
{
- "html": "Set pointer-lock target to this."
+ "html": "Set pointer-lock target to this."
},
{
- "html": "Queue an element task on the user interaction task source, given this, to perform the following\n steps:",
+ "html": "Queue an element task on the user interaction task source, given this, to perform the following\n steps:",
"rationale": "fire",
"steps": [
{
- "html": "Fire an event named pointerlockchange
at\n this's node document."
+ "html": "Fire an event named pointerlockchange
at\n this's node document."
},
{
- "html": "Resolve the promise."
+ "html": "Resolve the promise."
}
]
}
@@ -164,14 +164,14 @@
"rationale": "queue",
"steps": [
{
- "html": "Queue an element task on the user interaction task source, given this, to perform the following\n steps:",
+ "html": "Queue an element task on the user interaction task source, given this, to perform the following\n steps:",
"rationale": "fire",
"steps": [
{
- "html": "Fire an event named pointerlockerror
at\n this's node document."
+ "html": "Fire an event named pointerlockerror
at\n this's node document."
},
{
- "html": "Reject promise with a\n \"NotSupportedError
\" DOMException
."
+ "html": "Reject promise with a\n \"NotSupportedError
\" DOMException
."
}
]
}
@@ -186,7 +186,7 @@
"rationale": "set",
"steps": [
{
- "html": "Set the user agent's pointer-lock target to\n this."
+ "html": "Set the user agent's pointer-lock target to\n this."
},
{
"html": "Set the user agent's cursor position to the\n current system mouse location."
@@ -197,14 +197,14 @@
]
},
{
- "html": "Queue an element task on the user interaction task source, given this, to perform the following\n steps:",
+ "html": "Queue an element task on the user interaction task source, given this, to perform the following\n steps:",
"rationale": "fire",
"steps": [
{
- "html": "Fire an event named pointerlockchange
\n at this's node document."
+ "html": "Fire an event named pointerlockchange
\n at this's node document."
},
{
- "html": "Resolve the promise."
+ "html": "Resolve the promise."
}
]
}
@@ -229,7 +229,7 @@
"html": "If the user agent's pointer-lock target is null, then return."
},
{
- "html": "If pointer-lock target's shadow-including rootis not\n equal to this's node document, return."
+ "html": "If pointer-lock target's shadow-including rootis not\n equal to this's node document, return."
},
{
"html": "Exit pointer lock with the user agent's pointer-lock target."
diff --git a/ed/algorithms/prefer-current-tab.json b/ed/algorithms/prefer-current-tab.json
index 876f80f42aa5..7630f18e2bd1 100644
--- a/ed/algorithms/prefer-current-tab.json
+++ b/ed/algorithms/prefer-current-tab.json
@@ -7,14 +7,14 @@
{
"name": "MediaStreamConstraints/preferCurrentTab",
"href": "https://wicg.github.io/prefer-current-tab/#dom-mediastreamconstraints-prefercurrenttab",
- "html": "When getDisplayMedia
()
is called with constraints
(a\n dictionary), the user agent MUST run the following steps:",
+ "html": "When getDisplayMedia
()
is called with constraints
(a\n dictionary), the user agent MUST run the following steps:",
"rationale": "if",
"steps": [
{
"html": "If constraints.preferCurrentTab
is false
, abort these\n steps and continue instead with the\n getDisplayMedia algorithm."
},
{
- "html": "If constraints.
selfBrowserSurface
is\n \"exclude
\", return a Promise
rejected with\n a newly created TypeError
."
+ "html": "If constraints.
selfBrowserSurface
is\n \"exclude
\", return a Promise
rejected with\n a newly created TypeError
."
},
{
"html": "\n The rest of the\n getDisplayMedia algorithm\n should now be executed with the following changes:\n
" diff --git a/ed/algorithms/push-api.json b/ed/algorithms/push-api.json index 372833dfee42..07a8ccaf3566 100644 --- a/ed/algorithms/push-api.json +++ b/ed/algorithms/push-api.json @@ -26,7 +26,7 @@ "html": "Generate a new authentication secret, which is a sequence of octets as defined in\n [RFC8291]. Store the authentication secret in an internal slot on subscription. This\n key can be retrieved by calling thegetKey
()
method of the\n PushSubscription
with an argument of \"auth
\"."
},
{
- "html": "Request a new push subscription. Include the\n applicationServerKey
attribute of options when it has been\n set. Rethrow any exceptions."
+ "html": "Request a new push subscription. Include the\n applicationServerKey
attribute of options when it has been\n set. Rethrow any exceptions."
},
{
"html": "When the push subscription request has completed successfully:",
@@ -52,70 +52,70 @@
"rationale": ".algorithm",
"steps": [
{
- "html": "Let promise be a new promise."
+ "html": "Let promise be a new promise."
},
{
- "html": "Let global be this' relevant global object."
+ "html": "Let global be this' relevant global object."
},
{
- "html": "Return promise and continue in parallel."
+ "html": "Return promise and continue in parallel."
},
{
- "html": "If the options argument has a userVisibleOnly
value\n set to false
and the user agent requires it to be true
, queue a global task on the\n networking task source using global to reject promise \"NotAllowedError
\"\n DOMException
"
+ "html": "If the options argument has a userVisibleOnly
value\n set to false
and the user agent requires it to be true
, queue a global task on the\n networking task source using global to reject promise \"NotAllowedError
\"\n DOMException
"
},
{
- "html": "If the options argument does not include a non-null value for the\n applicationServerKey
member, and the push service\n requires one to be given, queue a global task on the networking task source using\n global to reject promise with a \"NotSupportedError
\" DOMException
."
+ "html": "If the options argument does not include a non-null value for the\n applicationServerKey
member, and the push service\n requires one to be given, queue a global task on the networking task source using\n global to reject promise with a \"NotSupportedError
\" DOMException
."
},
{
"html": "If the options argument includes a non-null value for the\n applicationServerKey
attribute, run the following sub-steps:",
"rationale": "if",
"steps": [
{
- "html": "If options's applicationServerKey
is a\n DOMString
, set its value to an ArrayBuffer
containing the sequence of octets\n that result from decoding options's\n applicationServerKey
using the base64url encoding\n [RFC7515]."
+ "html": "If options's applicationServerKey
is a\n DOMString
, set its value to an ArrayBuffer
containing the sequence of octets\n that result from decoding options's\n applicationServerKey
using the base64url encoding\n [RFC7515]."
},
{
- "html": "If decoding fails, queue a global task on the networking task source using\n global to reject promise with an \"InvalidCharacterError
\" DOMException
\n and terminate these steps."
+ "html": "If decoding fails, queue a global task on the networking task source using\n global to reject promise with an \"InvalidCharacterError
\" DOMException
\n and terminate these steps."
},
{
- "html": "Ensure that options's applicationServerKey
\n describes a valid point on the P-256 curve. If its value is invalid, queue a global task on the networking task source using global to reject promise with an\n \"InvalidAccessError
\" DOMException
and terminate these steps."
+ "html": "Ensure that options's applicationServerKey
\n describes a valid point on the P-256 curve. If its value is invalid, queue a global task on the networking task source using global to reject promise with an\n \"InvalidAccessError
\" DOMException
and terminate these steps."
}
]
},
{
- "html": "Let registration be this's associated service worker\n registration."
+ "html": "Let registration be this's associated service worker\n registration."
},
{
- "html": "If registration's active worker is null, queue a global task on the networking task source using global to reject promise with\n an \"InvalidStateError
\" DOMException
and terminate these steps."
+ "html": "If registration's active worker is null, queue a global task on the networking task source using global to reject promise with\n an \"InvalidStateError
\" DOMException
and terminate these steps."
},
{
- "html": "Let permission be request permission to use \"push\"."
+ "html": "Let permission be request permission to use \"push\"."
},
{
- "html": "If permission is \"denied
\", queue a global task on the user interaction task source using global to reject promise with a\n \"NotAllowedError
\" DOMException
and terminate these steps."
+ "html": "If permission is \"denied
\", queue a global task on the user interaction task source using global to reject promise with a\n \"NotAllowedError
\" DOMException
and terminate these steps."
},
{
"html": "If registration has a push subscription:",
"rationale": "let",
"steps": [
{
- "html": "Let subscription be the result of obtaining registration's push\n subscription. If there is an error, queue a global task on the networking task source using global to reject promise with an \"AbortError
\"\n DOMException
and terminate these steps."
+ "html": "Let subscription be the result of obtaining registration's push\n subscription. If there is an error, queue a global task on the networking task source using global to reject promise with an \"AbortError
\"\n DOMException
and terminate these steps."
},
{
- "html": "Compare the options argument with the options
attribute of subscription. The\n contents of BufferSource
values are compared for equality rather than\n reference."
+ "html": "Compare the options argument with the options
attribute of subscription. The\n contents of BufferSource
values are compared for equality rather than\n reference."
},
{
- "html": "If any attribute on options contains a different value to that stored for\n subscription, then queue a global task on the networking task source using\n global to reject promise with an \"InvalidStateError
\" DOMException
and\n terminate these steps."
+ "html": "If any attribute on options contains a different value to that stored for\n subscription, then queue a global task on the networking task source using\n global to reject promise with an \"InvalidStateError
\" DOMException
and\n terminate these steps."
},
{
- "html": "When the request has been completed, queue a global task on the networking task source using global to resolve promise with subscription and terminate\n these steps."
+ "html": "When the request has been completed, queue a global task on the networking task source using global to resolve promise with subscription and terminate\n these steps."
}
]
},
{
- "html": "Let subscription be the result of trying to create a push subscription with\n options. If creating the subscription throws an exception, queue a global task on the networking task source using global to reject promise with\n a that exception and terminate these these steps."
+ "html": "Let subscription be the result of trying to create a push subscription with\n options. If creating the subscription throws an exception, queue a global task on the networking task source using global to reject promise with\n a that exception and terminate these these steps."
},
{
- "html": "Otherwise, queue a global task on the networking task source using global to\n resolve promise with a PushSubscription
providing the details of the new\n subscription."
+ "html": "Otherwise, queue a global task on the networking task source using global to\n resolve promise with a PushSubscription
providing the details of the new\n subscription."
}
]
},
@@ -126,19 +126,19 @@
"rationale": "let",
"steps": [
{
- "html": "Let promise be a new promise."
+ "html": "Let promise be a new promise."
},
{
"html": "Return promise and continue the following steps asynchronously."
},
{
- "html": "If the Service Worker is not subscribed, resolve promise with null."
+ "html": "If the Service Worker is not subscribed, resolve promise with null."
},
{
- "html": "Retrieve the push subscription associated with the Service Worker."
+ "html": "Retrieve the push subscription associated with the Service Worker."
},
{
- "html": "If there is an error, reject promise with a DOMException
whose name is\n \"AbortError
\" and terminate these steps."
+ "html": "If there is an error, reject promise with a DOMException
whose name is\n \"AbortError
\" and terminate these steps."
},
{
"html": "When the request has been completed, resolve promise with a PushSubscription
\n providing the details of the retrieved push subscription."
@@ -152,16 +152,16 @@
"rationale": "let",
"steps": [
{
- "html": "Let promise be a new promise."
+ "html": "Let promise be a new promise."
},
{
"html": "Return promise and continue the following steps asynchronously."
},
{
- "html": "Let descriptor be a new PermissionDescriptor
with the\n name
initialized to \"push\"."
+ "html": "Let descriptor be a new PermissionDescriptor
with the\n name
initialized to \"push\"."
},
{
- "html": "let state be the permission state of descriptor and the result."
+ "html": "let state be the permission state of descriptor and the result."
},
{
"html": "Resolve promise with state."
@@ -181,7 +181,7 @@
"html": "If a slot was not found, return null
."
},
{
- "html": "Initialize a variable key with a newly instantiated ArrayBuffer
instance."
+ "html": "Initialize a variable key with a newly instantiated ArrayBuffer
instance."
},
{
"html": "If the internal slot contains an asymmetric key pair, set the contents of key to the\n serialized value of the public key from the key pair. This uses the serialization format\n described in the specification that defines the name. For example, [RFC8291] specifies\n that the \"p256dh
\" public key is encoded using the uncompressed\n format defined in [ANSI-X9-62] Annex A (that is, a 65 octet sequence that starts with a\n 0x04 octet)."
@@ -201,7 +201,7 @@
"rationale": "let",
"steps": [
{
- "html": "Let promise be a new promise."
+ "html": "Let promise be a new promise."
},
{
"html": "Return promise and continue the following steps asynchronously."
@@ -233,10 +233,10 @@
"html": "Let json be a new PushSubscriptionJSON
dictionary."
},
{
- "html": "Set json[\"endpoint\"] to the result of getting the endpoint
attribute of\n this."
+ "html": "Set json[\"endpoint\"] to the result of getting the endpoint
attribute of\n this."
},
{
- "html": "Set json[\"expirationTime\"] to the result of getting the expirationTime
attribute of this."
+ "html": "Set json[\"expirationTime\"] to the result of getting the expirationTime
attribute of this."
},
{
"html": "Let keys be a new empty instance of record<DOMString, USVString>
."
@@ -252,7 +252,7 @@
"html": "Otherwise, let b be the value as returned by getKey
."
},
{
- "html": "Let s be the URL-safe base64 encoding without padding [RFC4648] of b as a\n USVString
. The user agent MUST use a serialization method that does not\n branch based on the value of b."
+ "html": "Let s be the URL-safe base64 encoding without padding [RFC4648] of b as a\n USVString
. The user agent MUST use a serialization method that does not\n branch based on the value of b."
},
{
"html": "Set keys[i] to s."
@@ -277,7 +277,7 @@
"html": "Let bytes be an empty byte sequence."
},
{
- "html": "Switch on object's type:\n BufferSource
\n USVString
\n BufferSource
\n USVString
\n constructor
of the PushEvent
interface, or of an interface that\n inherits from the PushEvent
interface, is invoked, the usual event constructing\n steps are extended to include the following steps:",
+ "html": "When a constructor
of the PushEvent
interface, or of an interface that\n inherits from the PushEvent
interface, is invoked, the usual event constructing\n steps are extended to include the following steps:",
"rationale": "if",
"steps": [
{
@@ -306,7 +306,7 @@
"rationale": "let",
"steps": [
{
- "html": "Let registration be the service worker registration corresponding to the \n push message."
+ "html": "Let registration be the service worker registration corresponding to the \n push message."
},
{
"html": "If registration is not found, abort these steps."
@@ -322,7 +322,7 @@
"rationale": "decrypt",
"steps": [
{
- "html": "Decrypt the push message payload using the private key from the key pair\n associated with subscription and the process described in [RFC8291]. Set bytes\n to the resulting byte sequence."
+ "html": "Decrypt the push message payload using the private key from the key pair\n associated with subscription and the process described in [RFC8291]. Set bytes\n to the resulting byte sequence."
},
{
"html": "If the push message payload could not be decrypted for any reason:",
@@ -343,13 +343,13 @@
"rationale": "wait",
"steps": [
{
- "html": "Wait for all of the promises in the extend lifetime promises\n of dispatchedEvent to resolve."
+ "html": "Wait for all of the promises in the extend lifetime promises\n of dispatchedEvent to resolve."
},
{
"html": "If all the promises resolve successfully, acknowledge the receipt of the push\n message according to [RFC8030] and abort these steps."
},
{
- "html": "\n If the same push message has been delivered to a service worker\n registration multiple times unsuccessfully, acknowledge the receipt of the\n push message according to [RFC8030].\n
\n\n Acknowledging the push message causes the push service to stop\n delivering the message and to report success to the application server.\n This prevents the same push message from being retried by the push\n service indefinitely.\n
\n\n Acknowledging also means that an application server could incorrectly\n receive a delivery receipt indicating successful delivery of the push\n message. Therefore, multiple rejections SHOULD be permitted before\n acknowledging; allowing at least three attempts is recommended.\n
" + "html": "\n If the same push message has been delivered to a service worker\n registration multiple times unsuccessfully, acknowledge the receipt of the\n push message according to [RFC8030].\n
\n\n Acknowledging the push message causes the push service to stop\n delivering the message and to report success to the application server.\n This prevents the same push message from being retried by the push\n service indefinitely.\n
\n\n Acknowledging also means that an application server could incorrectly\n receive a delivery receipt indicating successful delivery of the push\n message. Therefore, multiple rejections SHOULD be permitted before\n acknowledging; allowing at least three attempts is recommended.\n
" } ] } diff --git a/ed/algorithms/rdf-canon.json b/ed/algorithms/rdf-canon.json index 71055155a0b7..d8d0b2ddbc83 100644 --- a/ed/algorithms/rdf-canon.json +++ b/ed/algorithms/rdf-canon.json @@ -44,12 +44,12 @@ "rationale": "for", "steps": [ { - "html": "For each blank node that is a component of Q,\n add a reference to Q from the\n map entry for the\n blank node identifier identifier\n in the blank node to quads map,\n creating a new entry if necessary,\n using the identifier for the blank node found in the\n input blank node identifier map.\nThis establishes the blank node to quads map,\n relating each blank node with the set of quads\n of which it is a component,\n via the map for each blank node in the input dataset to its assigned identifier.
\n \nThis establishes the blank node to quads map,\n relating each blank node with the set of quads\n of which it is a component,\n via the map for each blank node in the input dataset to its assigned identifier.
\n \nThis step creates a hash for every blank node in the input document.\n Some blank nodes will lead to a unique hash,\n while other blank nodes may share a common hash.
\nThis step creates a hash for every blank node in the input document.\n Some blank nodes will lead to a unique hash,\n while other blank nodes may share a common hash.
\nThis step establishes the canonical identifier for blank nodes having\n a unique hash, which are recorded in the canonical issuer.
\nThis step establishes the canonical identifier for blank nodes having\n a unique hash, which are recorded in the canonical issuer.
\nThis step establishes the canonical identifier for blank nodes having\n a shared hash.\n This is done by creating unique blank node identifiers for all\n blank nodes traversed by the Hash N-Degree Quads algorithm,\n running through each blank node without a canonical identifier in the order\n of the hashes established in the previous step.
\nLog hash and identifier list for this iteration.
\n# Hash and Identifier List for each iteration of step 5 using shared hashes example\nca:\n ...\n ca.5:\n log point: Calculate hashes for identifiers with shared hashes (4.4.3 (5)).\n with:\n - hash: 3b26142829b8887d011d779079a243bd61ab53c3990d550320a17b59ade6ba36\n identifier list: [ \"e0\", \"e1\"]\n ...\n ...\n
This step establishes the canonical identifier for blank nodes having\n a shared hash.\n This is done by creating unique blank node identifiers for all\n blank nodes traversed by the Hash N-Degree Quads algorithm,\n running through each blank node without a canonical identifier in the order\n of the hashes established in the previous step.
\nLog hash and identifier list for this iteration.
\n# Hash and Identifier List for each iteration of step 5 using shared hashes example\nca:\n ...\n ca.5:\n log point: Calculate hashes for identifiers with shared hashes (4.4.3 (5)).\n with:\n - hash: 3b26142829b8887d011d779079a243bd61ab53c3990d550320a17b59ade6ba36\n identifier list: [ \"e0\", \"e1\"]\n ...\n ...\n
This step adds the issued identifiers map\n from the canonical issuer to the\n canonicalized dataset, the keys in the\n issued identifiers map are map entries in the\n input blank node identifier map.
\nLog the state of the canonical issuer at the completion of the algorithm.
\n# Canonical issuer state after step 6 for shared hashes example\nca:\n ...\n ca.6:\n log point: Issued identifiers map (4.4.3 (6)).\n issued identifiers map: {e2: c14n0, e3: c14n1, e1: c14n2, e0: c14n3}
\n This step adds the issued identifiers map\n from the canonical issuer to the\n canonicalized dataset, the keys in the\n issued identifiers map are map entries in the\n input blank node identifier map.
\nLog the state of the canonical issuer at the completion of the algorithm.
\n# Canonical issuer state after step 6 for shared hashes example\nca:\n ...\n ca.6:\n log point: Issued identifiers map (4.4.3 (6)).\n issued identifiers map: {e2: c14n0, e3: c14n1, e1: c14n2, e0: c14n3}
\n The serialized canonical form is an N-Quads\n document where the blank node identifiers are taken\n from the canonical identifiers associated with each blank node.
\nThe canonicalized dataset is composed of the original\n input dataset, the input blank node identifier map,\n containing identifiers for each blank node in the input dataset,\n and the canonical issuer,\n containing an issued identifiers map\n mapping the identifiers in the input blank node identifier map\n to their canonical identifiers.\n
\nquads is the mention set of identifier.
\nLog the quads from the mention set of identifier.
\n# Inputs for the Hash N-Degree Quads algorithm for double circle example\nhndq:\n identifier: e0\n log point: Hash N-Degree Quads function (4.8.3).\n issuer: {e0: b0}\n hndq.2:\n log point: Quads for identifier (4.8.3 (2)).\n quads:\n - _:e0 <http://example.org/vocab#next> _:e1 .\n - _:e0 <http://example.org/vocab#prev> _:e1 .\n - _:e1 <http://example.org/vocab#next> _:e0 .\n - _:e1 <http://example.org/vocab#prev> _:e0 .\n ...
\n quads is the mention set of identifier.
\nLog the quads from the mention set of identifier.
\n# Inputs for the Hash N-Degree Quads algorithm for double circle example\nhndq:\n identifier: e0\n log point: Hash N-Degree Quads function (4.8.3).\n issuer: {e0: b0}\n hndq.2:\n log point: Quads for identifier (4.8.3 (2)).\n quads:\n - _:e0 <http://example.org/vocab#next> _:e1 .\n - _:e0 <http://example.org/vocab#prev> _:e1 .\n - _:e1 <http://example.org/vocab#next> _:e0 .\n - _:e1 <http://example.org/vocab#prev> _:e0 .\n ...
\n This loop calculates the related hash Hn\n for other blank nodes within the mention set of identifier.
\nWindow
object."
+ "html": "Let window be this Window
object."
},
{
"html": "Increment the window's idle callback identifier\n by one."
@@ -39,7 +39,7 @@
"html": "Optionally, wait a further user-agent defined length of time."
},
{
- "html": "Queue a task on the queue associated with the idle-task\n task source, which performs the invoke idle callback\n timeout algorithm, passing handle and\n window as arguments."
+ "html": "Queue a task on the queue associated with the idle-task\n task source, which performs the invoke idle callback\n timeout algorithm, passing handle and\n window as arguments."
}
]
}
@@ -50,7 +50,7 @@
"rationale": "let",
"steps": [
{
- "html": "Let window be this Window
object."
+ "html": "Let window be this Window
object."
},
{
"html": "Find the entry in either the window's list of idle\n request callbacks or list of runnable idle callbacks that is\n associated with the value handle."
@@ -63,11 +63,11 @@
{
"name": "IdleDeadline/timeRemaining()",
"href": "https://w3c.github.io/requestidlecallback/#dom-idledeadline-timeremaining",
- "html": "When the timeRemaining()
method is invoked on\n an IdleDeadline
object it MUST return the remaining duration before\n the deadline expires as a DOMHighResTimeStamp
, which SHOULD be\n enough to allow measurement while preventing timing attack - see\n \"Privacy and Security\" section of [HR-TIME]. This value is calculated\n by performing the following steps:",
+ "html": "When the timeRemaining()
method is invoked on\n an IdleDeadline
object it MUST return the remaining duration before\n the deadline expires as a DOMHighResTimeStamp
, which SHOULD be\n enough to allow measurement while preventing timing attack - see\n \"Privacy and Security\" section of [HR-TIME]. This value is calculated\n by performing the following steps:",
"rationale": "let",
"steps": [
{
- "html": "Let now be a DOMHighResTimeStamp
representing\n current high resolution time in milliseconds."
+ "html": "Let now be a DOMHighResTimeStamp
representing\n current high resolution time in milliseconds."
},
{
"html": "Let deadline be the result of calling IdleDeadline
's get deadline time algorithm."
@@ -86,7 +86,7 @@
{
"name": "start an idle period",
"href": "https://w3c.github.io/requestidlecallback/#dfn-start-an-idle-period",
- "html": "To start an idle period given Window
window and\n getDeadline, an algorithm that returns a DOMHighResTimeStamp
: [HR-TIME]",
+ "html": "To start an idle period given Window
window and\n getDeadline, an algorithm that returns a DOMHighResTimeStamp
: [HR-TIME]",
"rationale": "let",
"steps": [
{
@@ -105,14 +105,14 @@
"html": "Clear pending_list."
},
{
- "html": "Queue a task on the queue associated with the idle-task\n task source, which performs the steps defined in the invoke\n idle callbacks algorithm with window and getDeadline as\n parameters."
+ "html": "Queue a task on the queue associated with the idle-task\n task source, which performs the steps defined in the invoke\n idle callbacks algorithm with window and getDeadline as\n parameters."
}
]
},
{
"name": "invoke idle callbacks algorithm",
"href": "https://w3c.github.io/requestidlecallback/#dfn-invoke-idle-callbacks-algorithm",
- "html": "To invoke idle callbacks algorithm given Window
window and\n getDeadline, an algorithm returning a DOMHighResTimeStamp
: [HR-TIME].",
+ "html": "To invoke idle callbacks algorithm given Window
window and\n getDeadline, an algorithm returning a DOMHighResTimeStamp
: [HR-TIME].",
"rationale": "if",
"steps": [
{
@@ -132,10 +132,10 @@
"html": "Let deadlineArg be a new IdleDeadline
whose\n is getDeadline."
},
{
- "html": "Call callback with deadlineArg as its\n argument. If an uncaught runtime script error occurs, then report the exception."
+ "html": "Call callback with deadlineArg as its\n argument. If an uncaught runtime script error occurs, then report the exception."
},
{
- "html": "If window's list of runnable idle callbacks\n is not empty, queue a task which performs the steps in the\n invoke idle callbacks algorithm with getDeadline\n and window as a parameters and return from this\n algorithm"
+ "html": "If window's list of runnable idle callbacks\n is not empty, queue a task which performs the steps in the\n invoke idle callbacks algorithm with getDeadline\n and window as a parameters and return from this\n algorithm"
}
]
}
@@ -164,7 +164,7 @@
"html": "Let deadlineArg be a new IdleDeadline
.\n Set the get deadline time algorithm associated with deadlineArg to\n an algorithm returning now and set the timeout associated with\n deadlineArg to true
."
},
{
- "html": "Call callback with deadlineArg as its\n argument. If an uncaught runtime script error occurs, then report the exception."
+ "html": "Call callback with deadlineArg as its\n argument. If an uncaught runtime script error occurs, then report the exception."
}
]
}
diff --git a/ed/algorithms/resource-timing.json b/ed/algorithms/resource-timing.json
index 5b37bada8927..bcb4a5086fe6 100644
--- a/ed/algorithms/resource-timing.json
+++ b/ed/algorithms/resource-timing.json
@@ -11,13 +11,13 @@
"rationale": "if",
"steps": [
{
- "html": "\n If this's cache\n mode is \"local
\", then return 0.\n
\n If this's cache\n mode is \"local
\", then return 0.\n
\n If this's cache\n mode is \"validated
\", then return 300.\n
\n If this's cache\n mode is \"validated
\", then return 300.\n
\n Return this's response body info's encoded size plus 300.\n
" + "html": "\n Return this's response body info's encoded size plus 300.\n
" } ] }, @@ -89,7 +89,7 @@ "html": "Set resource timing buffer full event pending flag to\n true." }, { - "html": "Queue a task on the \n performance timeline task source to run fire a buffer\n full event." + "html": "Queue a task on the \n performance timeline task source to run fire a buffer\n full event." } ] }, @@ -144,7 +144,7 @@ "html": "Let number of excess entries before be resource\n timing secondary buffer current size." }, { - "html": "If can add resource timing entry returns false, then\n fire an event namedresourcetimingbufferfull
at\n the Performance
object."
+ "html": "If can add resource timing entry returns false, then\n fire an event named resourcetimingbufferfull
at\n the Performance
object."
},
{
"html": "Run copy secondary buffer."
@@ -165,11 +165,11 @@
{
"name": "mark resource timing",
"href": "https://w3c.github.io/resource-timing/#dfn-mark-resource-timing",
- "html": "To mark resource timing given a fetch timing info timingInfo, a DOMString requestedURL, a DOMString\n initiatorType a global object global, a string\n cacheMode, a response body info bodyInfo, a status responseStatus, and an optional\n string deliveryType (by default, the empty string), perform the\n following steps:",
+ "html": "To mark resource timing given a fetch timing info timingInfo, a DOMString requestedURL, a DOMString\n initiatorType a global object global, a string\n cacheMode, a response body info bodyInfo, a status responseStatus, and an optional\n string deliveryType (by default, the empty string), perform the\n following steps:",
"rationale": "create",
"steps": [
{
- "html": "Create a PerformanceResourceTiming
object entry in\n global's realm."
+ "html": "Create a PerformanceResourceTiming
object entry in\n global's realm."
},
{
"html": "Setup the resource timing entry for entry, given\n initiatorType, requestedURL, timingInfo, cacheMode,\n bodyInfo, responseStatus, and deliveryType."
@@ -185,17 +185,17 @@
{
"name": "setup the resource timing entry",
"href": "https://w3c.github.io/resource-timing/#dfn-setup-the-resource-timing-entry",
- "html": "To setup the resource timing entry for\n PerformanceResourceTiming
entry given DOMString\n initiatorType, DOMString requestedURL, fetch timing info\n timingInfo, a DOMString cacheMode, a response body info\n bodyInfo, a status\n responseStatus, and an optional DOMString deliveryType (by\n default, the empty string), perform the following steps:",
+ "html": "To setup the resource timing entry for\n PerformanceResourceTiming
entry given DOMString\n initiatorType, DOMString requestedURL, fetch timing info\n timingInfo, a DOMString cacheMode, a response body info\n bodyInfo, a status\n responseStatus, and an optional DOMString deliveryType (by\n default, the empty string), perform the following steps:",
"rationale": "assert",
"steps": [
{
"html": "Assert that cacheMode is the empty string,\n \"local
\", or \"validated
\"."
},
{
- "html": "Let global be entry's relevant global object."
+ "html": "Let global be entry's relevant global object."
},
{
- "html": "Initialize entry given the\n result of converting\n timingInfo's start time given global,\n \"resource
\", requestedURL, and the result of\n converting timingInfo's\n end time given global."
+ "html": "Initialize entry given the\n result of converting\n timingInfo's start time given global,\n \"resource
\", requestedURL, and the result of\n converting timingInfo's\n end time given global."
},
{
"html": "Set entry's initiator\n type to initiatorType."
@@ -207,7 +207,7 @@
"html": "Set entry's timing\n info to timingInfo."
},
{
- "html": "Set entry's response\n body info to bodyInfo."
+ "html": "Set entry's response\n body info to bodyInfo."
},
{
"html": "Set entry's cache\n mode to cacheMode."
@@ -226,14 +226,14 @@
{
"name": "convert fetch timestamp",
"href": "https://w3c.github.io/resource-timing/#dfn-convert-fetch-timestamp",
- "html": "To convert fetch timestamp given DOMHighResTimeStamp
\n ts and global object global, do the following:",
+ "html": "To convert fetch timestamp given DOMHighResTimeStamp
\n ts and global object global, do the following:",
"rationale": "if",
"steps": [
{
"html": "If ts is zero, return zero."
},
{
- "html": "Otherwise, return the relative high resolution coarse time\n given ts and global."
+ "html": "Otherwise, return the relative high resolution coarse time\n given ts and global."
}
]
}
diff --git a/ed/algorithms/rfc9649.json b/ed/algorithms/rfc9649.json
new file mode 100644
index 000000000000..5c66c09d019b
--- /dev/null
+++ b/ed/algorithms/rfc9649.json
@@ -0,0 +1,71 @@
+{
+ "spec": {
+ "title": "RFC 9649: WebP Image Format",
+ "url": "https://www.rfc-editor.org/rfc/rfc9649"
+ },
+ "algorithms": [
+ {
+ "html": "The interpretation of S depends on its value:¶",
+ "rationale": "if",
+ "steps": [
+ {
+ "html": "If S < 256¶",
+ "rationale": "use",
+ "steps": [
+ {
+ "html": "Use S as the green component.¶"
+ },
+ {
+ "html": "Read red from the bitstream using prefix code #2.¶"
+ },
+ {
+ "html": "Read blue from the bitstream using prefix code #3.¶"
+ },
+ {
+ "html": "Read alpha from the bitstream using prefix code #4.¶"
+ }
+ ]
+ },
+ {
+ "html": "If S >= 256 & S < 256 + 24¶",
+ "rationale": "use",
+ "steps": [
+ {
+ "html": "Use S - 256 as a length prefix code.¶"
+ },
+ {
+ "html": "Read extra bits for the length from the bitstream.¶"
+ },
+ {
+ "html": "Determine backward-reference length L from length prefix\n code and the extra bits read.¶"
+ },
+ {
+ "html": "Read the distance prefix code from the bitstream using prefix\n code #5.¶"
+ },
+ {
+ "html": "Read extra bits for the distance from the bitstream.¶"
+ },
+ {
+ "html": "Determine backward-reference distance D from the distance\n prefix code and the extra bits read.¶"
+ },
+ {
+ "html": "Copy L pixels (in scan-line order) from the sequence of pixels\nstarting at the current position minus D pixels.¶"
+ }
+ ]
+ },
+ {
+ "html": "If S >= 256 + 24¶",
+ "rationale": "use",
+ "steps": [
+ {
+ "html": "Use S - (256 + 24) as the index into the color cache.¶"
+ },
+ {
+ "html": "Get ARGB color from the color cache at that index.¶"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/ed/algorithms/screen-capture.json b/ed/algorithms/screen-capture.json
index a3e68a19572c..49a2a6037352 100644
--- a/ed/algorithms/screen-capture.json
+++ b/ed/algorithms/screen-capture.json
@@ -11,7 +11,7 @@
"rationale": "let",
"steps": [
{
- "html": "Let mediaDevices be this.
" + "html": "Let mediaDevices be this.
" }, { "html": "Let controller be\n options.controller
if present, or\n null
otherwise.
If controller.[[IsBound]]
\n is true
, return a promise rejected\n with a DOMException
object whose name
\n attribute has the value InvalidStateError
.
If controller.[[IsBound]]
\n is true
, return a promise rejected\n with a DOMException
object whose name
\n attribute has the value InvalidStateError
.
Set\n controller.[[IsBound]]
to\n true
.
If the relevant global object of this does not have\n transient activation, return a promise rejected with a\n DOMException
object whose name
attribute has\n the value InvalidStateError
.
If the relevant global object of this does not have\n transient activation, return a promise rejected with a\n DOMException
object whose name
attribute has\n the value InvalidStateError
.
Let options be the method's first argument.
" @@ -38,20 +38,20 @@ "html": "Let constraints be\n [
options.audio
,\n options.video
]
.
If constraints.video
is false
,\n return a promise rejected with a newly\n created TypeError
.
If constraints.video
is false
,\n return a promise rejected with a newly\n created TypeError
.
If CS contains a member named\n advanced
, return a promise rejected\n with a newly created TypeError
.
If CS contains a member named\n advanced
, return a promise rejected\n with a newly created TypeError
.
If CS contains a member whose name specifies a\n constrainable property applicable to display surfaces,\n and whose value in turn is a dictionary containing a member\n named either min
or exact
, return a\n promise rejected with a newly\n created TypeError
.
If CS contains a member whose name specifies a\n constrainable property applicable to display surfaces,\n and whose value in turn is a dictionary containing a member\n named either min
or exact
, return a\n promise rejected with a newly\n created TypeError
.
If CS contains a member whose name specifies a\n constrainable property applicable to display surfaces,\n and whose value in turn is a dictionary containing a member\n named max
, and that member's value in turn is\n less than the constrainable property's floor value, then\n let failedConstraint be the name of the member,\n let message be either undefined
or an\n informative human-readable message, and return a promise\n rejected with a new\n OverconstrainedError
created by calling\n OverconstrainedError(failedConstraint,\n message)
.
If CS contains a member whose name specifies a\n constrainable property applicable to display surfaces,\n and whose value in turn is a dictionary containing a member\n named max
, and that member's value in turn is\n less than the constrainable property's floor value, then\n let failedConstraint be the name of the member,\n let message be either undefined
or an\n informative human-readable message, and return a promise\n rejected with a new\n OverconstrainedError
created by calling\n OverconstrainedError(failedConstraint,\n message)
.
Let requestedMediaTypes be the set of media types\n in constraints with either a dictionary value or a\n value of true
.
If the current settings object's relevant global object's associated Document
is NOT fully active or does NOT have\n focus, return a promise rejected with a\n DOMException
object whose name
attribute has\n the value InvalidStateError
.
If the current settings object's relevant global object's associated Document
is NOT fully active or does NOT have\n focus, return a promise rejected with a\n DOMException
object whose name
attribute has\n the value InvalidStateError
.
Let p be a new promise.
" }, { - "html": "Run the following steps in parallel:", + "html": "Run the following steps in parallel:", "rationale": "for", "steps": [ { @@ -73,10 +73,10 @@ "rationale": "if", "steps": [ { - "html": "If no sources of type T are available,\n reject p with a new DOMException
\n object whose name
attribute has the\n value NotFoundError
.
If no sources of type T are available,\n reject p with a new DOMException
\n object whose name
attribute has the\n value NotFoundError
.
Read the current permission state for obtaining\n sources of type T in the current browsing\n context. If the permission state is\n \"denied
\", jump to the step labeled\n PermissionFailure below.
Read the current permission state for obtaining\n sources of type T in the current browsing\n context. If the permission state is\n \"denied
\", jump to the step labeled\n PermissionFailure below.
Optionally, e.g., based on a previously-established user\n preference, for security reasons, or due to platform\n limitations, jump to the step labeled Permission\n Failure below.
" }, { - "html": "Prompt the user to choose a display device, for a\n PermissionDescriptor
with its\n name
set to \"display-capture\",\n resulting in a set of provided media.
The provided media MUST include precisely one video\n track.
\n\n\nThe provided media MUST include at most one audio track.\n This audio track MUST NOT be included if audio was not\n specified in requestedMediaTypes, or if it was\n specified as false
.
The devices chosen MUST be the ones determined by the\n user. Once selected, the source of a MediaStreamTrack
\n MUST NOT change, unless the user permits it through their\n interaction with the user agent.
User agents are encouraged to warn users against sharing\n browser display devices as well as monitor display devices where browser\n windows are visible, or otherwise try to discourage their\n selection on the basis that these represent a significantly\n higher risk when shared.
\n\n\nIf the result of the request is\n \"granted
\", then for each device that is\n sourcing the provided media, using a stable and private id\n for the device, deviceId, set\n [[devicesLiveMap]][deviceId] to\n true
, if it isn’t already true
, and\n set the [[devicesAccessibleMap]][deviceId] to\n true
, if it isn’t already true
.
The user agent MUST NOT store a\n \"granted
\" permission entry.
If the result is \"denied
\", jump to the\n step labeled Permission Failure below. If the user\n never responds, this algorithm stalls on this step.
If the user grants permission but a hardware error such as\n an OS/program/webpage lock prevents access, reject\n p with a new DOMException
object whose\n name
attribute has the value\n NotReadableError
and abort these steps.
If the result is \"granted
\" but device\n access fails for any reason other than those listed above,\n reject p with a new DOMException
object\n whose name
attribute has the value\n AbortError
and abort these steps.
Prompt the user to choose a display device, for a\n PermissionDescriptor
with its\n name
set to \"display-capture\",\n resulting in a set of provided media.
The provided media MUST include precisely one video\n track.
\n\n\nThe provided media MUST include at most one audio track.\n This audio track MUST NOT be included if audio was not\n specified in requestedMediaTypes, or if it was\n specified as false
.
The devices chosen MUST be the ones determined by the\n user. Once selected, the source of a MediaStreamTrack
\n MUST NOT change, unless the user permits it through their\n interaction with the user agent.
User agents are encouraged to warn users against sharing\n browser display devices as well as monitor display devices where browser\n windows are visible, or otherwise try to discourage their\n selection on the basis that these represent a significantly\n higher risk when shared.
\n\n\nIf the result of the request is\n \"granted
\", then for each device that is\n sourcing the provided media, using a stable and private id\n for the device, deviceId, set\n [[devicesLiveMap]][deviceId] to\n true
, if it isn’t already true
, and\n set the [[devicesAccessibleMap]][deviceId] to\n true
, if it isn’t already true
.
The user agent MUST NOT store a\n \"granted
\" permission entry.
If the result is \"denied
\", jump to the\n step labeled Permission Failure below. If the user\n never responds, this algorithm stalls on this step.
If the user grants permission but a hardware error such as\n an OS/program/webpage lock prevents access, reject\n p with a new DOMException
object whose\n name
attribute has the value\n NotReadableError
and abort these steps.
If the result is \"granted
\" but device\n access fails for any reason other than those listed above,\n reject p with a new DOMException
object\n whose name
attribute has the value\n AbortError
and abort these steps.
Let stream be a MediaStream
object.
Let stream be a MediaStream
object.
Let track be the result of creating a MediaStreamTrack\n with source and mediaDevices.
" + "html": "Let track be the result of creating a MediaStreamTrack\n with source and mediaDevices.
" }, { "html": "Add track to stream's track set.
" }, { - "html": "Tie track source to MediaDevices with source and mediaDevices.
" + "html": "Tie track source to MediaDevices with source and mediaDevices.
" } ] }, { - "html": "Run the ApplyConstraints algorithm on all tracks in\n stream with the appropriate constraints. Should\n this fail, let failedConstraint be the result of\n the algorithm that failed, and let message be\n either undefined
or an informative\n human-readable message, and then reject p\n with a new OverconstrainedError
created by\n calling\n OverconstrainedError(failedConstraint,\n message)
.
Run the ApplyConstraints algorithm on all tracks in\n stream with the appropriate constraints. Should\n this fail, let failedConstraint be the result of\n the algorithm that failed, and let message be\n either undefined
or an informative\n human-readable message, and then reject p\n with a new OverconstrainedError
created by\n calling\n OverconstrainedError(failedConstraint,\n message)
.
This invocation of getDisplayMedia
()
is\n now considered to have produced a new\n capture-session.
Resolve p with stream and\n abort these steps.
" + "html": "Resolve p with stream and\n abort these steps.
" }, { - "html": "Permission Failure: Reject p with\n a new DOMException
object whose name
\n attribute has the value NotAllowedError
.
Permission Failure: Reject p with\n a new DOMException
object whose name
\n attribute has the value NotAllowedError
.
CaptureController
objects in that document and in\n documents of its nested browsing contexts:",
+ "html": "When the top-level document loses focus, run the following steps\n on all CaptureController
objects in that document and in\n documents of its nested browsing contexts:",
"rationale": "if",
"steps": [
{
@@ -171,22 +171,22 @@
"html": "Let focusBehavior be the method's first\n argument.
" }, { - "html": "If this.[[Source]]
is\n null
, set\n this.[[FocusBehavior]]
to\n focusBehavior and abort these steps.
If this.[[Source]]
is\n null
, set\n this.[[FocusBehavior]]
to\n focusBehavior and abort these steps.
If this.[[Source]]
has been\n stopped,\n throw an \"InvalidStateError
\"\n DOMException
.
If this.[[Source]]
has been\n stopped,\n throw an \"InvalidStateError
\"\n DOMException
.
If this.[[DisplaySurfaceType]]
is\n neither \"browser
\" nor\n \"window
\", throw an\n \"InvalidStateError
\" DOMException
.
If this.[[DisplaySurfaceType]]
is\n neither \"browser
\" nor\n \"window
\", throw an\n \"InvalidStateError
\" DOMException
.
If this.[[FocusDecisionFinalized]]
\n is true
, throw an\n \"InvalidStateError
\" DOMException
.
If this.[[FocusDecisionFinalized]]
\n is true
, throw an\n \"InvalidStateError
\" DOMException
.
Set this.[[FocusBehavior]]
to\n focusBehavior.
Set this.[[FocusBehavior]]
to\n focusBehavior.
Run the finalize focus decision algorithm on\n this.
" + "html": "Run the finalize focus decision algorithm on\n this.
" } ] }, @@ -215,7 +215,7 @@ "html": "Let focusBehavior be\n controller.[[FocusBehavior]]
.
Document
."
+ "html": "Let document be this's relevant global object's associated Document
."
},
{
- "html": "Run the common safety checks with document. If an\n exception is thrown, return a promise rejected with that exception and abort these steps."
+ "html": "Run the common safety checks with document. If an\n exception is thrown, return a promise rejected with that exception and abort these steps."
},
{
- "html": "If the user agent does not support locking the screen\n orientation to orientation, return a promise rejected with a\n \"NotSupportedError
\" DOMException
and abort these steps."
+ "html": "If the user agent does not support locking the screen\n orientation to orientation, return a promise rejected with a\n \"NotSupportedError
\" DOMException
and abort these steps."
},
{
- "html": "If document's\n [[orientationPendingPromise]]
is not null
, reject and nullify the current lock promise of document with an\n \"AbortError
\"."
+ "html": "If document's\n [[orientationPendingPromise]]
is not null
, reject and nullify the current lock promise of document with an\n \"AbortError
\"."
},
{
- "html": "Set document's\n [[orientationPendingPromise]]
to a new promise."
+ "html": "Set document's\n [[orientationPendingPromise]]
to a new promise."
},
{
"html": "Apply orientation lock orientation to document."
@@ -34,20 +34,20 @@
]
},
{
- "html": "When the unlock
()
method is invoked, the user agent MUST run\n the following steps:",
+ "html": "When the unlock
()
method is invoked, the user agent MUST run\n the following steps:",
"rationale": ".algorithm",
"steps": [
{
- "html": "Let document be this's relevant global object's associated Document
."
+ "html": "Let document be this's relevant global object's associated Document
."
},
{
- "html": "Run the common safety checks with document. If an\n exception is thrown, re-throw that exception\n and abort these steps."
+ "html": "Run the common safety checks with document. If an\n exception is thrown, re-throw that exception\n and abort these steps."
},
{
"html": "If screen's active orientation lock is null
, return\n undefined
."
},
{
- "html": "If document's [[orientationPendingPromise]]
is not\n null
, reject and nullify the current lock promise of document\n with an \"AbortError
\"."
+ "html": "If document's [[orientationPendingPromise]]
is not\n null
, reject and nullify the current lock promise of document\n with an \"AbortError
\"."
},
{
"html": "Apply orientation lock null
to document."
@@ -57,22 +57,22 @@
{
"name": "common safety checks",
"href": "https://w3c.github.io/screen-orientation/#dfn-common-safety-checks",
- "html": "The common safety checks for a Document
\n document are the following steps:",
+ "html": "The common safety checks for a Document
\n document are the following steps:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If document is not\n fully active, throw an\n \"InvalidStateError
\" DOMException
."
+ "html": "If document is not\n fully active, throw an\n \"InvalidStateError
\" DOMException
."
},
{
- "html": "If document has the\n sandboxed orientation lock browsing context flag set,\n throw \"SecurityError
\" DOMException
."
+ "html": "If document has the\n sandboxed orientation lock browsing context flag set,\n throw \"SecurityError
\" DOMException
."
},
{
- "html": "If document's\n visibility state is \"hidden\", throw\n \"SecurityError
\" DOMException
."
+ "html": "If document's\n visibility state is \"hidden\", throw\n \"SecurityError
\" DOMException
."
}
]
},
{
- "html": "When a browsing context context is created, the user agent\n MUST:",
+ "html": "When a browsing context context is created, the user agent\n MUST:",
"rationale": ".algorithm",
"steps": [
{
@@ -92,17 +92,17 @@
{
"name": "reject and nullify the current lock promise",
"href": "https://w3c.github.io/screen-orientation/#dfn-reject-and-nullify-the-current-lock-promise",
- "html": "When steps require to reject and nullify the current lock\n promise of Document
document with a DOMString
\n exceptionName, the user agent MUST:",
+ "html": "When steps require to reject and nullify the current lock\n promise of Document
document with a DOMString
\n exceptionName, the user agent MUST:",
"rationale": ".algorithm",
"steps": [
{
- "html": "Assert: [[orientationPendingPromise]]
is not\n null
."
+ "html": "Assert: [[orientationPendingPromise]]
is not\n null
."
},
{
"html": "Let promise be document's\n [[orientationPendingPromise]]
."
},
{
- "html": "Queue a global task on the DOM manipulation task source\n with document's relevant global object to reject promise\n with a new exceptionName DOMException
."
+ "html": "Queue a global task on the DOM manipulation task source\n with document's relevant global object to reject promise\n with a new exceptionName DOMException
."
},
{
"html": "Set document's [[orientationPendingPromise]]
to\n null
."
@@ -112,20 +112,20 @@
{
"name": "apply orientation lock",
"href": "https://w3c.github.io/screen-orientation/#dfn-apply-orientation-lock",
- "html": "When steps require to apply orientation lock of\n OrientationLockType?
orientation to Document
document, the\n user agent MUST perform do the following steps:",
+ "html": "When steps require to apply orientation lock of\n OrientationLockType?
orientation to Document
document, the\n user agent MUST perform do the following steps:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If document stops being fully active while in parallel, and [[orientationPendingPromise]]
is not\n null
, reject and nullify the current lock promise of document\n with an \"AbortError
\"."
+ "html": "If document stops being fully active while in parallel, and [[orientationPendingPromise]]
is not\n null
, reject and nullify the current lock promise of document\n with an \"AbortError
\"."
},
{
- "html": "Let topDocument be document's top-level browsing context's\n active document."
+ "html": "Let topDocument be document's top-level browsing context's\n active document."
},
{
- "html": "Let descendantDocs be an ordered set consisting of\n topDocument's descendant navigables's active documents, if any, in tree order."
+ "html": "Let descendantDocs be an ordered set consisting of\n topDocument's descendant navigables's active documents, if any, in tree order."
},
{
- "html": "For each doc in descendantDocs:",
+ "html": "For each doc in descendantDocs:",
"rationale": "if",
"steps": [
{
@@ -135,16 +135,16 @@
"html": "If doc [[orientationPendingPromise]]
is null
,\n continue."
},
{
- "html": "Reject and nullify the current lock promise of doc with\n an \"AbortError
\"."
+ "html": "Reject and nullify the current lock promise of doc with\n an \"AbortError
\"."
}
]
},
{
- "html": "Run the following sub-steps in parallel:",
+ "html": "Run the following sub-steps in parallel:",
"rationale": "if",
"steps": [
{
- "html": "If document has stopped being fully active, and\n if the document's [[orientationPendingPromise]]
is\n not null
, reject and nullify the current lock promise of\n document with an \"AbortError
\" and abort these steps."
+ "html": "If document has stopped being fully active, and\n if the document's [[orientationPendingPromise]]
is\n not null
, reject and nullify the current lock promise of\n document with an \"AbortError
\" and abort these steps."
},
{
"html": "If orientation is null
, unlock the screen orientation."
@@ -160,11 +160,11 @@
"html": "Set the screen's active orientation lock to\n null
."
},
{
- "html": "Queue a task on the DOM manipulation task source\n with document's relevant global object to:",
+ "html": "Queue a task on the DOM manipulation task source\n with document's relevant global object to:",
"rationale": "if",
"steps": [
{
- "html": "If the document's\n [[orientationPendingPromise]]
is not null
,\n reject and nullify the current lock promise of\n document with a \"NotSupportedError
\"."
+ "html": "If the document's\n [[orientationPendingPromise]]
is not null
,\n reject and nullify the current lock promise of\n document with a \"NotSupportedError
\"."
},
{
"html": "Abort these steps."
@@ -179,7 +179,7 @@
]
},
{
- "html": "Queue a global task on the DOM manipulation task source\n with document's relevant global object to:",
+ "html": "Queue a global task on the DOM manipulation task source\n with document's relevant global object to:",
"rationale": "let",
"steps": [
{
@@ -192,7 +192,7 @@
"html": "Run the screen orientation change steps with topDocument."
},
{
- "html": "If promise is not null
, resolve promise with\n undefined
."
+ "html": "If promise is not null
, resolve promise with\n undefined
."
}
]
}
@@ -201,23 +201,23 @@
{
"name": "screen orientation change steps",
"href": "https://w3c.github.io/screen-orientation/#dfn-screen-orientation-change-steps",
- "html": "The screen orientation change steps for\n Document
document are as follows:",
+ "html": "The screen orientation change steps for\n Document
document are as follows:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If document's visibility state is \"hidden\", abort\n these steps."
+ "html": "If document's visibility state is \"hidden\", abort\n these steps."
},
{
"html": "Let type and angle be the screen's current orientation type and current orientation angle."
},
{
- "html": "Let screenOrientation be document's relevant global object's associated ScreenOrientation
."
+ "html": "Let screenOrientation be document's relevant global object's associated ScreenOrientation
."
},
{
"html": "If type is equal to screenOrientation's\n [[type]]
and angle is equal to\n screenOrientation's [[angle]]
, abort these\n steps."
},
{
- "html": "Queue a global task on the user interaction task source\n with document's relevant global object to perform the following\n steps:",
+ "html": "Queue a global task on the user interaction task source\n with document's relevant global object to perform the following\n steps:",
"rationale": "set",
"steps": [
{
@@ -227,24 +227,24 @@
"html": "Set screenOrientation's [[type]]
to\n type."
},
{
- "html": "Fire an event named \"change\" at screenOrientation."
+ "html": "Fire an event named \"change\" at screenOrientation."
}
]
},
{
- "html": "Let descendantDocs be an ordered set consisting of\n document's descendant navigables's active documents, if any, in tree order."
+ "html": "Let descendantDocs be an ordered set consisting of\n document's descendant navigables's active documents, if any, in tree order."
},
{
- "html": "For each doc in descendantDocs, run the\n screen orientation change steps with doc."
+ "html": "For each doc in descendantDocs, run the\n screen orientation change steps with doc."
}
]
},
{
- "html": "Whenever the unloading document cleanup steps run with a\n document, the user agent MUST run the following steps:",
+ "html": "Whenever the unloading document cleanup steps run with a\n document, the user agent MUST run the following steps:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If document is not a top-level browsing context's\n active document, abort these steps."
+ "html": "If document is not a top-level browsing context's\n active document, abort these steps."
},
{
"html": "Run the fully unlock the screen orientation steps with\n document."
@@ -254,14 +254,14 @@
{
"name": "fully unlock the screen orientation steps",
"href": "https://w3c.github.io/screen-orientation/#dfn-fully-unlock-the-screen-orientation-steps",
- "html": "The fully unlock the screen orientation steps\n for Document
document are as follows:",
+ "html": "The fully unlock the screen orientation steps\n for Document
document are as follows:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If document's [[orientationPendingPromise]]
is not\n null
, reject and nullify the current lock promise of document\n with an \"AbortError
\"."
+ "html": "If document's [[orientationPendingPromise]]
is not\n null
, reject and nullify the current lock promise of document\n with an \"AbortError
\"."
},
{
- "html": "Let topDocument be document's top-level browsing context's\n active document."
+ "html": "Let topDocument be document's top-level browsing context's\n active document."
},
{
"html": "Apply orientation lock null
to topDocument."
@@ -273,7 +273,7 @@
"rationale": "for",
"steps": [
{
- "html": "For the life of a top-level browsing context, behave as as if\n screen's natural orientation is\n [[initialType]]
."
+ "html": "For the life of a top-level browsing context, behave as as if\n screen's natural orientation is\n [[initialType]]
."
},
{
"html": "Restrict the possible return values of the\n type
getter to\n \"portrait-primary
\" or\n \"landscape-primary
\". The screen aspect ratio\n determines which is returned."
diff --git a/ed/algorithms/screen-wake-lock.json b/ed/algorithms/screen-wake-lock.json
index 996fa453c825..9af20ef445a1 100644
--- a/ed/algorithms/screen-wake-lock.json
+++ b/ed/algorithms/screen-wake-lock.json
@@ -7,17 +7,17 @@
{
"name": "Screen Wake Lock permission revocation algorithm",
"href": "https://w3c.github.io/screen-wake-lock/#dfn-screen-wake-lock-permission-revocation-algorithm",
- "html": "The \"screen-wake-lock\"
powerful feature defines a permission revocation algorithm. To invoke the Screen\n Wake Lock permission revocation algorithm, run these steps:",
+ "html": "The \"screen-wake-lock\"
powerful feature defines a permission revocation algorithm. To invoke the Screen\n Wake Lock permission revocation algorithm, run these steps:",
"rationale": ".algorithm",
"steps": [
{
- "html": "Let document be the current global object's\n associated Document."
+ "html": "Let document be the current global object's\n associated Document."
},
{
"html": "Let lockList be\n document.[[ActiveLocks]]
[\"screen
\"]."
},
{
- "html": "For each lock in lockList:",
+ "html": "For each lock in lockList:",
"rationale": "run",
"steps": [
{
@@ -32,36 +32,36 @@
"rationale": ".algorithm",
"steps": [
{
- "html": "Let document be this's relevant global object's associated Document."
+ "html": "Let document be this's relevant global object's associated Document."
},
{
- "html": "If\n document is not fully active, return a promise rejected with with a \"NotAllowedError
\" DOMException
."
+ "html": "If\n document is not fully active, return a promise rejected with with a \"NotAllowedError
\" DOMException
."
},
{
- "html": "If\n document is not allowed to use the policy-controlled feature named \"screen-wake-lock
\", return a promise rejected with a \"NotAllowedError
\" DOMException
."
+ "html": "If\n document is not allowed to use the policy-controlled feature named \"screen-wake-lock
\", return a promise rejected with a \"NotAllowedError
\" DOMException
."
},
{
- "html": "If\n the user agent denies the wake lock of this type for\n document, return a promise rejected with a\n \"NotAllowedError
\" DOMException
."
+ "html": "If\n the user agent denies the wake lock of this type for\n document, return a promise rejected with a\n \"NotAllowedError
\" DOMException
."
},
{
- "html": "If\n document's visibility state is \"hidden
\", return a promise rejected with \"NotAllowedError
\" DOMException
."
+ "html": "If\n document's visibility state is \"hidden
\", return a promise rejected with \"NotAllowedError
\" DOMException
."
},
{
- "html": "Let promise be a new promise."
+ "html": "Let promise be a new promise."
},
{
- "html": "Run the following steps in parallel:",
+ "html": "Run the following steps in parallel:",
"rationale": "let",
"steps": [
{
- "html": "Let state be the result of requesting\n permission to use \"screen-wake-lock
\"."
+ "html": "Let state be the result of requesting\n permission to use \"screen-wake-lock
\"."
},
{
- "html": "If state is\n \"denied
\", then:",
+ "html": "If state is\n \"denied
\", then:",
"rationale": "queue",
"steps": [
{
- "html": "Queue a global task on the screen wake lock task\n source given document's relevant global object\n to reject promise with a \"NotAllowedError
\"\n DOMException
."
+ "html": "Queue a global task on the screen wake lock task\n source given document's relevant global object\n to reject promise with a \"NotAllowedError
\"\n DOMException
."
},
{
"html": "Abort these steps."
@@ -69,15 +69,15 @@
]
},
{
- "html": "Queue a global task on the screen wake lock task\n source given document's relevant global object to\n run these steps:",
+ "html": "Queue a global task on the screen wake lock task\n source given document's relevant global object to\n run these steps:",
"rationale": "if",
"steps": [
{
- "html": "If document is not fully active, then:",
+ "html": "If document is not fully active, then:",
"rationale": "reject",
"steps": [
{
- "html": "Reject promise with a \"NotAllowedError
\"\n DOMException
."
+ "html": "Reject promise with a \"NotAllowedError
\"\n DOMException
."
},
{
"html": "Abort these steps."
@@ -85,11 +85,11 @@
]
},
{
- "html": "If document's visibility state is\n \"hidden
\", then:",
+ "html": "If document's visibility state is\n \"hidden
\", then:",
"rationale": "reject",
"steps": [
{
- "html": "Reject promise with a \"NotAllowedError
\"\n DOMException
."
+ "html": "Reject promise with a \"NotAllowedError
\"\n DOMException
."
},
{
"html": "Abort these steps."
@@ -97,7 +97,7 @@
]
},
{
- "html": "If document.[[ActiveLocks]]
[\"screen
\"]\n is empty, then invoke the following steps in\n parallel:",
+ "html": "If document.[[ActiveLocks]]
[\"screen
\"]\n is empty, then invoke the following steps in\n parallel:",
"rationale": "invoke",
"steps": [
{
@@ -109,7 +109,7 @@
"html": "Let lock be a new WakeLockSentinel
\n object with its type
attribute set to\n type."
},
{
- "html": "Append lock to\n document.[[ActiveLocks]]
[\"screen
\"]."
+ "html": "Append lock to\n document.[[ActiveLocks]]
[\"screen
\"]."
},
{
"html": "Resolve promise with lock."
@@ -128,19 +128,19 @@
"rationale": ".algorithm",
"steps": [
{
- "html": "If this's [[Released]]
is false
,\n then run release a wake lock with lock set\n to this and type set to the value of\n this's type
attribute."
+ "html": "If this's [[Released]]
is false
,\n then run release a wake lock with lock set\n to this and type set to the value of\n this's type
attribute."
},
{
- "html": "Return a promise resolved with undefined
."
+ "html": "Return a promise resolved with undefined
."
}
]
},
{
- "html": "When a Document
document becomes no longer\n fully active, the user agent must run these steps:",
+ "html": "When a Document
document becomes no longer\n fully active, the user agent must run these steps:",
"rationale": ".algorithm",
"steps": [
{
- "html": "For each lock in\n document.[[ActiveLocks]]
[\"screen
\"]:",
+ "html": "For each lock in\n document.[[ActiveLocks]]
[\"screen
\"]:",
"rationale": "run",
"steps": [
{
@@ -151,14 +151,14 @@
]
},
{
- "html": "This specification defines the following page visibility change steps with visibility state state and\n document:",
+ "html": "This specification defines the following page visibility change steps with visibility state state and\n document:",
"rationale": ".algorithm",
"steps": [
{
"html": "If state is not \"hidden
\", abort these steps."
},
{
- "html": "For each lock in\n document.[[ActiveLocks]]
[\"screen
\"]:",
+ "html": "For each lock in\n document.[[ActiveLocks]]
[\"screen
\"]:",
"rationale": "run",
"steps": [
{
@@ -195,7 +195,7 @@
"html": "Remove lock from\n document.[[ActiveLocks]]
[type]."
},
{
- "html": "If document.[[ActiveLocks]]
[type] is empty, then run the following steps in parallel:",
+ "html": "If document.[[ActiveLocks]]
[type] is empty, then run the following steps in parallel:",
"rationale": "ask",
"steps": [
{
@@ -216,7 +216,7 @@
"html": "Set lock's [[Released]]
to true
."
},
{
- "html": "Fire an event named \"release
\" at lock."
+ "html": "Fire an event named \"release
\" at lock."
}
]
}
diff --git a/ed/algorithms/selection-api.json b/ed/algorithms/selection-api.json
index fe9848b8f8ee..ae25ce25dce1 100644
--- a/ed/algorithms/selection-api.json
+++ b/ed/algorithms/selection-api.json
@@ -11,13 +11,13 @@
"rationale": "if",
"steps": [
{
- "html": "If the root of the range's boundary points\n are not the document associated with this, abort these\n steps."
+ "html": "If the root of the range's boundary points\n are not the document associated with this, abort these\n steps."
},
{
"html": "If rangeCount
is not 0
, abort these\n steps."
},
{
- "html": "Set this's range to range by a strong reference\n (not by making a copy)."
+ "html": "Set this's range to range by a strong reference\n (not by making a copy)."
}
]
},
@@ -28,40 +28,40 @@
"rationale": "if",
"steps": [
{
- "html": "If this is empty, return an empty array."
+ "html": "If this is empty, return an empty array."
},
{
- "html": "Otherwise, let startNode be start node of\n the range associated with this, and let\n startOffset be start offset of the range."
+ "html": "Otherwise, let startNode be start node of\n the range associated with this, and let\n startOffset be start offset of the range."
},
{
- "html": "While startNode is a node,\n startNode's root is a shadow root, and\n startNode's root is not a shadow-including inclusive ancestor of any of\n options[\"shadowRoots
\"],\n repeat these steps:",
+ "html": "While startNode is a node,\n startNode's root is a shadow root, and\n startNode's root is not a shadow-including inclusive ancestor of any of\n options[\"shadowRoots
\"],\n repeat these steps:",
"rationale": "set",
"steps": [
{
- "html": "Set startOffset to index of\n startNode's root's host."
+ "html": "Set startOffset to index of\n startNode's root's host."
},
{
- "html": "Set startNode to startNode's\n root's host's parent."
+ "html": "Set startNode to startNode's\n root's host's parent."
}
]
},
{
- "html": "Let endNode be end node of the range\n associated with this, and let endOffset be\n end offset of the range."
+ "html": "Let endNode be end node of the range\n associated with this, and let endOffset be\n end offset of the range."
},
{
- "html": "While endNode is a node, endNode's\n root is a shadow root, and endNode's\n root is not a shadow-including inclusive ancestor of\n any of\n options[\"shadowRoots
\"],\n repeat these steps:",
+ "html": "While endNode is a node, endNode's\n root is a shadow root, and endNode's\n root is not a shadow-including inclusive ancestor of\n any of\n options[\"shadowRoots
\"],\n repeat these steps:",
"rationale": "set",
"steps": [
{
- "html": "Set endOffset to index of\n endNode's root's host plus 1."
+ "html": "Set endOffset to index of\n endNode's root's host plus 1."
},
{
- "html": "Set endNode to endNode's\n root's host's parent."
+ "html": "Set endNode to endNode's\n root's host's parent."
}
]
},
{
- "html": "Return an array consisting of new StaticRange
whose\n start node is startNode, start offset is startOffset, end node is\n endNode, and end offset is\n endOffset."
+ "html": "Return an array consisting of new StaticRange
whose\n start node is startNode, start offset is startOffset, end node is\n endNode, and end offset is\n endOffset."
}
]
},
@@ -75,22 +75,22 @@
"html": "If node is null, this method must behave identically\n as removeAllRanges()
and abort these steps."
},
{
- "html": "If node is a DocumentType
, throw an\n InvalidNodeTypeError
exception and abort these steps."
+ "html": "If node is a DocumentType
, throw an\n InvalidNodeTypeError
exception and abort these steps."
},
{
- "html": "The method must throw an IndexSizeError
exception if \n offset is longer than node's length and\n abort these steps."
+ "html": "The method must throw an IndexSizeError
exception if \n offset is longer than node's length and\n abort these steps."
},
{
- "html": "If document associated with this is not a\n shadow-including inclusive ancestor of node, abort\n these steps."
+ "html": "If document associated with this is not a\n shadow-including inclusive ancestor of node, abort\n these steps."
},
{
- "html": "Otherwise, let newRange be a new range."
+ "html": "Otherwise, let newRange be a new range."
},
{
- "html": "Set the start the start and the\n end of newRange to (node,\n offset)."
+ "html": "Set the start the start and the\n end of newRange to (node,\n offset)."
},
{
- "html": "Set this's range to newRange."
+ "html": "Set this's range to newRange."
}
]
},
@@ -101,31 +101,31 @@
"rationale": "if",
"steps": [
{
- "html": "If the document associated with this is not a\n shadow-including inclusive ancestor of node, abort\n these steps."
+ "html": "If the document associated with this is not a\n shadow-including inclusive ancestor of node, abort\n these steps."
},
{
- "html": "If this is empty, throw an InvalidStateError
\n exception and abort these steps."
+ "html": "If this is empty, throw an InvalidStateError
\n exception and abort these steps."
},
{
- "html": "Let oldAnchor and oldFocus be the\n this's anchor and focus, and let\n newFocus be the boundary point (node,\n offset)."
+ "html": "Let oldAnchor and oldFocus be the\n this's anchor and focus, and let\n newFocus be the boundary point (node,\n offset)."
},
{
- "html": "Let newRange be a new range."
+ "html": "Let newRange be a new range."
},
{
- "html": "If node's root is not the same as the\n this's range's root, set the start\n newRange's start and end to\n newFocus."
+ "html": "If node's root is not the same as the\n this's range's root, set the start\n newRange's start and end to\n newFocus."
},
{
- "html": "Otherwise, if oldAnchor is before\n or equal to newFocus, set the start\n newRange's start to oldAnchor, then\n set its end to newFocus."
+ "html": "Otherwise, if oldAnchor is before\n or equal to newFocus, set the start\n newRange's start to oldAnchor, then\n set its end to newFocus."
},
{
- "html": "Otherwise, set the start newRange's\n start to newFocus, then set its end\n to oldAnchor."
+ "html": "Otherwise, set the start newRange's\n start to newFocus, then set its end\n to oldAnchor."
},
{
- "html": "Set this's range to newRange."
+ "html": "Set this's range to newRange."
},
{
- "html": "If newFocus is before\n oldAnchor, set this's direction to\n backwards. Otherwise, set it to forwards."
+ "html": "If newFocus is before\n oldAnchor, set this's direction to\n backwards. Otherwise, set it to forwards."
}
]
},
@@ -136,25 +136,25 @@
"rationale": "if",
"steps": [
{
- "html": "If anchorOffset is longer than\n anchorNode's length or if\n focusOffset is longer than focusNode's\n length, throw an IndexSizeError
exception and abort\n these steps."
+ "html": "If anchorOffset is longer than\n anchorNode's length or if\n focusOffset is longer than focusNode's\n length, throw an IndexSizeError
exception and abort\n these steps."
},
{
- "html": "If document associated with this is not a\n shadow-including inclusive ancestor of anchorNode or\n focusNode, abort these steps."
+ "html": "If document associated with this is not a\n shadow-including inclusive ancestor of anchorNode or\n focusNode, abort these steps."
},
{
- "html": "Let anchor be the boundary point\n (anchorNode, anchorOffset) and let\n focus be the boundary point\n (focusNode, focusOffset)."
+ "html": "Let anchor be the boundary point\n (anchorNode, anchorOffset) and let\n focus be the boundary point\n (focusNode, focusOffset)."
},
{
- "html": "Let newRange be a new range."
+ "html": "Let newRange be a new range."
},
{
- "html": "If anchor is before\n focus, set the start the newRange's\n start to anchor and its end to \n focus. Otherwise, set the start them to\n focus and anchor respectively."
+ "html": "If anchor is before\n focus, set the start the newRange's\n start to anchor and its end to \n focus. Otherwise, set the start them to\n focus and anchor respectively."
},
{
- "html": "Set this's range to newRange."
+ "html": "Set this's range to newRange."
},
{
- "html": "If focus is before\n anchor, set this's direction to\n backwards. Otherwise, set it to forwards"
+ "html": "If focus is before\n anchor, set this's direction to\n backwards. Otherwise, set it to forwards"
}
]
},
@@ -165,25 +165,25 @@
"rationale": "if",
"steps": [
{
- "html": "If node is a DocumentType
, throw an\n InvalidNodeTypeError
exception and abort these steps."
+ "html": "If node is a DocumentType
, throw an\n InvalidNodeTypeError
exception and abort these steps."
},
{
- "html": "If node's root is not the document\n associated with this, abort these steps."
+ "html": "If node's root is not the document\n associated with this, abort these steps."
},
{
- "html": "Let newRange be a new range and\n childCount be the number of children of\n node."
+ "html": "Let newRange be a new range and\n childCount be the number of children of\n node."
},
{
- "html": "Set newRange's start to (node,\n 0
)."
+ "html": "Set newRange's start to (node,\n 0
)."
},
{
- "html": "Set newRange's end to (node,\n childCount)."
+ "html": "Set newRange's end to (node,\n childCount)."
},
{
- "html": "Set this's range to newRange."
+ "html": "Set this's range to newRange."
},
{
- "html": "Set this's direction to forwards."
+ "html": "Set this's direction to forwards."
}
]
},
@@ -194,37 +194,37 @@
"rationale": "if",
"steps": [
{
- "html": "If alter is not ASCII case-insensitive match\n with \"extend\" or \"move\", abort these steps."
+ "html": "If alter is not ASCII case-insensitive match\n with \"extend\" or \"move\", abort these steps."
},
{
- "html": "If direction is not ASCII case-insensitive\n match with \"forward\", \"backward\", \"left\", or \"right\", abort these\n steps."
+ "html": "If direction is not ASCII case-insensitive\n match with \"forward\", \"backward\", \"left\", or \"right\", abort these\n steps."
},
{
- "html": "If granularity is not ASCII case-insensitive\n match with \"character\", \"word\", \"sentence\", \"line\", \"paragraph\",\n \"lineboundary\", \"sentenceboundary\", \"paragraphboundary\",\n \"documentboundary\", abort these steps."
+ "html": "If granularity is not ASCII case-insensitive\n match with \"character\", \"word\", \"sentence\", \"line\", \"paragraph\",\n \"lineboundary\", \"sentenceboundary\", \"paragraphboundary\",\n \"documentboundary\", abort these steps."
},
{
- "html": "If this selection is empty, abort these steps."
+ "html": "If this selection is empty, abort these steps."
},
{
"html": "Let effectiveDirection be backwards."
},
{
- "html": "If direction is ASCII case-insensitive match\n with \"forward\", set effectiveDirection to\n forwards."
+ "html": "If direction is ASCII case-insensitive match\n with \"forward\", set effectiveDirection to\n forwards."
},
{
- "html": "If direction is ASCII case-insensitive match\n with \"right\" and inline base direction of this\n selection's focus is ltr, set\n effectiveDirection to forwards."
+ "html": "If direction is ASCII case-insensitive match\n with \"right\" and inline base direction of this\n selection's focus is ltr, set\n effectiveDirection to forwards."
},
{
- "html": "If direction is ASCII case-insensitive match\n with \"left\" and inline base direction of this\n selection's focus is rtl, set\n effectiveDirection to forwards."
+ "html": "If direction is ASCII case-insensitive match\n with \"left\" and inline base direction of this\n selection's focus is rtl, set\n effectiveDirection to forwards."
},
{
- "html": "Set this selection's direction to\n effectiveDirection."
+ "html": "Set this selection's direction to\n effectiveDirection."
},
{
- "html": "If alter is ASCII case-insensitive match with\n \"extend\", set this selection's focus to the\n location as if the user had requested to extend selection by \n granularity."
+ "html": "If alter is ASCII case-insensitive match with\n \"extend\", set this selection's focus to the\n location as if the user had requested to extend selection by \n granularity."
},
{
- "html": "Otherwise, set this selection's focus and\n anchor to the location as if the user had requested to move\n selection by granularity."
+ "html": "Otherwise, set this selection's focus and\n anchor to the location as if the user had requested to move\n selection by granularity."
}
]
},
@@ -238,7 +238,7 @@
"html": "If target's has scheduled selectionchange\n event is true, abort these steps."
},
{
- "html": "Queue a task on the user interaction task source to\n fire a selectionchange event on target."
+ "html": "Queue a task on the user interaction task source to\n fire a selectionchange event on target."
}
]
},
@@ -252,10 +252,10 @@
"html": "Set target's has scheduled selectionchange\n event to false."
},
{
- "html": "If target is an element, fire an event named\n selectionchange
, which bubbles and not cancelable, at\n target."
+ "html": "If target is an element, fire an event named\n selectionchange
, which bubbles and not cancelable, at\n target."
},
{
- "html": "Otherwise, if target is a document, fire an\n event named selectionchange
, which does not bubble\n and not cancelable, at target."
+ "html": "Otherwise, if target is a document, fire an\n event named selectionchange
, which does not bubble\n and not cancelable, at target."
}
]
}
diff --git a/ed/algorithms/server-timing.json b/ed/algorithms/server-timing.json
index bc36081c88e3..c0deae90b30e 100644
--- a/ed/algorithms/server-timing.json
+++ b/ed/algorithms/server-timing.json
@@ -11,13 +11,13 @@
"rationale": "let",
"steps": [
{
- "html": "Let position be a position variable, initially pointing at the start of field.
" + "html": "Let position be a position variable, initially pointing at the start of field.
" }, { - "html": "Let name be the result of collecting a sequence of code points from field that are not equal to U+003B (;), given position.
" + "html": "Let name be the result of collecting a sequence of code points from field that are not equal to U+003B (;), given position.
" }, { - "html": "Strip leading and trailing ASCII whitespace from name.
" + "html": "Strip leading and trailing ASCII whitespace from name.
" }, { "html": "If name is an empty string, return null.
" @@ -26,7 +26,7 @@ "html": "Let metric be a new PerformanceServerTiming
whose metric name is name.
Let params be an empty ordered map.
" + "html": "Let params be an empty ordered map.
" }, { "html": "While position is not at the end of field:", @@ -36,13 +36,13 @@ "html": "Advance position by 1.
" }, { - "html": "Let paramName be the result of collecting a sequence of code points from field that are not equal to U+003D (=), given position.
" + "html": "Let paramName be the result of collecting a sequence of code points from field that are not equal to U+003D (=), given position.
" }, { - "html": "Strip leading and trailing ASCII whitespace from paramName.
" + "html": "Strip leading and trailing ASCII whitespace from paramName.
" }, { - "html": "If paramName is an empty string or params[paramName] exists, continue.
" + "html": "If paramName is an empty string or params[paramName] exists, continue.
" }, { "html": "Advance position by 1.
" @@ -51,17 +51,17 @@ "html": "Let paramValue be an empty string.
" }, { - "html": "Skip ASCII whitespace within field given position.
" + "html": "Skip ASCII whitespace within field given position.
" }, { - "html": "If the code point at position within field is U+0022 (\"), then:", + "html": "If the code point at position within field is U+0022 (\"), then:", "rationale": "set", "steps": [ { - "html": "Set paramValue to the result of collecting an HTTP quoted string from field given position with the extract-value flag set.
" + "html": "Set paramValue to the result of collecting an HTTP quoted string from field given position with the extract-value flag set.
" }, { - "html": "Collect a sequence of code points from field that are not equal to U+003B (;), given position. The result is not used.
" + "html": "Collect a sequence of code points from field that are not equal to U+003B (;), given position. The result is not used.
" } ] }, @@ -70,17 +70,17 @@ "rationale": "let", "steps": [ { - "html": "Let rawParamValue be the result of collecting a sequence of code points from field that are not equal to U+003B (;), given position.
" + "html": "Let rawParamValue be the result of collecting a sequence of code points from field that are not equal to U+003B (;), given position.
" }, { - "html": "Let paramValue be the result of stripping rawParamValue.
" + "html": "Let paramValue be the result of stripping rawParamValue.
" } ] } ] }, { - "html": "Set metric's params to params.
" + "html": "Set metric's params to params.
" }, { "html": "Return metric.
" @@ -92,10 +92,10 @@ "rationale": "if", "steps": [ { - "html": "If this's params[\"dur\"
] does not exist, return 0.
If this's params[\"dur\"
] does not exist, return 0.
Let dur be the result of parsing this's params[\"dur\"
] using the rules for parsing floating-point number values.
Let dur be the result of parsing this's params[\"dur\"
] using the rules for parsing floating-point number values.
If dur is an error, return 0; Otherwise return dur.
" @@ -109,17 +109,17 @@ "rationale": "let", "steps": [ { - "html": "Let entries be a new list.
" + "html": "Let entries be a new list.
" }, { - "html": "For each field in this's timing info's server-timing headers:", + "html": "For each field in this's timing info's server-timing headers:", "rationale": "let", "steps": [ { "html": "Let metric be the result of parsing field.
" }, { - "html": "If metric is not null, append metric to entries.
" + "html": "If metric is not null, append metric to entries.
" } ] }, diff --git a/ed/algorithms/user-timing.json b/ed/algorithms/user-timing.json index ecca985e4aab..d2d4d68b0c9f 100644 --- a/ed/algorithms/user-timing.json +++ b/ed/algorithms/user-timing.json @@ -30,7 +30,7 @@ "html": "If markName is omitted, remove allPerformanceMark
objects from the performance entry buffer."
},
{
- "html": "Otherwise, remove all PerformanceMark
objects listed in the performance entry buffer whose name is markName."
+ "html": "Otherwise, remove all PerformanceMark
objects listed in the performance entry buffer whose name is markName."
},
{
"html": "Return undefined."
@@ -42,7 +42,7 @@
"rationale": "if",
"steps": [
{
- "html": "If startOrMeasureOptions is a PerformanceMeasureOptions
object and at least one of start
, end
, duration
, and detail
exist, run the following checks:",
+ "html": "If startOrMeasureOptions is a PerformanceMeasureOptions
object and at least one of start
, end
, duration
, and detail
exist, run the following checks:",
"rationale": "if",
"steps": [
{
@@ -52,7 +52,7 @@
"html": "If startOrMeasureOptions's start
and end
members are both omitted, throw a TypeError
."
},
{
- "html": "If startOrMeasureOptions's start
, duration
, and end
members all exist, throw a TypeError
."
+ "html": "If startOrMeasureOptions's start
, duration
, and end
members all exist, throw a TypeError
."
}
]
},
@@ -64,10 +64,10 @@
"html": "If endMark is given, let end time be the value returned by running the convert a mark to a timestamp algorithm passing in endMark."
},
{
- "html": "Otherwise, if startOrMeasureOptions is a PerformanceMeasureOptions
object, and if its end
member exists, let end time be the value returned by running the convert a mark to a timestamp algorithm passing in startOrMeasureOptions's end
."
+ "html": "Otherwise, if startOrMeasureOptions is a PerformanceMeasureOptions
object, and if its end
member exists, let end time be the value returned by running the convert a mark to a timestamp algorithm passing in startOrMeasureOptions's end
."
},
{
- "html": "Otherwise, if startOrMeasureOptions is a PerformanceMeasureOptions
object, and if its start
and duration
members both exist:",
+ "html": "Otherwise, if startOrMeasureOptions is a PerformanceMeasureOptions
object, and if its start
and duration
members both exist:",
"rationale": "let",
"steps": [
{
@@ -91,10 +91,10 @@
"rationale": "if",
"steps": [
{
- "html": "If startOrMeasureOptions is a PerformanceMeasureOptions
object, and if its start
member exists, let start time be the value returned by running the convert a mark to a timestamp algorithm passing in startOrMeasureOptions's start
."
+ "html": "If startOrMeasureOptions is a PerformanceMeasureOptions
object, and if its start
member exists, let start time be the value returned by running the convert a mark to a timestamp algorithm passing in startOrMeasureOptions's start
."
},
{
- "html": "Otherwise, if startOrMeasureOptions is a PerformanceMeasureOptions
object, and if its duration
and end
members both exist:",
+ "html": "Otherwise, if startOrMeasureOptions is a PerformanceMeasureOptions
object, and if its duration
and end
members both exist:",
"rationale": "let",
"steps": [
{
@@ -136,7 +136,7 @@
"rationale": "if",
"steps": [
{
- "html": "If startOrMeasureOptions is a PerformanceMeasureOptions
object and startOrMeasureOptions's detail
member exists:",
+ "html": "If startOrMeasureOptions is a PerformanceMeasureOptions
object and startOrMeasureOptions's detail
member exists:",
"rationale": "let",
"steps": [
{
@@ -171,7 +171,7 @@
"html": "If measureName is omitted, remove all PerformanceMeasure
objects in the performance entry buffer."
},
{
- "html": "Otherwise remove all PerformanceMeasure
objects listed in the performance entry buffer whose name
is measureName."
+ "html": "Otherwise remove all PerformanceMeasure
objects listed in the performance entry buffer whose name
is measureName."
},
{
"html": "Return undefined."
@@ -199,7 +199,7 @@
"rationale": "if",
"steps": [
{
- "html": "If markOptions's startTime
member exists, then:",
+ "html": "If markOptions's startTime
member exists, then:",
"rationale": "if",
"steps": [
{
@@ -245,7 +245,7 @@
"html": "If mark is a DOMString
and it has the same name as a read only attribute in the PerformanceTiming
interface, let end time be the value returned by running the convert a name to a timestamp algorithm with name set to the value of mark."
},
{
- "html": "Otherwise, if mark is a DOMString
, let end time be the value of the startTime
attribute from the most recent occurrence of a PerformanceMark
object in the performance entry buffer whose name
is mark. If no matching entry is found, throw a SyntaxError
."
+ "html": "Otherwise, if mark is a DOMString
, let end time be the value of the startTime
attribute from the most recent occurrence of a PerformanceMark
object in the performance entry buffer whose name
is mark. If no matching entry is found, throw a SyntaxError
."
},
{
"html": "Otherwise, if mark is a DOMHighResTimeStamp
:",
diff --git a/ed/algorithms/vc-data-integrity.json b/ed/algorithms/vc-data-integrity.json
index 373e8f61edf8..fe0816624e44 100644
--- a/ed/algorithms/vc-data-integrity.json
+++ b/ed/algorithms/vc-data-integrity.json
@@ -41,7 +41,7 @@
]
},
{
- "html": "The following algorithm specifies how a digital proof can be added to an input document, and can then be used to verify the output document's authenticity\nand integrity. Required inputs are an input document (map\ninputDocument), a cryptosuite instance (struct cryptosuite), and a\nset of options (map options). Output is a secured data document\n(map) or an error. Whenever this algorithm encodes strings, it MUST use\nUTF-8 encoding.",
+ "html": "The following algorithm specifies how a digital proof can be added to an input document, and can then be used to verify the output document's authenticity\nand integrity. Required inputs are an input document (map\ninputDocument), a cryptosuite instance (struct cryptosuite), and a\nset of options (map options). Output is a secured data document\n(map) or an error. Whenever this algorithm encodes strings, it MUST use\nUTF-8 encoding.",
"rationale": ".algorithm",
"steps": [
{
@@ -51,10 +51,10 @@
"html": "If one or more of the proof.type, proof.verificationMethod, and\nproof.proofPurpose values is not set, an error MUST be raised and SHOULD\nconvey an error type of\nPROOF_GENERATION_ERROR."
},
{
- "html": "If options has a non-null domain item, it MUST be equal to\nproof.domain or an error MUST be raised and SHOULD convey\nan error type of PROOF_GENERATION_ERROR."
+ "html": "If options has a non-null domain item, it MUST be equal to\nproof.domain or an error MUST be raised and SHOULD convey\nan error type of PROOF_GENERATION_ERROR."
},
{
- "html": "If options has a non-null challenge item, it MUST be equal to\nproof.challenge or an error MUST be raised and SHOULD\nconvey an error type of\nPROOF_GENERATION_ERROR."
+ "html": "If options has a non-null challenge item, it MUST be equal to\nproof.challenge or an error MUST be raised and SHOULD\nconvey an error type of\nPROOF_GENERATION_ERROR."
},
{
"html": "Let securedDataDocument be a copy of inputDocument."
@@ -68,7 +68,7 @@
]
},
{
- "html": "The following algorithm specifies how to incrementally add a proof to a proof\nset or proof chain starting with a secured document containing either a proof or\nproof set/chain. Required inputs are a secured data document (map\nsecuredDocument), a cryptographic suite (cryptosuite instance suite), and a set of options (map options). Output is a new\nsecured data document (map). Whenever this algorithm encodes strings, it\nMUST use UTF-8 encoding.",
+ "html": "The following algorithm specifies how to incrementally add a proof to a proof\nset or proof chain starting with a secured document containing either a proof or\nproof set/chain. Required inputs are a secured data document (map\nsecuredDocument), a cryptographic suite (cryptosuite instance suite), and a set of options (map options). Output is a new\nsecured data document (map). Whenever this algorithm encodes strings, it\nMUST use UTF-8 encoding.",
"rationale": ".algorithm",
"steps": [
{
@@ -81,10 +81,10 @@
"html": "Let matchingProofs be an empty list."
},
{
- "html": "If options has a previousProof
item that is a string, add the\nelement from allProofs with an id
attribute matching previousProof
to\nmatchingProofs. If a proof with id
equal to previousProof
does not exist in\nallProofs, an error MUST be raised and SHOULD convey an error type of\nPROOF_GENERATION_ERROR."
+ "html": "If options has a previousProof
item that is a string, add the\nelement from allProofs with an id
attribute matching previousProof
to\nmatchingProofs. If a proof with id
equal to previousProof
does not exist in\nallProofs, an error MUST be raised and SHOULD convey an error type of\nPROOF_GENERATION_ERROR."
},
{
- "html": "If options has a previousProof
item that is an array, add each\nelement from allProofs with an id
attribute that matches an element of that\narray. If any element of previousProof
list has an id
attribute that does\nnot match the id
attribute of any element of allProofs, an error MUST be\nraised and SHOULD convey an error type of\nPROOF_GENERATION_ERROR."
+ "html": "If options has a previousProof
item that is an array, add each\nelement from allProofs with an id
attribute that matches an element of that\narray. If any element of previousProof
list has an id
attribute that does\nnot match the id
attribute of any element of allProofs, an error MUST be\nraised and SHOULD convey an error type of\nPROOF_GENERATION_ERROR."
},
{
"html": "Set inputDocument.proof to matchingProofs."
@@ -105,22 +105,22 @@
"rationale": ".algorithm",
"steps": [
{
- "html": "Let securedDocument be the result of running parse JSON bytes to an Infra value on documentBytes."
+ "html": "Let securedDocument be the result of running parse JSON bytes to an Infra value on documentBytes."
},
{
- "html": "If either securedDocument is not a map or securedDocument.proof\nis not a map, an error MUST be raised and SHOULD convey an error type of\n\nPARSING_ERROR."
+ "html": "If either securedDocument is not a map or securedDocument.proof\nis not a map, an error MUST be raised and SHOULD convey an error type of\n\nPARSING_ERROR."
},
{
"html": "Let proof be securedDocument.proof."
},
{
- "html": "If one or more of proof.type,\nproof.verificationMethod, and\nproof.proofPurpose does not exist,\nan error MUST be raised and SHOULD convey an error type of\nPROOF_VERIFICATION_ERROR."
+ "html": "If one or more of proof.type,\nproof.verificationMethod, and\nproof.proofPurpose does not exist,\nan error MUST be raised and SHOULD convey an error type of\nPROOF_VERIFICATION_ERROR."
},
{
"html": "If expectedProofPurpose was given, and it does not match\nproof.proofPurpose,\nan error MUST be raised and SHOULD convey an error type of\nPROOF_VERIFICATION_ERROR."
},
{
- "html": "If domain was given, and it does not contain the same strings as\nproof.domain (treating a single string as a set containing just\nthat string), an error MUST be raised and SHOULD convey an error type of INVALID_DOMAIN_ERROR."
+ "html": "If domain was given, and it does not contain the same strings as\nproof.domain (treating a single string as a set containing just\nthat string), an error MUST be raised and SHOULD convey an error type of INVALID_DOMAIN_ERROR."
},
{
"html": "If challenge was given, and it does not match\nproof.challenge, an error MUST be raised and SHOULD\nconvey an error type of\nINVALID_CHALLENGE_ERROR."
@@ -129,7 +129,7 @@
"html": "Let cryptosuiteVerificationResult be the result of running the\ncryptosuite.verifyProof algorithm with\nsecuredDocument provided as input."
},
{
- "html": "Return a verification result with items:\n previousProof
attribute and the value of that\nattribute is a string, add the element from allProofs with an id
\nattribute value matching the value of previousProof
to matchingProofs
.\nIf a proof with id
value equal to the value of previousProof
does not\nexist in allProofs, an error MUST be raised and SHOULD convey an error\ntype of\nPROOF_VERIFICATION_ERROR. If the\npreviousProof
attribute is a list, add each element from allProofs\nwith an id
attribute value that matches the value of an element of that\nlist. If any element of previousProof
list has an id
attribute\nvalue that does not match the id
attribute value of any element of\nallProofs, an error MUST be raised and SHOULD convey an error type of\nPROOF_VERIFICATION_ERROR."
+ "html": "If proof contains a previousProof
attribute and the value of that\nattribute is a string, add the element from allProofs with an id
\nattribute value matching the value of previousProof
to matchingProofs
.\nIf a proof with id
value equal to the value of previousProof
does not\nexist in allProofs, an error MUST be raised and SHOULD convey an error\ntype of\nPROOF_VERIFICATION_ERROR. If the\npreviousProof
attribute is a list, add each element from allProofs\nwith an id
attribute value that matches the value of an element of that\nlist. If any element of previousProof
list has an id
attribute\nvalue that does not match the id
attribute value of any element of\nallProofs, an error MUST be raised and SHOULD convey an error type of\nPROOF_VERIFICATION_ERROR."
},
{
"html": "Let inputDocument be a copy of securedDocument with the proof value\nremoved and then set inputDocument.proof to matchingProofs."
diff --git a/ed/algorithms/vc-data-model-2.0.json b/ed/algorithms/vc-data-model-2.0.json
index 615c753d955d..5b8b7d86b12d 100644
--- a/ed/algorithms/vc-data-model-2.0.json
+++ b/ed/algorithms/vc-data-model-2.0.json
@@ -16,7 +16,7 @@
"html": "Set the verifyProof function by using the inputMediaType and the\nSecuring Mechanisms\nsection of the Verifiable Credential Extensions document, or other mechanisms known to the\nimplementation, to determine the cryptographic suite to use when verifying the\nsecuring mechanism. The verifyProof function MUST implement the interface\ndescribed in 5.13 Securing Mechanism Specifications."
},
{
- "html": "If the verifyProof function expects a byte sequence, provide\ninputMediaType and inputData to the algorithm. If the verifyProof function\nexpects a map, provide inputMediaType and the result of parsing JSON bytes to an Infra value given inputData. Set result to the result of the\ncall to the verifyProof function. If the call was successful, result will\ncontain the status, document, mediaType, controller,\ncontrollerDocument, warnings, and errors properties."
+ "html": "If the verifyProof function expects a byte sequence, provide\ninputMediaType and inputData to the algorithm. If the verifyProof function\nexpects a map, provide inputMediaType and the result of parsing JSON bytes to an Infra value given inputData. Set result to the result of the\ncall to the verifyProof function. If the call was successful, result will\ncontain the status, document, mediaType, controller,\ncontrollerDocument, warnings, and errors properties."
},
{
"html": "If result.status is set to false
, add a\nCRYPTOGRAPHIC_SECURITY_ERROR to\nresult.errors."
diff --git a/ed/algorithms/vibration.json b/ed/algorithms/vibration.json
index ed3d403bcb69..99bc4f112e18 100644
--- a/ed/algorithms/vibration.json
+++ b/ed/algorithms/vibration.json
@@ -1,6 +1,6 @@
{
"spec": {
- "title": "Vibration API (Second Edition)",
+ "title": "Vibration API",
"url": "https://w3c.github.io/vibration/"
},
"algorithms": [
@@ -17,10 +17,10 @@
"html": "Let valid pattern be the result of passing\n pattern to validate and normalize."
},
{
- "html": "If the document's visibility state is not \n visible
, then return false and terminate these steps."
+ "html": "If the document's visibility state is not \n visible
, then return false and terminate these steps."
},
{
- "html": "Perform vibration with this's relevant global object\n and valid pattern."
+ "html": "Perform vibration with this's relevant global object\n and valid pattern."
}
]
},
@@ -62,11 +62,11 @@
{
"name": "perform vibration",
"href": "https://w3c.github.io/vibration/#dfn-perform-vibration",
- "html": "To perform vibration using a global object\n global and a vibration pattern pattern,\n run these steps:",
+ "html": "To perform vibration using a global object\n global and a vibration pattern pattern,\n run these steps:",
"rationale": "if",
"steps": [
{
- "html": "If global does not have sticky activation,\n return false and terminate these steps."
+ "html": "If global does not have sticky activation,\n return false and terminate these steps."
},
{
"html": "An implementation MAY return false and terminate these steps."
diff --git a/ed/algorithms/virtual-keyboard.json b/ed/algorithms/virtual-keyboard.json
index c6be105df929..27622c691790 100644
--- a/ed/algorithms/virtual-keyboard.json
+++ b/ed/algorithms/virtual-keyboard.json
@@ -11,13 +11,13 @@
"rationale": "let",
"steps": [
{
- "html": "Let window be this's relevant global object. Assert that window is a Window
object."
+ "html": "Let window be this's relevant global object. Assert that window is a Window
object."
},
{
- "html": "If window does not have sticky activation, abort these steps."
+ "html": "If window does not have sticky activation, abort these steps."
},
{
- "html": "If the focused element is not a form control (such as the value of the textarea element), or an editing host (e.g., using contenteditable) then abort these steps."
+ "html": "If the focused element is not a form control (such as the value of the textarea element), or an editing host (e.g., using contenteditable) then abort these steps."
},
{
"html": "If the virtualKeyboardPolicy
is not manual
or inputMode's attribute value is none then abort these steps."
@@ -26,17 +26,17 @@
"html": "Call the system API to show the VK."
},
{
- "html": "In parallel, follow these steps:",
+ "html": "In parallel, follow these steps:",
"rationale": "wait",
"steps": [
{
"html": "Wait for the virtual keyboard to be shown by the system."
},
{
- "html": "Call set the virtual keyboard bounding rect
with the keyboard's OS reported bounding rectangle and the document's viewport rectangle."
+ "html": "Call set the virtual keyboard bounding rect
with the keyboard's OS reported bounding rectangle and the document's viewport rectangle."
},
{
- "html": "Fire an event named \"geometrychange\" at this."
+ "html": "Fire an event named \"geometrychange\" at this."
}
]
}
@@ -49,10 +49,10 @@
"rationale": "let",
"steps": [
{
- "html": "Let window be this's relevant global object. Assert that window is a Window
object."
+ "html": "Let window be this's relevant global object. Assert that window is a Window
object."
},
{
- "html": "If window does not have sticky activation, abort these steps."
+ "html": "If window does not have sticky activation, abort these steps."
},
{
"html": "If the focused element's virtualKeyboardPolicy
is not manual
or inputMode's attribute value is none then abort these steps."
@@ -61,17 +61,17 @@
"html": "Call the system API to hide the VK."
},
{
- "html": "In parallel, follow these steps:",
+ "html": "In parallel, follow these steps:",
"rationale": "wait",
"steps": [
{
"html": "Wait for the virtual keyboard to be hidden by the system."
},
{
- "html": "Call set the virtual keyboard bounding rect
with the keyboard's OS reported bounding rectangle (which has all 0 values) and the document's viewport rectangle."
+ "html": "Call set the virtual keyboard bounding rect
with the keyboard's OS reported bounding rectangle (which has all 0 values) and the document's viewport rectangle."
},
{
- "html": "Fire an event named \"geometrychange\" at this."
+ "html": "Fire an event named \"geometrychange\" at this."
}
]
}
@@ -84,16 +84,16 @@
"rationale": "let",
"steps": [
{
- "html": "Let osk be the on-screen keyboard rectangle that is the result of running the algorithm in show
()
or hide
()
on this."
+ "html": "Let osk be the on-screen keyboard rectangle that is the result of running the algorithm in show
()
or hide
()
on this."
},
{
- "html": "Let lv be the document's viewport that is the result of running the algorithm in show
()
or hide
()
on this."
+ "html": "Let lv be the document's viewport that is the result of running the algorithm in show
()
or hide
()
on this."
},
{
"html": "Map osk to the coordinate space of lv."
},
{
- "html": "Let bounds be a DOMRect
object."
+ "html": "Let bounds be a DOMRect
object."
},
{
"html": "Update bounds by intersecting lv with the osk."
diff --git a/ed/algorithms/web-app-launch.json b/ed/algorithms/web-app-launch.json
index 38afbd5aecba..00d3bbdd00e3 100644
--- a/ed/algorithms/web-app-launch.json
+++ b/ed/algorithms/web-app-launch.json
@@ -9,24 +9,24 @@
"rationale": "run",
"steps": [
{
- "html": "Run the steps for processing the launch_handler member\n given ordered map json and ordered map\n manifest."
+ "html": "Run the steps for processing the launch_handler member\n given ordered map json and ordered map\n manifest."
}
]
},
{
"name": "processing the launch_handler member",
"href": "https://wicg.github.io/web-app-launch/#dfn-processing-the-launch_handler-member",
- "html": "The steps for processing the launch_handler member, given\n ordered map json, ordered map\n manifest, are as follows:",
+ "html": "The steps for processing the launch_handler member, given\n ordered map json, ordered map\n manifest, are as follows:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If json[\"launch_handler\"] does not exist, return."
+ "html": "If json[\"launch_handler\"] does not exist, return."
},
{
- "html": "If the type of json[\"launch_handler\"] is not ordered map,\n return."
+ "html": "If the type of json[\"launch_handler\"] is not ordered map,\n return."
},
{
- "html": "Set manifest[\"launch_handler\"] to a new ordered map."
+ "html": "Set manifest[\"launch_handler\"] to a new ordered map."
},
{
"html": "Process the client_mode
member passing\n json[\"launch_handler\"], manifest[\"launch_handler\"]."
@@ -36,22 +36,22 @@
{
"name": "process the client_mode member",
"href": "https://wicg.github.io/web-app-launch/#dfn-process-the-client_mode-member",
- "html": "To process the client_mode
member, given ordered map json_launch_handler, ordered map\n manifest_launch_handler, run the following:",
+ "html": "To process the client_mode
member, given ordered map json_launch_handler, ordered map\n manifest_launch_handler, run the following:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If json_launch_handler[\"client_mode\"] does not exist,\n return."
+ "html": "If json_launch_handler[\"client_mode\"] does not exist,\n return."
},
{
- "html": "If the type of json_launch_handler[\"client_mode\"] is\n list:",
+ "html": "If the type of json_launch_handler[\"client_mode\"] is\n list:",
"rationale": ".algorithm",
"steps": [
{
- "html": "For each entry of\n json_launch_handler[\"client_mode\"]:",
+ "html": "For each entry of\n json_launch_handler[\"client_mode\"]:",
"rationale": ".algorithm",
"steps": [
{
- "html": "If the type of entry is not string, continue."
+ "html": "If the type of entry is not string, continue."
},
{
"html": "If entry is supported by the user agent, set\n manifest_launch_handler[\"client_mode\"] to entry and\n return."
@@ -61,7 +61,7 @@
]
},
{
- "html": "If json_launch_handler[\"client_mode\"] is string and supported\n by the user agent, set manifest_launch_handler[\"client_mode\"] to\n json_launch_handler[\"client_mode\"] and return."
+ "html": "If json_launch_handler[\"client_mode\"] is string and supported\n by the user agent, set manifest_launch_handler[\"client_mode\"] to\n json_launch_handler[\"client_mode\"] and return."
},
{
"html": "Set manifest_launch_handler[\"client_mode\"] to auto."
@@ -71,17 +71,17 @@
{
"name": "launching a web application with handling",
"href": "https://wicg.github.io/web-app-launch/#dfn-launching-a-web-application-with-handling",
- "html": "The steps to \n launch a web application with handling are given by the\n following algorithm. The algorithm takes a processed manifest manifest, an optional URL or\n LaunchParams
params, an optional POST resource POST\n resource and returns an application context.",
+ "html": "The steps to \n launch a web application with handling are given by the\n following algorithm. The algorithm takes a processed manifest manifest, an optional URL or\n LaunchParams
params, an optional POST resource POST\n resource and returns an application context.",
"rationale": ".algorithm",
"steps": [
{
- "html": "If params is not given, set params to\n manifest.start_url."
+ "html": "If params is not given, set params to\n manifest.start_url."
},
{
- "html": "If params is a URL, set params to a new LaunchParams
\n with targetURL
set to params."
+ "html": "If params is a URL, set params to a new LaunchParams
\n with targetURL
set to params."
},
{
- "html": "Assert: params.targetURL
is within scope of manifest."
+ "html": "Assert: params.targetURL
is within scope of manifest."
},
{
"html": "Set application context to the result of running the steps to\n prepare an application context passing manifest, params\n and POST resource."
@@ -90,14 +90,14 @@
"html": "Append params to the unconsumed launch params of the\n application context's document's launchQueue
."
},
{
- "html": "Run the steps to process unconsumed launch params on the\n application context's active document's\n launchQueue
."
+ "html": "Run the steps to process unconsumed launch params on the\n application context's active document's\n launchQueue
."
}
]
},
{
"name": "prepare an application context",
"href": "https://wicg.github.io/web-app-launch/#dfn-prepare-an-application-context",
- "html": "The steps to prepare an application context are given by\n the following algorithm. The algorithm takes a\n processed manifest manifest, a\n LaunchParams
launch params, an optional POST resource POST resource and returns an application context.",
+ "html": "The steps to prepare an application context are given by\n the following algorithm. The algorithm takes a\n processed manifest manifest, a\n LaunchParams
launch params, an optional POST resource POST resource and returns an application context.",
"rationale": ".algorithm",
"steps": [
{
@@ -119,7 +119,7 @@
"rationale": ".algorithm",
"steps": [
{
- "html": "Return the result of running the steps to create a new application context passing manifest, launch\n params.targetURL
and POST resource."
+ "html": "Return the result of running the steps to create a new application context passing manifest, launch\n params.targetURL
and POST resource."
}
]
},
@@ -129,19 +129,19 @@
"rationale": ".algorithm",
"steps": [
{
- "html": "If there is no application context that has manifest\n applied:",
+ "html": "If there is no application context that has manifest\n applied:",
"rationale": "return",
"steps": [
{
- "html": "Return the result of running the steps to create a new application context passing manifest,\n launch params.targetURL
and POST\n resource."
+ "html": "Return the result of running the steps to create a new application context passing manifest,\n launch params.targetURL
and POST\n resource."
}
]
},
{
- "html": "Let application context be an application context\n that has manifest applied, the user agent selects\n the most appropriate one if there are multiple."
+ "html": "Let application context be an application context\n that has manifest applied, the user agent selects\n the most appropriate one if there are multiple."
},
{
- "html": "If client mode is focus-existing and\n application context's\n current\n session history entry's\n URL is within scope of manifest:",
+ "html": "If client mode is focus-existing and\n application context's\n current\n session history entry's\n URL is within scope of manifest:",
"rationale": "return",
"steps": [
{
@@ -153,7 +153,7 @@
]
},
{
- "html": "Navigate application context to launch\n params.targetURL
passing POST resource."
+ "html": "Navigate application context to launch\n params.targetURL
passing POST resource."
},
{
"html": "Return application context."
@@ -177,7 +177,7 @@
"rationale": "for",
"steps": [
{
- "html": "For each launch_params of\n the queue's unconsumed launch params:",
+ "html": "For each launch_params of\n the queue's unconsumed launch params:",
"rationale": "invoke",
"steps": [
{
diff --git a/ed/algorithms/web-share-target.json b/ed/algorithms/web-share-target.json
index d5098a35f6a8..ef0aca01cca0 100644
--- a/ed/algorithms/web-share-target.json
+++ b/ed/algorithms/web-share-target.json
@@ -9,7 +9,7 @@
"rationale": ".algorithm",
"steps": [
{
- "html": "Let json and manifest be the corresponding variables from\n processing a manifest."
+ "html": "Let json and manifest be the corresponding variables from\n processing a manifest."
},
{
"html": "Process the share_target
member with json and manifest."
@@ -19,7 +19,7 @@
{
"name": "process the share_target member",
"href": "https://w3c.github.io/web-share-target/#dfn-process-the-share_target-member",
- "html": "To process the share_target
member given object\n json and ordered map manifest:",
+ "html": "To process the share_target
member given object\n json and ordered map manifest:",
"rationale": ".algorithm",
"steps": [
{
@@ -36,13 +36,13 @@
"rationale": "let",
"steps": [
{
- "html": "Let action be the result of parsing\n share target[\"action\"] relative to the manifest URL and with\n no encoding override. If the result is failure, return."
+ "html": "Let action be the result of parsing\n share target[\"action\"] relative to the manifest URL and with\n no encoding override. If the result is failure, return."
},
{
- "html": "If action is not within scope of the\n manifest[\"scope\"], return."
+ "html": "If action is not within scope of the\n manifest[\"scope\"], return."
},
{
- "html": "If the origin of action is not a potentially trustworthy origin, return."
+ "html": "If the origin of action is not a potentially trustworthy origin, return."
}
]
},
@@ -54,10 +54,10 @@
"rationale": "if",
"steps": [
{
- "html": "If target[\"method\"] is neither an ASCII case-insensitive match for the strings \"GET\"
nor \"POST\"
,\n return."
+ "html": "If target[\"method\"] is neither an ASCII case-insensitive match for the strings \"GET\"
nor \"POST\"
,\n return."
},
{
- "html": "Set method to ASCII uppercase target[\"method\"]."
+ "html": "Set method to ASCII uppercase target[\"method\"]."
}
]
},
@@ -69,22 +69,22 @@
"rationale": "if",
"steps": [
{
- "html": "If target[\"enctype\"] is neither an ASCII case-insensitive match for the strings\n \"application/x-www-form-urlencoded\"
nor\n \"multipart/form-data\"
, return."
+ "html": "If target[\"enctype\"] is neither an ASCII case-insensitive match for the strings\n \"application/x-www-form-urlencoded\"
nor\n \"multipart/form-data\"
, return."
},
{
- "html": "Set enctype to ASCII lowercase target[\"enctype\"]."
+ "html": "Set enctype to ASCII lowercase target[\"enctype\"]."
}
]
},
{
- "html": "Let params be a new ordered map."
+ "html": "Let params be a new ordered map."
},
{
"html": "Process params
:",
"rationale": "for",
"steps": [
{
- "html": "For each member of « \"title\", \"text\", \"url\"\n »:",
+ "html": "For each member of « \"title\", \"text\", \"url\"\n »:",
"rationale": "if",
"steps": [
{
@@ -101,22 +101,22 @@
]
},
{
- "html": "Set manifest[\"share_target\"] to ordered map «[ShareData
data, run the following steps:",
+ "html": "When web share target having ordered map manifest is\n invoked with ShareData
data, run the following steps:",
"rationale": ".algorithm",
"steps": [
{
- "html": "Let url be the result of parsing\n manifest[\"share_target\"][\"action\"]."
+ "html": "Let url be the result of parsing\n manifest[\"share_target\"][\"action\"]."
},
{
- "html": "Let entries be a new empty list."
+ "html": "Let entries be a new empty list."
},
{
- "html": "For each member of « \"title\", \"text\", \"url\" »:",
+ "html": "For each member of « \"title\", \"text\", \"url\" »:",
"rationale": "let",
"steps": [
{
@@ -132,12 +132,12 @@
"html": "Let value be ToString(data[member])."
},
{
- "html": "Append tuple (name, value) to entry list."
+ "html": "Append tuple (name, value) to entry list."
}
]
},
{
- "html": "Let header list be a newly created header list."
+ "html": "Let header list be a newly created header list."
},
{
"html": "Let method be manifest[\"share_target\"][\"method\"]."
@@ -150,10 +150,10 @@
"rationale": "let",
"steps": [
{
- "html": "Let query be the result of running the urlencoded serializer with entries and no encoding override."
+ "html": "Let query be the result of running the urlencoded serializer with entries and no encoding override."
},
{
- "html": "Set url's query component to query."
+ "html": "Set url's query component to query."
},
{
"html": "Let body be null."
@@ -165,13 +165,13 @@
"rationale": "let",
"steps": [
{
- "html": "Let body be the result of running the urlencoded serializer with entries and no encoding override."
+ "html": "Let body be the result of running the urlencoded serializer with entries and no encoding override."
},
{
- "html": "Set body to the result of UTF-8 encode body."
+ "html": "Set body to the result of UTF-8 encode body."
},
{
- "html": "Append\n \"Content-Type\"
/\"application/x-www-form-urlencoded\"
to header\n list."
+ "html": "Append\n \"Content-Type\"
/\"application/x-www-form-urlencoded\"
to header\n list."
}
]
},
@@ -180,24 +180,24 @@
"rationale": "let",
"steps": [
{
- "html": "Let body be the result of running the\n multipart/form-data encoding algorithm with entries and\n the UTF-8 encoding."
+ "html": "Let body be the result of running the\n multipart/form-data encoding algorithm with entries and\n the UTF-8 encoding."
},
{
- "html": "Let MIME type be the concatenation of the string\n \"multipart/form-data;\"
, a U+0020 SPACE character, the string\n \"boundary=\"
, and the multipart/form-data
boundary string\n generated by the multipart/form-data
encoding algorithm."
+ "html": "Let MIME type be the concatenation of the string\n \"multipart/form-data;\"
, a U+0020 SPACE character, the string\n \"boundary=\"
, and the multipart/form-data
boundary string\n generated by the multipart/form-data
encoding algorithm."
},
{
- "html": "Append \"Content-Type\"
/MIME type to\n header list."
+ "html": "Append \"Content-Type\"
/MIME type to\n header list."
}
]
},
{
- "html": "Let browsing context be the result of creating a\n new\n top-level browsing context."
+ "html": "Let browsing context be the result of creating a\n new\n top-level browsing context."
},
{
- "html": "Let request be a new Request whose method is\n method, url is url, header list is header list, and body is\n body."
+ "html": "Let request be a new Request whose method is\n method, url is url, header list is header list, and body is\n body."
},
{
- "html": "Navigate browsing context to |request =|"
+ "html": "Navigate browsing context to |request =|"
}
]
}
diff --git a/ed/algorithms/web-share.json b/ed/algorithms/web-share.json
index 85495b96be83..d7bb3cf5771c 100644
--- a/ed/algorithms/web-share.json
+++ b/ed/algorithms/web-share.json
@@ -5,70 +5,70 @@
},
"algorithms": [
{
- "html": "As with any user of DOMException
, implementors need to\n carefully consider what information is revealed in the error\n message when share
()
is rejected. Even distinguishing\n between the case where no share targets are available and user\n cancellation could reveal information about which share targets are\n installed on the user's device.",
+ "html": "As with any user of DOMException
, implementors need to\n carefully consider what information is revealed in the error\n message when share
()
is rejected. Even distinguishing\n between the case where no share targets are available and user\n cancellation could reveal information about which share targets are\n installed on the user's device.",
"rationale": ".algorithm",
"steps": [
{
- "html": "Let global be this's relevant global object."
+ "html": "Let global be this's relevant global object."
},
{
- "html": "Let document be global's associated Document
."
+ "html": "Let document be global's associated Document
."
},
{
- "html": "If document is not fully active, return a promise rejected with an \"InvalidStateError
\"\n DOMException
."
+ "html": "If document is not fully active, return a promise rejected with an \"InvalidStateError
\"\n DOMException
."
},
{
- "html": "If document is not allowed to use \"web-share\"
,\n return a promise rejected with a \"NotAllowedError
\"\n DOMException
."
+ "html": "If document is not allowed to use \"web-share\"
,\n return a promise rejected with a \"NotAllowedError
\"\n DOMException
."
},
{
- "html": "If this.[[sharePromise]]
is not null
,\n return a promise rejected with an \"InvalidStateError
\"\n DOMException
."
+ "html": "If this.[[sharePromise]]
is not null
,\n return a promise rejected with an \"InvalidStateError
\"\n DOMException
."
},
{
- "html": "If global does not have transient activation, return a promise rejected with a \"NotAllowedError
\" DOMException
."
+ "html": "If global does not have transient activation, return a promise rejected with a \"NotAllowedError
\" DOMException
."
},
{
- "html": "Consume user activation of global."
+ "html": "Consume user activation of global."
},
{
- "html": "Let base be this's relevant settings object's\n API base URL."
+ "html": "Let base be this's relevant settings object's\n API base URL."
},
{
- "html": "If validate share data with data and base returns\n false, then return a promise rejected with a TypeError
."
+ "html": "If validate share data with data and base returns\n false, then return a promise rejected with a TypeError
."
},
{
"html": "If data's url
member is present:",
"rationale": "let",
"steps": [
{
- "html": "Let url be the result of running the URL\n parser on data's url
with base."
+ "html": "Let url be the result of running the URL\n parser on data's url
with base."
},
{
- "html": "Assert: url is URL
."
+ "html": "Assert: url is URL
."
},
{
- "html": "Set data to a copy of data, with its url
\n member set to the result of running the URL serializer\n on url."
+ "html": "Set data to a copy of data, with its url
\n member set to the result of running the URL serializer\n on url."
}
]
},
{
- "html": "If a file type is being blocked due to security considerations,\n return a promise rejected with a \"NotAllowedError
\"\n DOMException
."
+ "html": "If a file type is being blocked due to security considerations,\n return a promise rejected with a \"NotAllowedError
\"\n DOMException
."
},
{
- "html": "Set this.[[sharePromise]]
to be a new\n promise."
+ "html": "Set this.[[sharePromise]]
to be a new\n promise."
},
{
- "html": "Return this.[[sharePromise]]
and in\n parallel:",
+ "html": "Return this.[[sharePromise]]
and in\n parallel:",
"rationale": "if",
"steps": [
{
- "html": "If there are no share targets available, queue a global task on the user interaction task source using\n global to:",
+ "html": "If there are no share targets available, queue a global task on the user interaction task source using\n global to:",
"rationale": "reject",
"steps": [
{
- "html": "Reject this.[[sharePromise]]
with\n an \"AbortError
\" DOMException
."
+ "html": "Reject this.[[sharePromise]]
with\n an \"AbortError
\" DOMException
."
},
{
- "html": "Set this.[[sharePromise]]
to null
."
+ "html": "Set this.[[sharePromise]]
to null
."
},
{
"html": "Terminate this algorithm."
@@ -82,14 +82,14 @@
"html": "Wait for the user's choice."
},
{
- "html": "If the user chose to abort the share operation, queue a global task on the user interaction task source using\n global to:",
+ "html": "If the user chose to abort the share operation, queue a global task on the user interaction task source using\n global to:",
"rationale": "reject",
"steps": [
{
- "html": "Reject this.[[sharePromise]]
with\n an \"AbortError
\" DOMException
,"
+ "html": "Reject this.[[sharePromise]]
with\n an \"AbortError
\" DOMException
,"
},
{
- "html": "Set this.[[sharePromise]]
to null
."
+ "html": "Set this.[[sharePromise]]
to null
."
},
{
"html": "Terminate this algorithm."
@@ -100,14 +100,14 @@
"html": "Activate the chosen share target, convert data\n to a format suitable for ingestion into the target, and\n transmit the converted data to the target."
},
{
- "html": "If an error occurs starting the target or transmitting the\n data, queue a global task on the user interaction task source using global to:",
+ "html": "If an error occurs starting the target or transmitting the\n data, queue a global task on the user interaction task source using global to:",
"rationale": "reject",
"steps": [
{
- "html": "Reject this.[[sharePromise]]
with\n an \"DataError
\" DOMException
."
+ "html": "Reject this.[[sharePromise]]
with\n an \"DataError
\" DOMException
."
},
{
- "html": "Set this.[[sharePromise]]
to null
."
+ "html": "Set this.[[sharePromise]]
to null
."
},
{
"html": "Terminate this algorithm."
@@ -115,14 +115,14 @@
]
},
{
- "html": "Once the data has either been successfully transmitted to\n the share target, or successfully transmitted to the OS (if\n the transmission to the share target cannot be confirmed),\n queue a global task on the user interaction task source\n using global to:",
+ "html": "Once the data has either been successfully transmitted to\n the share target, or successfully transmitted to the OS (if\n the transmission to the share target cannot be confirmed),\n queue a global task on the user interaction task source\n using global to:",
"rationale": "resolve",
"steps": [
{
- "html": "Resolve this.[[sharePromise]]
\n with undefined
."
+ "html": "Resolve this.[[sharePromise]]
\n with undefined
."
},
{
- "html": "Set this.[[sharePromise]]
to null
."
+ "html": "Set this.[[sharePromise]]
to null
."
}
]
}
@@ -137,16 +137,16 @@
"rationale": ".algorithm",
"steps": [
{
- "html": "Let document be the this's relevant global object's associated Document
."
+ "html": "Let document be the this's relevant global object's associated Document
."
},
{
- "html": "If document is not fully active, return false."
+ "html": "If document is not fully active, return false."
},
{
- "html": "If document is not allowed to use \"web-share\"
,\n return false."
+ "html": "If document is not allowed to use \"web-share\"
,\n return false."
},
{
- "html": "Return the result of validate share data with data and\n this's relevant settings object's API base URL."
+ "html": "Return the result of validate share data with data and\n this's relevant settings object's API base URL."
}
]
},
@@ -182,16 +182,16 @@
"rationale": "let",
"steps": [
{
- "html": "Let url be the result of running the URL parser\n on data's url
member, with base, and no\n encoding override."
+ "html": "Let url be the result of running the URL parser\n on data's url
member, with base, and no\n encoding override."
},
{
"html": "If url is failure, return false."
},
{
- "html": "If the url's scheme is a local scheme, or\n file
, or javascript
, or ws
, or wss
, return false."
+ "html": "If the url's scheme is a local scheme, or\n file
, or javascript
, or ws
, or wss
, return false."
},
{
- "html": "If url's scheme is not a sharable scheme,\n return false."
+ "html": "If url's scheme is not a sharable scheme,\n return false."
}
]
},
diff --git a/ed/algorithms/webdriver-bidi.json b/ed/algorithms/webdriver-bidi.json
index 04cc33c29576..7b7755a8417d 100644
--- a/ed/algorithms/webdriver-bidi.json
+++ b/ed/algorithms/webdriver-bidi.json
@@ -1081,7 +1081,7 @@
"html": "If current state is equal to state, return success with data null.
" }, { - "html": "Switch on the value of state:
\nfullscreen
\" \n normal
\" \n maximize
\" \n minimize
\" \n In the following list of conditions and associated steps, run the first set of steps for which the associated condition is true:
\nfullscreen
\" \n normal
\" \n maximize
\" \n minimize
\" \n Let documents be an empty list.
" @@ -8139,6 +8139,143 @@ } ] }, + { + "name": "extract a zip archive", + "href": "https://w3c.github.io/webdriver-bidi/#extract-a-zip-archive", + "html": "To extract a zip archive given bytes:", + "rationale": ".algorithm", + "steps": [ + { + "html": "Perform implementation defined steps to decode bytes using the zip compression algorithm. TODO: Find a better reference for zip decoding.
" + }, + { + "html": "If the previous step failed (e.g. because bytes did not represent valid zip-compressed data) then return error with error code invalid web extension. Otherwise let entry be a directory entry containing the extracted filesystem entries.
" + }, + { + "html": "Return entry.
" + } + ] + }, + { + "name": "expand a web extension data spec", + "href": "https://w3c.github.io/webdriver-bidi/#expand-a-web-extension-data-spec", + "html": "To expand a web extension data spec given extension data spec:", + "rationale": ".algorithm", + "steps": [ + { + "html": "Let type be extension data spec[\"type
\"].
If installing a web extension using type isn’t supported return error with error code unsupported operation.
" + }, + { + "html": "In the following list of conditions and associated steps, run the first set of steps for which the associated condition is true:
\npath
\" \n archivePath
\" \n base64
\" \n Let path be extension data spec[\"path
\"].
Let locator be a directory locator with path path and root corresponding to the root of the file system.
" + }, + { + "html": "Let entry be locate an entry given locator.
" + } + ], + "additional": [ + { + "html": "", + "rationale": "let", + "steps": [ + { + "html": "Let archive path be extension data spec[\"path
\"].
Let locator be a file locator with path archive path and root corresponding to the root of the file system.
" + }, + { + "html": "Let archive entry be locate an entry given locator.
" + }, + { + "html": "If archive entry is null, return null.
" + }, + { + "html": "Let bytes be archive entry’s binary data.
" + }, + { + "html": "Let entry be the result of trying to extract a zip archive given bytes.
" + } + ] + }, + { + "html": "", + "rationale": "let", + "steps": [ + { + "html": "Let bytes be forgiving-base64 decode extension data spec[\"path
\"].
If bytes is failure, return null.
" + }, + { + "html": "Let entry be the result of trying to extract a zip archive given bytes.
" + } + ] + } + ] + }, + { + "html": "Return entry.
" + } + ] + }, + { + "name": "remote end steps for webExtension.install", + "html": "The remote end steps with command parameters are:", + "rationale": ".algorithm", + "steps": [ + { + "html": "If installing web extensions isn’t supported return error with error code unsupported operation.
" + }, + { + "html": "Let extension data spec be command parameters[\"extensionData
\"].
Let extension directory entry be the result of trying to expand a web extension data spec with extension data spec.
" + }, + { + "html": "If extension directory entry| is null, return error with error code invalid web extension.
" + }, + { + "html": "Perform implementation defined steps to install a web extension from extension directory entry. If this fails, return error with error code invalid web extension. Otherwise let extension id be the unique identifier of the newly installed web extension.
" + }, + { + "html": "Let result be a map matching the webExtension.InstallResult
production with the extension
field set to extension id.
Return success with data result.
" + } + ] + }, + { + "name": "remote end steps for webExtension.uninstall", + "html": "The remote end steps with command parameters are:", + "rationale": ".algorithm", + "steps": [ + { + "html": "Let extension be command parameters[\"extension
\"].
If the remote end has no web extension with id equal to extension, return error with error code no such web extension.
" + }, + { + "html": "Perform any implementation-defined steps to remove the web extension from the remote end. If this fails, return error with error code unknown error.
" + }, + { + "html": "Return success with data null.
" + } + ] + }, { "name": "error reporting steps", "href": "https://w3c.github.io/webdriver-bidi/#error-reporting-steps", diff --git a/ed/algorithms/webp.json b/ed/algorithms/webp.json deleted file mode 100644 index 05a1afebe01e..000000000000 --- a/ed/algorithms/webp.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "spec": { - "title": "WebP Image Format", - "url": "https://www.ietf.org/archive/id/draft-zern-webp-15.html" - }, - "algorithms": [ - { - "html": "The interpretation of S depends on its value:¶", - "rationale": "if", - "steps": [ - { - "html": "If S < 256¶", - "rationale": "use", - "steps": [ - { - "html": "Use S as the green component.¶" - }, - { - "html": "Read red from the bitstream using prefix code #2.¶" - }, - { - "html": "Read blue from the bitstream using prefix code #3.¶" - }, - { - "html": "Read alpha from the bitstream using prefix code #4.¶" - } - ] - }, - { - "html": "If S >= 256 & S < 256 + 24¶", - "rationale": "use", - "steps": [ - { - "html": "Use S - 256 as a length prefix code.¶" - }, - { - "html": "Read extra bits for the length from the bitstream.¶" - }, - { - "html": "Determine backward-reference length L from length prefix\n code and the extra bits read.¶" - }, - { - "html": "Read the distance prefix code from the bitstream using prefix\n code #5.¶" - }, - { - "html": "Read extra bits for the distance from the bitstream.¶" - }, - { - "html": "Determine backward-reference distance D from the distance\n prefix code and the extra bits read.¶" - }, - { - "html": "Copy L pixels (in scan-line order) from the sequence of pixels\nstarting at the current position minus D pixels.¶" - } - ] - }, - { - "html": "If S >= 256 + 24¶", - "rationale": "use", - "steps": [ - { - "html": "Use S - (256 + 24) as the index into the color cache.¶" - }, - { - "html": "Get ARGB color from the color cache at that index.¶" - } - ] - } - ] - } - ] -} \ No newline at end of file diff --git a/ed/algorithms/webrtc-ice.json b/ed/algorithms/webrtc-ice.json index 17801b5b05ae..61e4a6a06eff 100644 --- a/ed/algorithms/webrtc-ice.json +++ b/ed/algorithms/webrtc-ice.json @@ -11,10 +11,10 @@ "rationale": "create", "steps": [ { - "html": "Create anRTCIceTransport
transport."
+ "html": "Create an RTCIceTransport
transport."
},
{
- "html": "Initialize transport.[[IceTransportState]]
, [[IceGathererState]]
,\n [[SelectedCandidatePair]]
and [[IceRole]]
internal slots as specified in\n [WEBRTC] Section 5.6."
+ "html": "Initialize transport.[[IceTransportState]]
, [[IceGathererState]]
,\n [[SelectedCandidatePair]]
and [[IceRole]]
internal slots as specified in\n [WEBRTC] Section 5.6."
},
{
"html": "Initialize transport's local ICE parameters."
@@ -47,20 +47,20 @@
"html": "Let server be the current list element.
" }, { - "html": "If server.
is a string,\n let urls
server.urls
be a list\n consisting of just that string.
If server.
is a string,\n let urls
server.urls
be a list\n consisting of just that string.
server.urls
run the following steps:",
"rationale": "parse",
"steps": [
{
- "html": "\n Parse the url using the generic URI syntax\n defined in [RFC3986] and obtain the scheme\n name. If the parsing based on the syntax\n defined in [RFC3986] fails, throw\n a SyntaxError
. If the scheme name is\n not implemented by the browser throw\n a NotSupportedError
. If scheme name is\n turn
or turns
, and parsing the url\n using the syntax defined in [RFC7065] fails, throw a SyntaxError
. If scheme\n name is stun
or\n stuns
, and parsing the\n url using the syntax defined in\n [RFC7064] fails, throw a\n SyntaxError
.\n
\n Parse the url using the generic URI syntax\n defined in [RFC3986] and obtain the scheme\n name. If the parsing based on the syntax\n defined in [RFC3986] fails, throw\n a SyntaxError
. If the scheme name is\n not implemented by the browser throw\n a NotSupportedError
. If scheme name is\n turn
or turns
, and parsing the url\n using the syntax defined in [RFC7065] fails, throw a SyntaxError
. If scheme\n name is stun
or\n stuns
, and parsing the\n url using the syntax defined in\n [RFC7064] fails, throw a\n SyntaxError
.\n
\n If scheme name is turn
or turns
, and either of\n server.username
or\n server.credential
are\n omitted, then throw an\n InvalidAccessError
.\n
\n If scheme name is turn
or turns
, and either of\n server.username
or\n server.credential
are\n omitted, then throw an\n InvalidAccessError
.\n
\n If scheme name is turn
or turns
, and\n server.credential
is not\n a DOMString, then\n throw an InvalidAccessError
.\n
\n If scheme name is turn
or turns
, and\n server.credential
is not\n a DOMString, then\n throw an InvalidAccessError
.\n
start
()
provides role\n information, as well as the remote username fragment and password, once\n start
()
is called an RTCIceTransport
\n object can respond to incoming connectivity checks based on its\n configured role. Since start
()
enables candidate pairs\n to be formed, it also enables initiating connectivity checks.\n When start
()
is called, the following\n steps MUST be run:",
+ "html": "As noted in [RFC5245] Section 7.1.2.3, an incoming connectivity check\n utilizes the local/remote username fragment and the local password, whereas\n an outgoing connectivity check utilizes the local/remote username fragment\n and the remote password. Since start
()
provides role\n information, as well as the remote username fragment and password, once\n start
()
is called an RTCIceTransport
\n object can respond to incoming connectivity checks based on its\n configured role. Since start
()
enables candidate pairs\n to be formed, it also enables initiating connectivity checks.\n When start
()
is called, the following\n steps MUST be run:",
"rationale": "if",
"steps": [
{
- "html": "If state
is \"closed
\", throw an InvalidStateError
."
+ "html": "If state
is \"closed
\", throw an InvalidStateError
."
},
{
- "html": "If remoteParameters.usernameFragment
\n or remoteParameters.password
is unset,\n throw an TypeError
."
+ "html": "If remoteParameters.usernameFragment
\n or remoteParameters.password
is unset,\n throw an TypeError
."
},
{
- "html": "If remoteParameters.usernameFragment
\n or remoteParameters.password
does not\n conform to the syntax described in [RFC8839] Section 5.4,\n throw a SyntaxError
."
+ "html": "If remoteParameters.usernameFragment
\n or remoteParameters.password
does not\n conform to the syntax described in [RFC8839] Section 5.4,\n throw a SyntaxError
."
},
{
- "html": "If start
()
is called again and\n role
is changed, throw an\n InvalidStateError
."
+ "html": "If start
()
is called again and\n role
is changed, throw an\n InvalidStateError
."
},
{
"html": "If start
()
is called again with the same\n value of remoteParameters, this has\n no effect."
},
{
- "html": "If start
()
is called for the first time, if\n there are remote candidates, set state
\n to \"checking
\" and start connectivity checks.\n If there are no remote candidates, state
\n remains \"new
\"."
+ "html": "If start
()
is called for the first time, if\n there are remote candidates, set state
\n to \"checking
\" and start connectivity checks.\n If there are no remote candidates, state
\n remains \"new
\"."
},
{
- "html": "If start
()
is called again but the value\n of remoteParameters has changed,\n local candidates are kept, remote candidates are flushed,\n candidate pairs are flushed and state
\n transitions to \"new
\"."
+ "html": "If start
()
is called again but the value\n of remoteParameters has changed,\n local candidates are kept, remote candidates are flushed,\n candidate pairs are flushed and state
\n transitions to \"new
\"."
},
{
- "html": "If start
()
is called again but the value of\n remoteParameters
is unchanged,\n local candidates are flushed, candidate pairs are flushed,\n new candidate pairs are formed with existing remote candidates,\n and state
transitions to \"checking
\"."
+ "html": "If start
()
is called again but the value of\n remoteParameters
is unchanged,\n local candidates are flushed, candidate pairs are flushed,\n new candidate pairs are formed with existing remote candidates,\n and state
transitions to \"checking
\"."
},
{
- "html": "If start
()
is called again with new values of\n remoteParameters, local\n candidates are flushed, remote candidates are flushed,\n candidate pairs are flushed and state
transitions\n to \"new
\"."
+ "html": "If start
()
is called again with new values of\n remoteParameters, local\n candidates are flushed, remote candidates are flushed,\n candidate pairs are flushed and state
transitions\n to \"new
\"."
}
]
},
{
"name": "RTCIceTransport/stop()",
"href": "https://w3c.github.io/webrtc-ice/#dom-rtcicetransport-stop",
- "html": "Irreversibly stops the\n RTCIceTransport
. When\n stop
is called, the following\n steps MUST be run:",
+ "html": "Irreversibly stops the\n RTCIceTransport
. When\n stop
is called, the following\n steps MUST be run:",
"rationale": "let",
"steps": [
{
- "html": "Let iceTransport be the\n RTCIceTransport
object on\n which the stop
method is invoked."
+ "html": "Let iceTransport be the\n RTCIceTransport
object on\n which the stop
method is invoked."
},
{
- "html": "If iceTransport.state
is\n \"closed
\", abort these steps."
+ "html": "If iceTransport.state
is\n \"closed
\", abort these steps."
},
{
- "html": "Set iceTransport.state
to\n \"closed
\"."
+ "html": "Set iceTransport.state
to\n \"closed
\"."
},
{
"html": "Fire a simple event statechange
\n at iceTransport."
diff --git a/ed/algorithms/webrtc-svc.json b/ed/algorithms/webrtc-svc.json
index 9dfd9ec4ab14..0554d51061d5 100644
--- a/ed/algorithms/webrtc-svc.json
+++ b/ed/algorithms/webrtc-svc.json
@@ -5,35 +5,35 @@
},
"algorithms": [
{
- "html": "[WEBRTC] Section 5.1 describes validation of\n sendEncodings
within\n addTransceiver
()
. To validate\n scalabilityMode
, add\n the following steps after step 3 of\n addTransceiver sendEncodings validation steps:",
+ "html": "[WEBRTC] Section 5.1 describes validation of\n sendEncodings
within\n addTransceiver
()
. To validate\n scalabilityMode
, add\n the following steps after step 3 of\n addTransceiver sendEncodings validation steps:",
"rationale": "if",
"steps": [
{
- "html": "If sendEncodings contains any encoding with a RTCRtpEncodingParameters
.codec
\n value codec exists and where the same encoding's scalabilityMode
\n value is not supported by codec, throw an OperationError
."
+ "html": "If sendEncodings contains any encoding with a RTCRtpEncodingParameters
.codec
\n value codec exists and where the same encoding's scalabilityMode
\n value is not supported by codec, throw an OperationError
."
},
{
- "html": "Else if sendEncodings contains any encoding whose\n scalabilityMode
value is\n not supported by any codec in the list of implemented send codecs\n for kind, throw an OperationError
."
+ "html": "Else if sendEncodings contains any encoding whose\n scalabilityMode
value is\n not supported by any codec in the list of implemented send codecs\n for kind, throw an OperationError
."
},
{
- "html": "If RTCRtpEncodingParameters
stored in\n sendEncodings contains more than 1\n encoding with an active
\n member with a value of true
and\n sendEncodings contains any encoding whose\n scalabilityMode
value\n represents an \"S mode\" and whose\n active
member has a\n value of true
, throw an\n OperationError
."
+ "html": "If RTCRtpEncodingParameters
stored in\n sendEncodings contains more than 1\n encoding with an active
\n member with a value of true
and\n sendEncodings contains any encoding whose\n scalabilityMode
value\n represents an \"S mode\" and whose\n active
member has a\n value of true
, throw an\n OperationError
."
}
]
},
{
- "html": "[WEBRTC] Section 5.2 describes validation of parameters\n within setParameters
()
. Insert the following\n conditions under which the operation causes a promise rejected\n with an InvalidModificationError
(step 4) of\n setParameters validation steps:",
+ "html": "[WEBRTC] Section 5.2 describes validation of parameters\n within setParameters
()
. Insert the following\n conditions under which the operation causes a promise rejected\n with an InvalidModificationError
(step 4) of\n setParameters validation steps:",
"rationale": "if",
"steps": [
{
- "html": "If encodings contains any encoding with an existng\n RTCRtpEncodingParameters
.codec value codec, where the same encoding's\n scalabilityMode
value is not supported by codec."
+ "html": "If encodings contains any encoding with an existng\n RTCRtpEncodingParameters
.codec value codec, where the same encoding's\n scalabilityMode
value is not supported by codec."
},
{
- "html": "Else if sender.[[SendCodecs]]
is empty\n and encodings contains any encoding whose\n scalabilityMode
value is\n not supported by any codec in the\n list of implemented send codecs for kind."
+ "html": "Else if sender.[[SendCodecs]]
is empty\n and encodings contains any encoding whose\n scalabilityMode
value is\n not supported by any codec in the\n list of implemented send codecs for kind."
},
{
- "html": "Else if sender.[[SendCodecs]]
is not empty\n and encodings contains an encoding whose\n scalabilityMode
value is\n not supported by the codec used for the encoding's RTP stream."
+ "html": "Else if sender.[[SendCodecs]]
is not empty\n and encodings contains an encoding whose\n scalabilityMode
value is\n not supported by the codec used for the encoding's RTP stream."
},
{
- "html": "If RTCRtpEncodingParameters
stored in\n encodings contains more than one\n encoding with an active
\n member with a value of true
and\n encodings contains any encoding whose\n scalabilityMode
value\n represents an \"S mode\" and whose\n active
member has a\n value of true
."
+ "html": "If RTCRtpEncodingParameters
stored in\n encodings contains more than one\n encoding with an active
\n member with a value of true
and\n encodings contains any encoding whose\n scalabilityMode
value\n represents an \"S mode\" and whose\n active
member has a\n value of true
."
}
]
}
diff --git a/ed/algorithms/window-controls-overlay.json b/ed/algorithms/window-controls-overlay.json
index 5dd71543149f..dcaef923a557 100644
--- a/ed/algorithms/window-controls-overlay.json
+++ b/ed/algorithms/window-controls-overlay.json
@@ -11,7 +11,7 @@
"rationale": "if",
"steps": [
{
- "html": "If win's overlay has had its width or height changed (e.g.\n as a result of the user resizing the browser window, or changing the\n page zoom factor, or other UI appearing or disappearing on the\n overlay), since the last time these steps were run, fire an event named ongeometrychange
at the window
object and\n update the overlay area information."
+ "html": "If win's overlay has had its width or height changed (e.g.\n as a result of the user resizing the browser window, or changing the\n page zoom factor, or other UI appearing or disappearing on the\n overlay), since the last time these steps were run, fire an event named ongeometrychange
at the window
object and\n update the overlay area information."
}
]
},
@@ -22,17 +22,17 @@
"rationale": ".algorithm",
"steps": [
{
- "html": "Let ovls be a list of regions defined by the overlays\n that house the window controls on the the window frame."
+ "html": "Let ovls be a list of regions defined by the overlays\n that house the window controls on the the window frame."
},
{
- "html": "Let tba be an empty DOMRect
object representing the\n available title bar area.",
+ "html": "Let tba be an empty DOMRect
object representing the\n available title bar area.",
"rationale": "if",
"steps": [
{
- "html": "If there is only one overlay region in ovls, set tba as a\n DOMRect
that encompasses the area from the edge of the frame\n to the innermost edge of the ovls."
+ "html": "If there is only one overlay region in ovls, set tba as a\n DOMRect
that encompasses the area from the edge of the frame\n to the innermost edge of the ovls."
},
{
- "html": "If there is more than one overlay region in ovls, set tba\n to a DOMRect
that encompasses the area between the\n intersection of the regions in ovls and the document's\n viewport."
+ "html": "If there is more than one overlay region in ovls, set tba\n to a DOMRect
that encompasses the area between the\n intersection of the regions in ovls and the document's\n viewport."
},
{
"html": "tba's height should be the same as the height of the\n regions in ovls."
@@ -40,10 +40,10 @@
]
},
{
- "html": "Make window
.[[TitleBarArea]] equal to tba."
+ "html": "Make window
.[[TitleBarArea]] equal to tba."
},
{
- "html": "Update the title bar area env variables with information from\n window
.[[TitleBarArea]]."
+ "html": "Update the title bar area env variables with information from\n window
.[[TitleBarArea]]."
}
]
}
diff --git a/ed/dfns/gpc-spec.json b/ed/dfns/gpc.json
similarity index 100%
rename from ed/dfns/gpc-spec.json
rename to ed/dfns/gpc.json
diff --git a/ed/dfns/mediacapture-surface-control.json b/ed/dfns/mediacapture-surface-control.json
new file mode 100644
index 000000000000..5bb91f8924a7
--- /dev/null
+++ b/ed/dfns/mediacapture-surface-control.json
@@ -0,0 +1,390 @@
+{
+ "spec": {
+ "title": "Captured Surface Control",
+ "url": "https://w3c.github.io/mediacapture-surface-control/"
+ },
+ "dfns": [
+ {
+ "id": "dfn-captured-surface-control",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#dfn-captured-surface-control",
+ "linkingText": [
+ "\"captured-surface-control\""
+ ],
+ "localLinkingText": [],
+ "type": "permission",
+ "for": [],
+ "access": "public",
+ "informative": false,
+ "heading": {
+ "id": "feature-policy-integration",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#feature-policy-integration",
+ "title": "Permissions Policy Integration",
+ "number": "2"
+ },
+ "definedIn": "prose"
+ },
+ {
+ "id": "dfn-zoom-level",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#dfn-zoom-level",
+ "linkingText": [
+ "zoom level"
+ ],
+ "localLinkingText": [],
+ "type": "dfn",
+ "for": [],
+ "access": "private",
+ "informative": false,
+ "heading": {
+ "id": "zoom-definition",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#zoom-definition",
+ "title": "Definition of Zoom",
+ "number": "3.1"
+ },
+ "definedIn": "prose"
+ },
+ {
+ "id": "dfn-default-zoom-level",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#dfn-default-zoom-level",
+ "linkingText": [
+ "default zoom level"
+ ],
+ "localLinkingText": [],
+ "type": "dfn",
+ "for": [],
+ "access": "private",
+ "informative": false,
+ "heading": {
+ "id": "zoom-definition",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#zoom-definition",
+ "title": "Definition of Zoom",
+ "number": "3.1"
+ },
+ "definedIn": "prose"
+ },
+ {
+ "id": "dfn-supported-zoom-levels",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#dfn-supported-zoom-levels",
+ "linkingText": [
+ "supported zoom levels"
+ ],
+ "localLinkingText": [],
+ "type": "dfn",
+ "for": [],
+ "access": "private",
+ "informative": false,
+ "heading": {
+ "id": "zoom-definition",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#zoom-definition",
+ "title": "Definition of Zoom",
+ "number": "3.1"
+ },
+ "definedIn": "prose"
+ },
+ {
+ "id": "dfn-permitted-event-types-for-setzoomlevel",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#dfn-permitted-event-types-for-setzoomlevel",
+ "linkingText": [
+ "permitted event types for setZoomLevel"
+ ],
+ "localLinkingText": [],
+ "type": "dfn",
+ "for": [],
+ "access": "private",
+ "informative": false,
+ "heading": {
+ "id": "permitted-event-types-for-setzoomlevel",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#permitted-event-types-for-setzoomlevel",
+ "title": "Permitted Event Types for setZoomLevel()",
+ "number": "3.2"
+ },
+ "definedIn": "prose"
+ },
+ {
+ "id": "dom-capturecontroller-getsupportedzoomlevels",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#dom-capturecontroller-getsupportedzoomlevels",
+ "linkingText": [
+ "getSupportedZoomLevels()"
+ ],
+ "localLinkingText": [
+ "CaptureController.getSupportedZoomLevels",
+ "CaptureController.getSupportedZoomLevels()",
+ "getSupportedZoomLevels"
+ ],
+ "type": "method",
+ "for": [
+ "CaptureController"
+ ],
+ "access": "public",
+ "informative": false,
+ "heading": {
+ "id": "zoom-control-apis",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#zoom-control-apis",
+ "title": "Zoom-control APIs",
+ "number": "3.3"
+ },
+ "definedIn": "dt"
+ },
+ {
+ "id": "dom-capturecontroller-getzoomlevel",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#dom-capturecontroller-getzoomlevel",
+ "linkingText": [
+ "getZoomLevel()"
+ ],
+ "localLinkingText": [
+ "CaptureController.getZoomLevel",
+ "CaptureController.getZoomLevel()",
+ "getZoomLevel"
+ ],
+ "type": "method",
+ "for": [
+ "CaptureController"
+ ],
+ "access": "public",
+ "informative": false,
+ "heading": {
+ "id": "zoom-control-apis",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#zoom-control-apis",
+ "title": "Zoom-control APIs",
+ "number": "3.3"
+ },
+ "definedIn": "dt"
+ },
+ {
+ "id": "dom-capturecontroller-setzoomlevel",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#dom-capturecontroller-setzoomlevel",
+ "linkingText": [
+ "setZoomLevel()",
+ "setZoomLevel(zoomLevel)"
+ ],
+ "localLinkingText": [
+ "CaptureController.setZoomLevel",
+ "CaptureController.setZoomLevel()",
+ "setZoomLevel"
+ ],
+ "type": "method",
+ "for": [
+ "CaptureController"
+ ],
+ "access": "public",
+ "informative": false,
+ "heading": {
+ "id": "zoom-control-apis",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#zoom-control-apis",
+ "title": "Zoom-control APIs",
+ "number": "3.3"
+ },
+ "definedIn": "dt"
+ },
+ {
+ "id": "dom-capturecontroller-oncapturedzoomlevelchange",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#dom-capturecontroller-oncapturedzoomlevelchange",
+ "linkingText": [
+ "oncapturedzoomlevelchange"
+ ],
+ "localLinkingText": [
+ "CaptureController.oncapturedzoomlevelchange"
+ ],
+ "type": "attribute",
+ "for": [
+ "CaptureController"
+ ],
+ "access": "public",
+ "informative": false,
+ "heading": {
+ "id": "zoom-control-apis",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#zoom-control-apis",
+ "title": "Zoom-control APIs",
+ "number": "3.3"
+ },
+ "definedIn": "dt"
+ },
+ {
+ "id": "dom-capturecontroller-constructor",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#dom-capturecontroller-constructor",
+ "linkingText": [
+ "constructor()"
+ ],
+ "localLinkingText": [
+ "CaptureController.constructor",
+ "CaptureController.constructor()",
+ "constructor"
+ ],
+ "type": "constructor",
+ "for": [
+ "CaptureController"
+ ],
+ "access": "public",
+ "informative": false,
+ "heading": {
+ "id": "scrolling-apis",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#scrolling-apis",
+ "title": "Scrolling APIs",
+ "number": "4.1"
+ },
+ "definedIn": "dt"
+ },
+ {
+ "id": "dfn-forwardwheelelement",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#dfn-forwardwheelelement",
+ "linkingText": [
+ "[[forwardWheelElement]]"
+ ],
+ "localLinkingText": [],
+ "type": "attribute",
+ "for": [
+ "CaptureController"
+ ],
+ "access": "private",
+ "informative": false,
+ "heading": {
+ "id": "scrolling-apis",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#scrolling-apis",
+ "title": "Scrolling APIs",
+ "number": "4.1"
+ },
+ "definedIn": "table"
+ },
+ {
+ "id": "dfn-forwardwheeleventlistener",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#dfn-forwardwheeleventlistener",
+ "linkingText": [
+ "[[forwardWheelEventListener]]"
+ ],
+ "localLinkingText": [],
+ "type": "attribute",
+ "for": [
+ "CaptureController"
+ ],
+ "access": "private",
+ "informative": false,
+ "heading": {
+ "id": "scrolling-apis",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#scrolling-apis",
+ "title": "Scrolling APIs",
+ "number": "4.1"
+ },
+ "definedIn": "table"
+ },
+ {
+ "id": "dom-capturecontroller-forwardwheel",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#dom-capturecontroller-forwardwheel",
+ "linkingText": [
+ "forwardWheel()",
+ "forwardWheel(element)"
+ ],
+ "localLinkingText": [
+ "CaptureController.forwardWheel",
+ "CaptureController.forwardWheel()",
+ "forwardWheel"
+ ],
+ "type": "method",
+ "for": [
+ "CaptureController"
+ ],
+ "access": "public",
+ "informative": false,
+ "heading": {
+ "id": "scrolling-apis",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#scrolling-apis",
+ "title": "Scrolling APIs",
+ "number": "4.1"
+ },
+ "definedIn": "dt"
+ },
+ {
+ "id": "dfn-actively-capturing",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#dfn-actively-capturing",
+ "linkingText": [
+ "actively capturing"
+ ],
+ "localLinkingText": [],
+ "type": "dfn",
+ "for": [],
+ "access": "private",
+ "informative": false,
+ "heading": {
+ "id": "subroutine-actively-capturing",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#subroutine-actively-capturing",
+ "title": "Subroutine: Actively capturing",
+ "number": "5.1"
+ },
+ "definedIn": "prose"
+ },
+ {
+ "id": "dfn-is-self-capturing",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#dfn-is-self-capturing",
+ "linkingText": [
+ "is self-capturing"
+ ],
+ "localLinkingText": [],
+ "type": "dfn",
+ "for": [],
+ "access": "private",
+ "informative": false,
+ "heading": {
+ "id": "subroutine-is-self-capturing",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#subroutine-is-self-capturing",
+ "title": "Subroutine: Is self-capturing",
+ "number": "5.2"
+ },
+ "definedIn": "prose"
+ },
+ {
+ "id": "dfn-supported-display-surface-type",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#dfn-supported-display-surface-type",
+ "linkingText": [
+ "supported display surface type"
+ ],
+ "localLinkingText": [],
+ "type": "dfn",
+ "for": [],
+ "access": "private",
+ "informative": false,
+ "heading": {
+ "id": "subroutine-supported-display-surface-type",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#subroutine-supported-display-surface-type",
+ "title": "Subroutine: Supported display surface type",
+ "number": "5.3"
+ },
+ "definedIn": "prose"
+ },
+ {
+ "id": "dfn-forward-wheel-event-algorithm",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#dfn-forward-wheel-event-algorithm",
+ "linkingText": [
+ "forward wheel event algorithm"
+ ],
+ "localLinkingText": [],
+ "type": "dfn",
+ "for": [],
+ "access": "private",
+ "informative": false,
+ "heading": {
+ "id": "subroutine-forward-wheel-event",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#subroutine-forward-wheel-event",
+ "title": "Subroutine: Forward wheel event",
+ "number": "5.4"
+ },
+ "definedIn": "prose"
+ },
+ {
+ "id": "dfn-scale-element-coordinates-algorithm",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#dfn-scale-element-coordinates-algorithm",
+ "linkingText": [
+ "scale element coordinates algorithm"
+ ],
+ "localLinkingText": [],
+ "type": "dfn",
+ "for": [],
+ "access": "private",
+ "informative": false,
+ "heading": {
+ "id": "subroutine-scale-element-coordinates",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#subroutine-scale-element-coordinates",
+ "title": "Subroutine: Scale element coordinates",
+ "number": "5.5"
+ },
+ "definedIn": "prose"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/ed/dfns/vibration.json b/ed/dfns/vibration.json
index 289d452a651a..110cf585a8a7 100644
--- a/ed/dfns/vibration.json
+++ b/ed/dfns/vibration.json
@@ -1,6 +1,6 @@
{
"spec": {
- "title": "Vibration API (Second Edition)",
+ "title": "Vibration API",
"url": "https://w3c.github.io/vibration/"
},
"dfns": [
diff --git a/ed/dfns/webdriver-bidi.json b/ed/dfns/webdriver-bidi.json
index bd6fc5c88397..d6b4c04c4e8c 100644
--- a/ed/dfns/webdriver-bidi.json
+++ b/ed/dfns/webdriver-bidi.json
@@ -356,6 +356,27 @@
},
"definedIn": "prose"
},
+ {
+ "id": "errors-invalid-web-extension",
+ "href": "https://w3c.github.io/webdriver-bidi/#errors-invalid-web-extension",
+ "linkingText": [
+ "invalid web extension"
+ ],
+ "localLinkingText": [],
+ "type": "dfn",
+ "for": [
+ "errors"
+ ],
+ "access": "public",
+ "informative": false,
+ "heading": {
+ "id": "errors",
+ "href": "https://w3c.github.io/webdriver-bidi/#errors",
+ "title": "Errors",
+ "number": "3.5"
+ },
+ "definedIn": "dt"
+ },
{
"id": "errors-no-such-client-window",
"href": "https://w3c.github.io/webdriver-bidi/#errors-no-such-client-window",
@@ -545,6 +566,27 @@
},
"definedIn": "dt"
},
+ {
+ "id": "errors-no-such-web-extension",
+ "href": "https://w3c.github.io/webdriver-bidi/#errors-no-such-web-extension",
+ "linkingText": [
+ "no such web extension"
+ ],
+ "localLinkingText": [],
+ "type": "dfn",
+ "for": [
+ "errors"
+ ],
+ "access": "public",
+ "informative": false,
+ "heading": {
+ "id": "errors",
+ "href": "https://w3c.github.io/webdriver-bidi/#errors",
+ "title": "Errors",
+ "number": "3.5"
+ },
+ "definedIn": "dt"
+ },
{
"id": "errors-unable-to-close-browser",
"href": "https://w3c.github.io/webdriver-bidi/#errors-unable-to-close-browser",
@@ -5700,6 +5742,107 @@
},
"definedIn": "prose"
},
+ {
+ "id": "modules-webextension",
+ "href": "https://w3c.github.io/webdriver-bidi/#modules-webextension",
+ "linkingText": [
+ "webExtension"
+ ],
+ "localLinkingText": [],
+ "type": "dfn",
+ "for": [
+ "modules"
+ ],
+ "access": "public",
+ "informative": false,
+ "heading": {
+ "id": "module-webExtension",
+ "href": "https://w3c.github.io/webdriver-bidi/#module-webExtension",
+ "title": "The webExtension Module",
+ "number": "7.9"
+ },
+ "definedIn": "prose"
+ },
+ {
+ "id": "commands-webextensioninstall",
+ "href": "https://w3c.github.io/webdriver-bidi/#commands-webextensioninstall",
+ "linkingText": [
+ "webExtension.install"
+ ],
+ "localLinkingText": [],
+ "type": "dfn",
+ "for": [
+ "commands"
+ ],
+ "access": "public",
+ "informative": false,
+ "heading": {
+ "id": "command-webExtension-install",
+ "href": "https://w3c.github.io/webdriver-bidi/#command-webExtension-install",
+ "title": "The webExtension.install Command",
+ "number": "7.9.3.1"
+ },
+ "definedIn": "prose"
+ },
+ {
+ "id": "extract-a-zip-archive",
+ "href": "https://w3c.github.io/webdriver-bidi/#extract-a-zip-archive",
+ "linkingText": [
+ "extract a zip archive"
+ ],
+ "localLinkingText": [],
+ "type": "dfn",
+ "for": [],
+ "access": "private",
+ "informative": false,
+ "heading": {
+ "id": "command-webExtension-install",
+ "href": "https://w3c.github.io/webdriver-bidi/#command-webExtension-install",
+ "title": "The webExtension.install Command",
+ "number": "7.9.3.1"
+ },
+ "definedIn": "prose"
+ },
+ {
+ "id": "expand-a-web-extension-data-spec",
+ "href": "https://w3c.github.io/webdriver-bidi/#expand-a-web-extension-data-spec",
+ "linkingText": [
+ "expand a web extension data spec"
+ ],
+ "localLinkingText": [],
+ "type": "dfn",
+ "for": [],
+ "access": "private",
+ "informative": false,
+ "heading": {
+ "id": "command-webExtension-install",
+ "href": "https://w3c.github.io/webdriver-bidi/#command-webExtension-install",
+ "title": "The webExtension.install Command",
+ "number": "7.9.3.1"
+ },
+ "definedIn": "prose"
+ },
+ {
+ "id": "commands-webextensionuninstall",
+ "href": "https://w3c.github.io/webdriver-bidi/#commands-webextensionuninstall",
+ "linkingText": [
+ "webExtension.uninstall"
+ ],
+ "localLinkingText": [],
+ "type": "dfn",
+ "for": [
+ "commands"
+ ],
+ "access": "public",
+ "informative": false,
+ "heading": {
+ "id": "command-webExtension-uninstall",
+ "href": "https://w3c.github.io/webdriver-bidi/#command-webExtension-uninstall",
+ "title": "The webExtension.uninstall Command",
+ "number": "7.9.3.2"
+ },
+ "definedIn": "prose"
+ },
{
"id": "error-reporting-steps",
"href": "https://w3c.github.io/webdriver-bidi/#error-reporting-steps",
diff --git a/ed/events/mediacapture-surface-control.json b/ed/events/mediacapture-surface-control.json
new file mode 100644
index 000000000000..ac0d1d69f53d
--- /dev/null
+++ b/ed/events/mediacapture-surface-control.json
@@ -0,0 +1,26 @@
+{
+ "spec": {
+ "title": "Captured Surface Control",
+ "url": "https://w3c.github.io/mediacapture-surface-control/"
+ },
+ "events": [
+ {
+ "src": {
+ "format": "fire an event phrasing",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#subroutine-forward-wheel-event"
+ },
+ "href": "https://w3c.github.io/mediacapture-surface-control/#subroutine-forward-wheel-event",
+ "type": "wheel",
+ "interface": "WheelEvent"
+ },
+ {
+ "type": "capturedzoomlevelchange",
+ "targets": [
+ "CaptureController"
+ ],
+ "src": {
+ "format": "IDL eventHandler"
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/ed/headings/gpc-spec.json b/ed/headings/gpc.json
similarity index 100%
rename from ed/headings/gpc-spec.json
rename to ed/headings/gpc.json
diff --git a/ed/headings/mediacapture-surface-control.json b/ed/headings/mediacapture-surface-control.json
new file mode 100644
index 000000000000..e011fe23ee66
--- /dev/null
+++ b/ed/headings/mediacapture-surface-control.json
@@ -0,0 +1,167 @@
+{
+ "spec": {
+ "title": "Captured Surface Control",
+ "url": "https://w3c.github.io/mediacapture-surface-control/"
+ },
+ "headings": [
+ {
+ "id": "title",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#title",
+ "level": 1,
+ "title": "Captured Surface Control"
+ },
+ {
+ "id": "toc",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#toc",
+ "level": 2,
+ "title": "Table of Contents"
+ },
+ {
+ "id": "background",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#background",
+ "level": 2,
+ "title": "Background",
+ "number": "1"
+ },
+ {
+ "id": "feature-policy-integration",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#feature-policy-integration",
+ "level": 2,
+ "title": "Permissions Policy Integration",
+ "number": "2"
+ },
+ {
+ "id": "zoom",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#zoom",
+ "level": 2,
+ "title": "Zoom",
+ "number": "3"
+ },
+ {
+ "id": "zoom-definition",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#zoom-definition",
+ "level": 3,
+ "title": "Definition of Zoom",
+ "number": "3.1"
+ },
+ {
+ "id": "permitted-event-types-for-setzoomlevel",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#permitted-event-types-for-setzoomlevel",
+ "level": 3,
+ "title": "Permitted Event Types for setZoomLevel()",
+ "number": "3.2"
+ },
+ {
+ "id": "zoom-control-apis",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#zoom-control-apis",
+ "level": 3,
+ "title": "Zoom-control APIs",
+ "number": "3.3"
+ },
+ {
+ "id": "scrolling",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#scrolling",
+ "level": 2,
+ "title": "Scroll",
+ "number": "4"
+ },
+ {
+ "id": "scrolling-apis",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#scrolling-apis",
+ "level": 3,
+ "title": "Scrolling APIs",
+ "number": "4.1"
+ },
+ {
+ "id": "subroutines",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#subroutines",
+ "level": 2,
+ "title": "Subroutines",
+ "number": "5"
+ },
+ {
+ "id": "subroutine-actively-capturing",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#subroutine-actively-capturing",
+ "level": 3,
+ "title": "Subroutine: Actively capturing",
+ "number": "5.1"
+ },
+ {
+ "id": "subroutine-is-self-capturing",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#subroutine-is-self-capturing",
+ "level": 3,
+ "title": "Subroutine: Is self-capturing",
+ "number": "5.2"
+ },
+ {
+ "id": "subroutine-supported-display-surface-type",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#subroutine-supported-display-surface-type",
+ "level": 3,
+ "title": "Subroutine: Supported display surface type",
+ "number": "5.3"
+ },
+ {
+ "id": "subroutine-forward-wheel-event",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#subroutine-forward-wheel-event",
+ "level": 3,
+ "title": "Subroutine: Forward wheel event",
+ "number": "5.4"
+ },
+ {
+ "id": "subroutine-scale-element-coordinates",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#subroutine-scale-element-coordinates",
+ "level": 3,
+ "title": "Subroutine: Scale element coordinates",
+ "number": "5.5"
+ },
+ {
+ "id": "privacy-and-security-considerations",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#privacy-and-security-considerations",
+ "level": 2,
+ "title": "Privacy and Security Considerations",
+ "number": "6"
+ },
+ {
+ "id": "zoom-setting-limitation-to-specific-interactions",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#zoom-setting-limitation-to-specific-interactions",
+ "level": 3,
+ "title": "Zoom-setting: Limitation to specific interactions",
+ "number": "6.1"
+ },
+ {
+ "id": "scrolling-limitation-to-specific-interactions",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#scrolling-limitation-to-specific-interactions",
+ "level": 3,
+ "title": "Scrolling: Limitation to specific interactions",
+ "number": "6.2"
+ },
+ {
+ "id": "limiting-element-types",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#limiting-element-types",
+ "level": 3,
+ "title": "Limiting element types",
+ "number": "6.3"
+ },
+ {
+ "id": "conformance",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#conformance",
+ "level": 2,
+ "title": "Conformance",
+ "number": "7"
+ },
+ {
+ "id": "references",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#references",
+ "level": 2,
+ "title": "References",
+ "number": "A"
+ },
+ {
+ "id": "normative-references",
+ "href": "https://w3c.github.io/mediacapture-surface-control/#normative-references",
+ "level": 3,
+ "title": "Normative references",
+ "number": "A.1"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/ed/headings/webp.json b/ed/headings/rfc9649.json
similarity index 57%
rename from ed/headings/webp.json
rename to ed/headings/rfc9649.json
index 878f2995a5fd..f1a6c863ceb7 100644
--- a/ed/headings/webp.json
+++ b/ed/headings/rfc9649.json
@@ -1,441 +1,447 @@
{
"spec": {
- "title": "WebP Image Format",
- "url": "https://www.ietf.org/archive/id/draft-zern-webp-15.html"
+ "title": "RFC 9649: WebP Image Format",
+ "url": "https://www.rfc-editor.org/rfc/rfc9649"
},
"headings": [
+ {
+ "id": "rfcnum",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#rfcnum",
+ "level": 1,
+ "title": "RFC 9649"
+ },
{
"id": "title",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#title",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#title",
"level": 1,
"title": "WebP Image Format"
},
{
"id": "section-abstract",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-abstract",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-abstract",
"level": 2,
"title": "Abstract"
},
{
"id": "section-boilerplate.1",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-boilerplate.1",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-boilerplate.1",
"level": 2,
"title": "Status of This Memo"
},
{
"id": "section-boilerplate.2",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-boilerplate.2",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-boilerplate.2",
"level": 2,
"title": "Copyright Notice"
},
{
"id": "section-toc.1",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-toc.1",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-toc.1",
"level": 2,
"title": "Table of Contents"
},
{
"id": "section-1",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-1",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-1",
"level": 2,
"title": "Introduction",
"number": "1"
},
{
"id": "section-2",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-2",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-2",
"level": 2,
"title": "WebP Container Specification",
"number": "2"
},
{
"id": "section-2.1",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-2.1",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-2.1",
"level": 3,
"title": "Introduction (from \"WebP Container Specification\")",
"number": "2.1"
},
{
"id": "section-2.2",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-2.2",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-2.2",
"level": 3,
"title": "Terminology & Basics",
"number": "2.2"
},
{
"id": "section-2.3",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-2.3",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-2.3",
"level": 3,
"title": "RIFF File Format",
"number": "2.3"
},
{
"id": "section-2.4",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-2.4",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-2.4",
"level": 3,
"title": "WebP File Header",
"number": "2.4"
},
{
"id": "section-2.5",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-2.5",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-2.5",
"level": 3,
"title": "Simple File Format (Lossy)",
"number": "2.5"
},
{
"id": "section-2.6",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-2.6",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-2.6",
"level": 3,
"title": "Simple File Format (Lossless)",
"number": "2.6"
},
{
"id": "section-2.7",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-2.7",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-2.7",
"level": 3,
"title": "Extended File Format",
"number": "2.7"
},
{
"id": "section-2.7.1",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-2.7.1",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-2.7.1",
"level": 4,
"title": "Chunks",
"number": "2.7.1"
},
{
"id": "section-2.7.1.1",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-2.7.1.1",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-2.7.1.1",
"level": 5,
"title": "Animation",
"number": "2.7.1.1"
},
{
"id": "section-2.7.1.2",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-2.7.1.2",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-2.7.1.2",
"level": 5,
"title": "Alpha",
"number": "2.7.1.2"
},
{
"id": "section-2.7.1.3",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-2.7.1.3",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-2.7.1.3",
"level": 5,
"title": "Bitstream (VP8/VP8L)",
"number": "2.7.1.3"
},
{
"id": "section-2.7.1.4",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-2.7.1.4",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-2.7.1.4",
"level": 5,
"title": "Color Profile",
"number": "2.7.1.4"
},
{
"id": "section-2.7.1.5",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-2.7.1.5",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-2.7.1.5",
"level": 5,
"title": "Metadata",
"number": "2.7.1.5"
},
{
"id": "section-2.7.1.6",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-2.7.1.6",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-2.7.1.6",
"level": 5,
"title": "Unknown Chunks",
"number": "2.7.1.6"
},
{
"id": "section-2.7.2",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-2.7.2",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-2.7.2",
"level": 4,
"title": "Canvas Assembly from Frames",
"number": "2.7.2"
},
{
"id": "section-2.7.3",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-2.7.3",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-2.7.3",
"level": 4,
"title": "Example File Layouts",
"number": "2.7.3"
},
{
"id": "section-3",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-3",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-3",
"level": 2,
"title": "Specification for WebP Lossless Bitstream",
"number": "3"
},
{
"id": "section-3.1",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-3.1",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-3.1",
"level": 3,
"title": "Abstract (from \"Specification for WebP Lossless Bitstream\")",
"number": "3.1"
},
{
"id": "section-3.2",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-3.2",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-3.2",
"level": 3,
"title": "Introduction (from \"Specification for WebP Lossless Bitstream\")",
"number": "3.2"
},
{
"id": "section-3.3",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-3.3",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-3.3",
"level": 3,
"title": "Nomenclature",
"number": "3.3"
},
{
"id": "section-3.4",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-3.4",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-3.4",
"level": 3,
"title": "RIFF Header",
"number": "3.4"
},
{
"id": "section-3.5",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-3.5",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-3.5",
"level": 3,
"title": "Transforms",
"number": "3.5"
},
{
"id": "section-3.5.1",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-3.5.1",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-3.5.1",
"level": 4,
"title": "Predictor Transform",
"number": "3.5.1"
},
{
"id": "section-3.5.2",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-3.5.2",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-3.5.2",
"level": 4,
"title": "Color Transform",
"number": "3.5.2"
},
{
"id": "section-3.5.3",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-3.5.3",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-3.5.3",
"level": 4,
"title": "Subtract Green Transform",
"number": "3.5.3"
},
{
"id": "section-3.5.4",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-3.5.4",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-3.5.4",
"level": 4,
"title": "Color Indexing Transform",
"number": "3.5.4"
},
{
"id": "section-3.6",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-3.6",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-3.6",
"level": 3,
"title": "Image Data",
"number": "3.6"
},
{
"id": "section-3.6.1",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-3.6.1",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-3.6.1",
"level": 4,
"title": "Roles of Image Data",
"number": "3.6.1"
},
{
"id": "section-3.6.2",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-3.6.2",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-3.6.2",
"level": 4,
"title": "Encoding of Image Data",
"number": "3.6.2"
},
{
"id": "section-3.6.2.1",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-3.6.2.1",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-3.6.2.1",
"level": 5,
"title": "Prefix-Coded Literals",
"number": "3.6.2.1"
},
{
"id": "section-3.6.2.2",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-3.6.2.2",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-3.6.2.2",
"level": 5,
"title": "LZ77 Backward Reference",
"number": "3.6.2.2"
},
{
"id": "section-3.6.2.2.1",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-3.6.2.2.1",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-3.6.2.2.1",
"level": 6,
"title": "Distance Mapping",
"number": "3.6.2.2.1"
},
{
"id": "section-3.6.2.3",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-3.6.2.3",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-3.6.2.3",
"level": 5,
"title": "Color Cache Coding",
"number": "3.6.2.3"
},
{
"id": "section-3.7",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-3.7",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-3.7",
"level": 3,
"title": "Entropy Code",
"number": "3.7"
},
{
"id": "section-3.7.1",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-3.7.1",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-3.7.1",
"level": 4,
"title": "Overview",
"number": "3.7.1"
},
{
"id": "section-3.7.2",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-3.7.2",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-3.7.2",
"level": 4,
"title": "Details",
"number": "3.7.2"
},
{
"id": "section-3.7.2.1",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-3.7.2.1",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-3.7.2.1",
"level": 5,
"title": "Decoding and Building the Prefix Codes",
"number": "3.7.2.1"
},
{
"id": "section-3.7.2.1.1",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-3.7.2.1.1",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-3.7.2.1.1",
"level": 6,
"title": "Simple Code Length Code",
"number": "3.7.2.1.1"
},
{
"id": "section-3.7.2.1.2",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-3.7.2.1.2",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-3.7.2.1.2",
"level": 6,
"title": "Normal Code Length Code",
"number": "3.7.2.1.2"
},
{
"id": "section-3.7.2.2",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-3.7.2.2",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-3.7.2.2",
"level": 5,
"title": "Decoding of Meta Prefix Codes",
"number": "3.7.2.2"
},
{
"id": "section-3.7.2.2.1",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-3.7.2.2.1",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-3.7.2.2.1",
"level": 6,
"title": "Entropy Image",
"number": "3.7.2.2.1"
},
{
"id": "section-3.7.2.2.2",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-3.7.2.2.2",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-3.7.2.2.2",
"level": 6,
"title": "Interpretation of Meta Prefix Codes",
"number": "3.7.2.2.2"
},
{
"id": "section-3.7.2.3",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-3.7.2.3",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-3.7.2.3",
"level": 5,
"title": "Decoding Entropy-Coded Image Data",
"number": "3.7.2.3"
},
{
"id": "section-3.8",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-3.8",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-3.8",
"level": 3,
"title": "Overall Structure of the Format",
"number": "3.8"
},
{
"id": "section-3.8.1",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-3.8.1",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-3.8.1",
"level": 4,
"title": "Basic Structure",
"number": "3.8.1"
},
{
"id": "section-3.8.2",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-3.8.2",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-3.8.2",
"level": 4,
"title": "Structure of Transforms",
"number": "3.8.2"
},
{
"id": "section-3.8.3",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-3.8.3",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-3.8.3",
"level": 4,
"title": "Structure of the Image Data",
"number": "3.8.3"
},
{
"id": "section-4",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-4",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-4",
"level": 2,
"title": "Security Considerations",
"number": "4"
},
{
"id": "section-5",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-5",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-5",
"level": 2,
"title": "Interoperability Considerations",
"number": "5"
},
{
"id": "section-6",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-6",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-6",
"level": 2,
"title": "IANA Considerations",
"number": "6"
},
{
"id": "section-6.1",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-6.1",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-6.1",
"level": 3,
"title": "The 'image/webp' Media Type",
"number": "6.1"
},
{
"id": "section-6.1.1",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-6.1.1",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-6.1.1",
"level": 4,
"title": "Registration Details",
"number": "6.1.1"
},
{
"id": "section-7",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-7",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-7",
"level": 2,
"title": "References",
"number": "7"
},
{
"id": "section-7.1",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-7.1",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-7.1",
"level": 3,
"title": "Normative References",
"number": "7.1"
},
{
"id": "section-7.2",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#section-7.2",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#section-7.2",
"level": 3,
"title": "Informative References",
"number": "7.2"
},
{
"id": "appendix-A",
- "href": "https://www.ietf.org/archive/id/draft-zern-webp-15.html#appendix-A",
+ "href": "https://www.rfc-editor.org/rfc/rfc9649#appendix-A",
"level": 2,
"title": "Authors' Addresses"
}
diff --git a/ed/headings/vc-data-model-2.0.json b/ed/headings/vc-data-model-2.0.json
index 98fd54d9d267..6b93522b9d99 100644
--- a/ed/headings/vc-data-model-2.0.json
+++ b/ed/headings/vc-data-model-2.0.json
@@ -115,26 +115,26 @@
"number": "4.4"
},
{
- "id": "sd-jwt-claim-qm5bUGlNoSeHBcvlVYbbFPbEhr6hk_lIebI9JfHhS38",
- "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-qm5bUGlNoSeHBcvlVYbbFPbEhr6hk_lIebI9JfHhS38",
+ "id": "sd-jwt-claim-jaMB5cTcPpkNFtJif7cO1BhquUBErKJ5fEFSweu9ZYU",
+ "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-jaMB5cTcPpkNFtJif7cO1BhquUBErKJ5fEFSweu9ZYU",
"level": 3,
"title": "Claim: id"
},
{
- "id": "sd-jwt-claim-tnkZwnbzF1XeHam9qPiToZsUzIUcBDTL5HnTpLsRGJQ",
- "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-tnkZwnbzF1XeHam9qPiToZsUzIUcBDTL5HnTpLsRGJQ",
+ "id": "sd-jwt-claim-1QrDIiWbbIATOTpsqO1yiiSE_uvMpucJf-TgaEvxbVs",
+ "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-1QrDIiWbbIATOTpsqO1yiiSE_uvMpucJf-TgaEvxbVs",
"level": 3,
"title": "Claim: type"
},
{
- "id": "sd-jwt-claim-NWIBvoJ5nkI6KhDZxIapxHq9SB6ogD35ex5SCv-vC6o",
- "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-NWIBvoJ5nkI6KhDZxIapxHq9SB6ogD35ex5SCv-vC6o",
+ "id": "sd-jwt-claim-f9CNbfO-8Q3n2iqgG1sImQ7FYT5TOynnb7G-hMBe1AU",
+ "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-f9CNbfO-8Q3n2iqgG1sImQ7FYT5TOynnb7G-hMBe1AU",
"level": 3,
"title": "Claim: id"
},
{
- "id": "sd-jwt-claim-wZL5Gi7HMXr7CXxxBOE0rsMSgdEb2DMGUzVwioMEOxw",
- "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-wZL5Gi7HMXr7CXxxBOE0rsMSgdEb2DMGUzVwioMEOxw",
+ "id": "sd-jwt-claim-IlWtk2Rd-05OC7fg6dNhB9c-RhmM595pHHZ0TvZtdEA",
+ "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-IlWtk2Rd-05OC7fg6dNhB9c-RhmM595pHHZ0TvZtdEA",
"level": 3,
"title": "Claim: type"
},
@@ -146,26 +146,26 @@
"number": "4.5"
},
{
- "id": "sd-jwt-claim-hrMUEtTOEftTJmG2t9imlECSoEZwM4Y-eaZ7d-PvQGc",
- "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-hrMUEtTOEftTJmG2t9imlECSoEZwM4Y-eaZ7d-PvQGc",
+ "id": "sd-jwt-claim-qx36PyZbVtir1uzMAuQsmk_iNYlOuwp8U7kbrbRQ3KI",
+ "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-qx36PyZbVtir1uzMAuQsmk_iNYlOuwp8U7kbrbRQ3KI",
"level": 3,
"title": "Claim: id"
},
{
- "id": "sd-jwt-claim-Z9zAcZaO7dP7FbNu96x1mIluthEi9SDLPn1ZUGn8dsk",
- "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-Z9zAcZaO7dP7FbNu96x1mIluthEi9SDLPn1ZUGn8dsk",
+ "id": "sd-jwt-claim-FUS2tlMTO2qp-Df7D2UFWyk-oqFxtbasNkXx1vr48-g",
+ "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-FUS2tlMTO2qp-Df7D2UFWyk-oqFxtbasNkXx1vr48-g",
"level": 3,
"title": "Claim: type"
},
{
- "id": "sd-jwt-claim-O4C8bDgqHm6rAMAXEx0e9MeO4EVdg20AkAhxyBDpGkk",
- "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-O4C8bDgqHm6rAMAXEx0e9MeO4EVdg20AkAhxyBDpGkk",
+ "id": "sd-jwt-claim-jg6nW_R80gifLw3s4ZGEvMALilW0TWr59a7fI5cEKzM",
+ "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-jg6nW_R80gifLw3s4ZGEvMALilW0TWr59a7fI5cEKzM",
"level": 3,
"title": "Claim: id"
},
{
- "id": "sd-jwt-claim-B_tBanMtVN0ZN6LUbbnUter6UXGtQ8EZg30SjwDopDE",
- "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-B_tBanMtVN0ZN6LUbbnUter6UXGtQ8EZg30SjwDopDE",
+ "id": "sd-jwt-claim-6YiI7OLoaH4pBDJ9u3do7-MgVkIHxdVI4rbc--A70ZI",
+ "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-6YiI7OLoaH4pBDJ9u3do7-MgVkIHxdVI4rbc--A70ZI",
"level": 3,
"title": "Claim: type"
},
@@ -177,32 +177,32 @@
"number": "4.6"
},
{
- "id": "sd-jwt-claim-TG16O3dpYSS861HOB1cJWCrEzquRGhwFQCU2Q5PfTwU",
- "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-TG16O3dpYSS861HOB1cJWCrEzquRGhwFQCU2Q5PfTwU",
+ "id": "sd-jwt-claim-t2FpuulSUIoBetAxUbql2oX4MnJQ3jGVKqw1WLG0BcE",
+ "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-t2FpuulSUIoBetAxUbql2oX4MnJQ3jGVKqw1WLG0BcE",
"level": 3,
"title": "Claim: id"
},
{
- "id": "sd-jwt-claim-jxIuRYlz3jb8nOeTV6oFYXJMiEABmKIV9sWRUghiaSc",
- "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-jxIuRYlz3jb8nOeTV6oFYXJMiEABmKIV9sWRUghiaSc",
+ "id": "sd-jwt-claim-Ap6GDUGjVisz1pbRSWXGMr75pELAkpwhGAEUkaO1V0U",
+ "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-Ap6GDUGjVisz1pbRSWXGMr75pELAkpwhGAEUkaO1V0U",
"level": 3,
"title": "Claim: type"
},
{
- "id": "sd-jwt-claim--3sl6XrWzX2jjYxY00BJHBwsr55fkf0cOx303z-7c_U",
- "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim--3sl6XrWzX2jjYxY00BJHBwsr55fkf0cOx303z-7c_U",
+ "id": "sd-jwt-claim-sQqwAfrVgfj8jA4PRbtP0m6Aby6h5Gmizh7-OQ56-oU",
+ "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-sQqwAfrVgfj8jA4PRbtP0m6Aby6h5Gmizh7-OQ56-oU",
"level": 3,
"title": "Claim: id"
},
{
- "id": "sd-jwt-claim-DTUCrz54Jx5aZA3dA7jJh4PwdvxDT0ieFv8OsItbbRA",
- "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-DTUCrz54Jx5aZA3dA7jJh4PwdvxDT0ieFv8OsItbbRA",
+ "id": "sd-jwt-claim-Vtr9uoTUjIXeUyuaQUEdJxr40nT5e2Eqv-92r0pFEEc",
+ "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-Vtr9uoTUjIXeUyuaQUEdJxr40nT5e2Eqv-92r0pFEEc",
"level": 3,
"title": "Claim: id"
},
{
- "id": "sd-jwt-claim-Pgr5DzwJlDI_cqfuCN3kwCXcmVOGSlf1lYBKMVTGMZ8",
- "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-Pgr5DzwJlDI_cqfuCN3kwCXcmVOGSlf1lYBKMVTGMZ8",
+ "id": "sd-jwt-claim-udW7iYINrFUBBmiZmfe3hcoq79fmH1kEPgNsAgKXhGE",
+ "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-udW7iYINrFUBBmiZmfe3hcoq79fmH1kEPgNsAgKXhGE",
"level": 3,
"title": "Claim: type"
},
@@ -214,56 +214,56 @@
"number": "4.7"
},
{
- "id": "sd-jwt-claim-ezSnhvMhoITmm2Un-lvcLKQJcPWZOvgKcLQPeGO3zsY",
- "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-ezSnhvMhoITmm2Un-lvcLKQJcPWZOvgKcLQPeGO3zsY",
+ "id": "sd-jwt-claim-NabK96YvQbaugQ0iyf3EMDBA6uDQtXR-BXXO25OzANo",
+ "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-NabK96YvQbaugQ0iyf3EMDBA6uDQtXR-BXXO25OzANo",
"level": 3,
"title": "Claim: id"
},
{
- "id": "sd-jwt-claim-F6bytmgQkZY-7HM2EzZXltMMmKbqgUMWx1VjWs94T5w",
- "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-F6bytmgQkZY-7HM2EzZXltMMmKbqgUMWx1VjWs94T5w",
+ "id": "sd-jwt-claim-DmnBsnuLOdO2NdGf-TuarZhpQp6GVEupr-QpK6k-lVU",
+ "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-DmnBsnuLOdO2NdGf-TuarZhpQp6GVEupr-QpK6k-lVU",
"level": 3,
"title": "Claim: type"
},
{
- "id": "sd-jwt-claim-4J3MeFhJaGbMrlJwqFBn395H3gNwPr-ILY6iq1GecB0",
- "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-4J3MeFhJaGbMrlJwqFBn395H3gNwPr-ILY6iq1GecB0",
+ "id": "sd-jwt-claim-w2qkear7nJi-FoqTjyVuNAoLLd6XHgE8JvunwuuSZWc",
+ "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-w2qkear7nJi-FoqTjyVuNAoLLd6XHgE8JvunwuuSZWc",
"level": 3,
"title": "Claim: id"
},
{
- "id": "sd-jwt-claim-vjKVoPVkTsVzEwS_TmnF3qYUVcetN3Ns_FYjFltaO0M",
- "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-vjKVoPVkTsVzEwS_TmnF3qYUVcetN3Ns_FYjFltaO0M",
+ "id": "sd-jwt-claim-6iHtZBiHF6rJ48ekUeDdo80fYsRFwKiCNcN1NLPZeyE",
+ "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-6iHtZBiHF6rJ48ekUeDdo80fYsRFwKiCNcN1NLPZeyE",
"level": 3,
"title": "Claim: type"
},
{
- "id": "sd-jwt-claim-tYUuD7Vl-z09tLbbRbdP-3pXU_TVcybLt9v7V2ywL8s",
- "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-tYUuD7Vl-z09tLbbRbdP-3pXU_TVcybLt9v7V2ywL8s",
+ "id": "sd-jwt-claim-JMk_bXIkRm8-q2tM4Z2EoU9IvRzIjxagz4H5T83Ym0s",
+ "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-JMk_bXIkRm8-q2tM4Z2EoU9IvRzIjxagz4H5T83Ym0s",
"level": 3,
"title": "Claim: id"
},
{
- "id": "sd-jwt-claim-Cr9wjFmLPDHbrMaCUtbT8CDVLm2l7DxciRjhXFC21I4",
- "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-Cr9wjFmLPDHbrMaCUtbT8CDVLm2l7DxciRjhXFC21I4",
+ "id": "sd-jwt-claim-v2qcSLbPiZrXQfKP1KYuBMMgJ2gqmeqRA1JqnaevvDs",
+ "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-v2qcSLbPiZrXQfKP1KYuBMMgJ2gqmeqRA1JqnaevvDs",
"level": 3,
"title": "Claim: type"
},
{
- "id": "sd-jwt-claim-1CoWo9_MNKANK4FtsF5AZkxugxKQ-NmSSnBQFji5g8k",
- "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-1CoWo9_MNKANK4FtsF5AZkxugxKQ-NmSSnBQFji5g8k",
+ "id": "sd-jwt-claim-LYf-_iLtLLSAe1bwvbmqbUG3kbZ_M8Tv5Cd_bAfQqR8",
+ "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-LYf-_iLtLLSAe1bwvbmqbUG3kbZ_M8Tv5Cd_bAfQqR8",
"level": 3,
"title": "Claim: id"
},
{
- "id": "sd-jwt-claim-vpPj3wOPsAABj25pI8ubWgszqQgR5TnwHtFigdVacXQ",
- "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-vpPj3wOPsAABj25pI8ubWgszqQgR5TnwHtFigdVacXQ",
+ "id": "sd-jwt-claim-2W9TnIT7yNdjOU748FLFHoBJWiqQb6kTO2-YK4shBhg",
+ "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-2W9TnIT7yNdjOU748FLFHoBJWiqQb6kTO2-YK4shBhg",
"level": 3,
"title": "Claim: id"
},
{
- "id": "sd-jwt-claim-_Ty9wWkJcJxbAvVfFxr-ZzPzJ40l7HGRXbIMNBs3A58",
- "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-_Ty9wWkJcJxbAvVfFxr-ZzPzJ40l7HGRXbIMNBs3A58",
+ "id": "sd-jwt-claim-wsiUKAqQIvUwbbWGpfRDlSj0HA2FjTVpHOrbKYJDpCE",
+ "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-wsiUKAqQIvUwbbWGpfRDlSj0HA2FjTVpHOrbKYJDpCE",
"level": 3,
"title": "Claim: type"
},
@@ -275,26 +275,26 @@
"number": "4.8"
},
{
- "id": "sd-jwt-claim-JLazgmVEOofONynMIQA6wgQ-dEsWX4rU5s38xQp-H-Y",
- "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-JLazgmVEOofONynMIQA6wgQ-dEsWX4rU5s38xQp-H-Y",
+ "id": "sd-jwt-claim-Ne0KhXt8TBFl-qoQnlFBJ40DfNIRRpXarnrX33nSmbQ",
+ "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-Ne0KhXt8TBFl-qoQnlFBJ40DfNIRRpXarnrX33nSmbQ",
"level": 3,
"title": "Claim: id"
},
{
- "id": "sd-jwt-claim-oXhDhqe33oLYZEAETkpjIPRVW4a7MkubC505WsqsqLs",
- "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-oXhDhqe33oLYZEAETkpjIPRVW4a7MkubC505WsqsqLs",
+ "id": "sd-jwt-claim-m8dDRrWx4tAQLkzkm3CPttkR6dWV4WQxRbBQbU5PtJs",
+ "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-m8dDRrWx4tAQLkzkm3CPttkR6dWV4WQxRbBQbU5PtJs",
"level": 3,
"title": "Claim: type"
},
{
- "id": "sd-jwt-claim-B12U-hmsk3jTEjdOZ7A4NBRBvAmPNjRhoUMF-NkfXq8",
- "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-B12U-hmsk3jTEjdOZ7A4NBRBvAmPNjRhoUMF-NkfXq8",
+ "id": "sd-jwt-claim-t5bVXs4GprNUbbFxo0fwmHx35VJQMINYHm1GNOQry14",
+ "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-t5bVXs4GprNUbbFxo0fwmHx35VJQMINYHm1GNOQry14",
"level": 3,
"title": "Claim: id"
},
{
- "id": "sd-jwt-claim-TubpxwkfxkSvvvuTObACWCm0u0YEADqtC14AwXobT6I",
- "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-TubpxwkfxkSvvvuTObACWCm0u0YEADqtC14AwXobT6I",
+ "id": "sd-jwt-claim-9ab-TFsWk3D5VZW6EhtgdPz7ZszTOOYt5eXkEHHyRX0",
+ "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-9ab-TFsWk3D5VZW6EhtgdPz7ZszTOOYt5eXkEHHyRX0",
"level": 3,
"title": "Claim: type"
},
@@ -306,26 +306,26 @@
"number": "4.9"
},
{
- "id": "sd-jwt-claim-N5BhwtMJ6dsoyDc-Yi89LswTzhvaVS1l5cMwR9snX98",
- "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-N5BhwtMJ6dsoyDc-Yi89LswTzhvaVS1l5cMwR9snX98",
+ "id": "sd-jwt-claim-iyA5dKzNWUnQ4NpPPzFSxWyym15UgoYOLrzbulK-me8",
+ "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-iyA5dKzNWUnQ4NpPPzFSxWyym15UgoYOLrzbulK-me8",
"level": 3,
"title": "Claim: id"
},
{
- "id": "sd-jwt-claim-m6YAwTks_6XQMQ6V4Hio16JoIEGPmhqukYOgmS9HtsU",
- "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-m6YAwTks_6XQMQ6V4Hio16JoIEGPmhqukYOgmS9HtsU",
+ "id": "sd-jwt-claim-Ttj8sCifwSFs18In7oU9Ia9J_86aNefAyOveOAlPxaE",
+ "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-Ttj8sCifwSFs18In7oU9Ia9J_86aNefAyOveOAlPxaE",
"level": 3,
"title": "Claim: type"
},
{
- "id": "sd-jwt-claim-Jqezv8wuTYWO1G7Da4MhgD2mjsNabygEMZSLzRGeWEM",
- "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-Jqezv8wuTYWO1G7Da4MhgD2mjsNabygEMZSLzRGeWEM",
+ "id": "sd-jwt-claim-BB9HlN8XBugqR9_hEtcQ1D0YhQuReYq0VP_DCR4udrI",
+ "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-BB9HlN8XBugqR9_hEtcQ1D0YhQuReYq0VP_DCR4udrI",
"level": 3,
"title": "Claim: id"
},
{
- "id": "sd-jwt-claim-hNoxo35UVAi8mt_YXkHk6kS8nfS4cMC3hNxr65WiUBc",
- "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-hNoxo35UVAi8mt_YXkHk6kS8nfS4cMC3hNxr65WiUBc",
+ "id": "sd-jwt-claim-ewzKeux_vjqlnZM4b_1B86Evqi0BedlYoULNTwqkA9o",
+ "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-ewzKeux_vjqlnZM4b_1B86Evqi0BedlYoULNTwqkA9o",
"level": 3,
"title": "Claim: type"
},
@@ -403,20 +403,20 @@
"number": "5.2"
},
{
- "id": "sd-jwt-claim-hDpep10UFgaR9BH2anWYwslnKMpmn0di7NgLKuOiZc0",
- "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-hDpep10UFgaR9BH2anWYwslnKMpmn0di7NgLKuOiZc0",
+ "id": "sd-jwt-claim-XQs--zyofrBCr_A5D0x8GjbGZLxUk38GZOnrGvdhCxU",
+ "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-XQs--zyofrBCr_A5D0x8GjbGZLxUk38GZOnrGvdhCxU",
"level": 3,
"title": "Claim: id"
},
{
- "id": "sd-jwt-claim-1VpVGReKC15ti2gwgo8MT3NIYT9yHhh04T-9olDItZQ",
- "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-1VpVGReKC15ti2gwgo8MT3NIYT9yHhh04T-9olDItZQ",
+ "id": "sd-jwt-claim-aSBnEiFrtRrD-A6hOawJW1lCHgnKiSPiXrxQebnlebY",
+ "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-aSBnEiFrtRrD-A6hOawJW1lCHgnKiSPiXrxQebnlebY",
"level": 3,
"title": "Claim: type"
},
{
- "id": "sd-jwt-claim-YKjocAS9QrEIhCixt0g75mLk9ebSBJAdyDW8tidsWZU",
- "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-YKjocAS9QrEIhCixt0g75mLk9ebSBJAdyDW8tidsWZU",
+ "id": "sd-jwt-claim-TPr-4_lyvOtsr1enH5qP8lp0FAo3Kh6nJvHQMuUOgeY",
+ "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-TPr-4_lyvOtsr1enH5qP8lp0FAo3Kh6nJvHQMuUOgeY",
"level": 3,
"title": "Claim: id"
},
@@ -654,20 +654,20 @@
"number": "8.10"
},
{
- "id": "sd-jwt-claim-5eC2ALfk1PnC6uE1NJ0_hlbjBjQnwZfps9c9NC6ZyKY",
- "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-5eC2ALfk1PnC6uE1NJ0_hlbjBjQnwZfps9c9NC6ZyKY",
+ "id": "sd-jwt-claim-IqhWWrqWmUnVqzY5zW55I9-Sw9nqidUQZLCLq-i8rZU",
+ "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-IqhWWrqWmUnVqzY5zW55I9-Sw9nqidUQZLCLq-i8rZU",
"level": 3,
"title": "Claim: id"
},
{
- "id": "sd-jwt-claim-z4D-SXQDErPnwsZ0em7aeivyCgWu5P2kPLjQWORO4Eo",
- "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-z4D-SXQDErPnwsZ0em7aeivyCgWu5P2kPLjQWORO4Eo",
+ "id": "sd-jwt-claim-17ssbSU9WZMyFaecFbU1KuE_HdgAs6Wk1fAOQjsCjzc",
+ "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-17ssbSU9WZMyFaecFbU1KuE_HdgAs6Wk1fAOQjsCjzc",
"level": 3,
"title": "Claim: type"
},
{
- "id": "sd-jwt-claim-LiQLobzHf-W0zZrjxRsjN1uJIHLsvGJoXXhethUudao",
- "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-LiQLobzHf-W0zZrjxRsjN1uJIHLsvGJoXXhethUudao",
+ "id": "sd-jwt-claim-VC6dPjbHdAOnOpnloG4cJjcqPWKlltd9vnsyOtCJYgI",
+ "href": "https://w3c.github.io/vc-data-model/#sd-jwt-claim-VC6dPjbHdAOnOpnloG4cJjcqPWKlltd9vnsyOtCJYgI",
"level": 3,
"title": "Claim: type"
},
diff --git a/ed/headings/vibration.json b/ed/headings/vibration.json
index a51a4d5a5751..c61afd61ff1b 100644
--- a/ed/headings/vibration.json
+++ b/ed/headings/vibration.json
@@ -1,6 +1,6 @@
{
"spec": {
- "title": "Vibration API (Second Edition)",
+ "title": "Vibration API",
"url": "https://w3c.github.io/vibration/"
},
"headings": [
@@ -8,7 +8,7 @@
"id": "title",
"href": "https://w3c.github.io/vibration/#title",
"level": 1,
- "title": "Vibration API (Second Edition)"
+ "title": "Vibration API"
},
{
"id": "toc",
diff --git a/ed/headings/webdriver-bidi.json b/ed/headings/webdriver-bidi.json
index d1a0ec20c77f..173100802aa8 100644
--- a/ed/headings/webdriver-bidi.json
+++ b/ed/headings/webdriver-bidi.json
@@ -1260,6 +1260,55 @@
"title": "The input.setFiles Command",
"number": "7.8.3.3"
},
+ {
+ "id": "module-webExtension",
+ "href": "https://w3c.github.io/webdriver-bidi/#module-webExtension",
+ "level": 3,
+ "title": "The webExtension Module",
+ "number": "7.9"
+ },
+ {
+ "id": "module-webExtension-definition",
+ "href": "https://w3c.github.io/webdriver-bidi/#module-webExtension-definition",
+ "level": 4,
+ "title": "Definition",
+ "number": "7.9.1"
+ },
+ {
+ "id": "module-webExtension-types",
+ "href": "https://w3c.github.io/webdriver-bidi/#module-webExtension-types",
+ "level": 4,
+ "title": "Types",
+ "number": "7.9.2"
+ },
+ {
+ "id": "type-webExtension-Extension",
+ "href": "https://w3c.github.io/webdriver-bidi/#type-webExtension-Extension",
+ "level": 5,
+ "title": "The webExtension.Extension Type",
+ "number": "7.9.2.1"
+ },
+ {
+ "id": "module-webExtension-commands",
+ "href": "https://w3c.github.io/webdriver-bidi/#module-webExtension-commands",
+ "level": 4,
+ "title": "Commands",
+ "number": "7.9.3"
+ },
+ {
+ "id": "command-webExtension-install",
+ "href": "https://w3c.github.io/webdriver-bidi/#command-webExtension-install",
+ "level": 5,
+ "title": "The webExtension.install Command",
+ "number": "7.9.3.1"
+ },
+ {
+ "id": "command-webExtension-uninstall",
+ "href": "https://w3c.github.io/webdriver-bidi/#command-webExtension-uninstall",
+ "level": 5,
+ "title": "The webExtension.uninstall Command",
+ "number": "7.9.3.2"
+ },
{
"id": "patches",
"href": "https://w3c.github.io/webdriver-bidi/#patches",
diff --git a/ed/idl/gpc-spec.idl b/ed/idl/gpc.idl
similarity index 100%
rename from ed/idl/gpc-spec.idl
rename to ed/idl/gpc.idl
diff --git a/ed/idl/mediacapture-surface-control.idl b/ed/idl/mediacapture-surface-control.idl
new file mode 100644
index 000000000000..b0bbd22304fd
--- /dev/null
+++ b/ed/idl/mediacapture-surface-control.idl
@@ -0,0 +1,16 @@
+// GENERATED CONTENT - DO NOT EDIT
+// Content was automatically extracted by Reffy into webref
+// (https://github.com/w3c/webref)
+// Source: Captured Surface Control (https://w3c.github.io/mediacapture-surface-control/)
+
+partial interface CaptureController {
+ sequence