From f7fb004744fb5286bad136fd2ba6d1dc3ad72ca0 Mon Sep 17 00:00:00 2001 From: Jens Oliver Meiert Date: Tue, 12 Oct 2021 09:04:50 +0200 Subject: [PATCH 01/25] =?UTF-8?q?=20Editorial:=20=E2=80=9Cbread=20crumb?= =?UTF-8?q?=E2=80=9D=20=E2=86=92=20=E2=80=9Cbreadcrumb=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source b/source index b3336b54c58..01dd8d52dc0 100644 --- a/source +++ b/source @@ -69480,7 +69480,7 @@ dictionary ValidityStateFlags {

Common idioms without dedicated elements

-

Bread crumb navigation

+

Breadcrumb navigation

This specification does not provide a machine-readable way of describing breadcrumb navigation menus. Authors are encouraged to just use a series of links in a paragraph. The nav From 2abb4ac96ec52b633f1fbaa7887d80a97a7d5a1a Mon Sep 17 00:00:00 2001 From: Jens Oliver Meiert Date: Tue, 12 Oct 2021 09:06:46 +0200 Subject: [PATCH 02/25] =?UTF-8?q?Editorial:=20=E2=80=9Cnon-zero=E2=80=9D?= =?UTF-8?q?=20=E2=86=92=20=E2=80=9Cnonzero=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source b/source index 01dd8d52dc0..28a2606836f 100644 --- a/source +++ b/source @@ -4863,7 +4863,7 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute

  • Return value as a length.

  • -
    Non-zero percentages and lengths
    +
    Nonzero percentages and lengths

    The rules for parsing nonzero dimension values are as given in the following algorithm. When invoked, the steps must be followed in From 1b158de14bc3d64893ccdd67691243f26ab425e6 Mon Sep 17 00:00:00 2001 From: Henri Sivonen Date: Tue, 12 Oct 2021 11:16:05 +0300 Subject: [PATCH 03/25] Advance the position after the equals sign in bogo XML decl parsing Closes #7193. --- source | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source b/source index 28a2606836f..0bce7e6154a 100644 --- a/source +++ b/source @@ -107080,6 +107080,8 @@ dictionary StorageEventInit : EventInit {

  • If the byte at encodingPosition is not 0x3D (=), then return failure.

  • +
  • Advance encodingPosition to the next byte.

  • +
  • While the byte at encodingPosition is less than or equal to 0x20 (i.e., it is either an ASCII space or control character), advance encodingPosition to the next byte.

  • From 753a5f65764e61edc5961d172353e84097258e8c Mon Sep 17 00:00:00 2001 From: Anne van Kesteren Date: Tue, 12 Oct 2021 13:37:48 +0200 Subject: [PATCH 04/25] Meta: add element attribute to h1-h6 --- source | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/source b/source index 0bce7e6154a..0c8a697f40c 100644 --- a/source +++ b/source @@ -16431,10 +16431,11 @@ isn't his only passion. He also enjoys other pleasures.</p> -

    The h1, h2, h3, h4, h5, and - h6 elements

    +

    The h1, h2, h3, h4, h5, and h6 + elements

    Categories:
    From e270c0a7118980416e28d2968d0d8b40ba8ead48 Mon Sep 17 00:00:00 2001 From: Ecma Kawarabe Date: Wed, 13 Oct 2021 05:55:39 +0900 Subject: [PATCH 05/25] Editorial: link "continue" to its definition This makes it clearer that it's a term of art, not just the usual English meaning. --- source | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/source b/source index 0c8a697f40c..116d049dcc5 100644 --- a/source +++ b/source @@ -6027,7 +6027,7 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
  • If the character in input pointed to by position is a U+0054 LATIN CAPITAL LETTER T character, then advance position to the next character, set M-disambiguator to minutes, skip ASCII whitespace within - input given position, and continue.

  • + input given position, and continue.

  • Set next character to the character in input pointed to by position.

  • @@ -28992,23 +28992,23 @@ was an English <a href="/wiki/Music_hall">music hall</a> singer, ...continue.

  • If child does not have a srcset - attribute, continue to the next child.

  • + attribute, continue to the next child.

  • Parse child's srcset attribute and let the returned source set be source set.

  • If source set has zero image sources, - continue to the next child.

  • + continue to the next child.

  • If child has a media attribute, and its value does not match the environment, - continue to the next child.

  • + continue to the next child.

  • Parse child's sizes attribute, and let source set's source size be the returned value.

  • If child has a type attribute, and its - value is an unknown or unsupported MIME type, continue to the next child.

  • + value is an unknown or unsupported MIME type, continue to the next child.

  • If child has width or height attributes, set el's music hall</a> singer, ...unparsed size. If unparsed size is now empty, that is a parse error; - continue to the next iteration of this algorithm.

  • + continue.

  • If the last component value in unparsed size is a valid non-negative <source-size-value>, @@ -29297,7 +29297,7 @@ was an English <a href="/wiki/Music_hall">music hall</a> singer, ...component value from unparsed size. Any CSS function other than the math functions is invalid. Otherwise, there is a parse error; - continue to the next iteration of this algorithm.

  • + continue.

  • Remove all consecutive <whitespace-token>s from the end of unparsed size. @@ -29310,7 +29310,7 @@ was an English <a href="/wiki/Music_hall">music hall</a> singer, ...<media-condition>. If it does not parse correctly, or it does parse correctly but the <media-condition> evaluates to false, - continue to the next iteration of this algorithm.

  • + continue.

  • Return size and exit this algorithm.

  • @@ -29345,7 +29345,7 @@ was an English <a href="/wiki/Music_hall">music hall</a> singer, ...For each image source in source set:

      -
    1. If the image source has a pixel density descriptor, continue to the next +

    2. If the image source has a pixel density descriptor, continue to the next image source.

    3. @@ -56613,7 +56613,7 @@ fur
    4. Let submitterButton be null if submitter is form. Otherwise, let submitterButton be submitter.

    5. -
    6. Let continue be the result of firing an +

    7. Let shouldContinue be the result of firing an event named submit at form using SubmitEvent, with the submitter attribute initialized to submitterButton, the

      Set form's firing submission events to false.

    8. -
    9. If continue is false, then return.

    10. +
    11. If shouldContinue is false, then return.

    12. If form cannot navigate, then return.

      @@ -56999,7 +56999,7 @@ fur data-x="concept-fe-checked">checkedness is false.
    13. -

      Then continue.

      +

      Then continue.

    14. @@ -57032,7 +57032,7 @@ fur
    15. Append an entry to entry list with namey and y.

    16. -
    17. Continue.

    18. +
    19. Continue.

    @@ -71380,7 +71380,7 @@ Demos: element.

  • If current is already in memory, there is a - microdata error; continue.

  • + microdata error; continue.

  • Add current to memory.

  • @@ -115025,7 +115025,7 @@ document.body.appendChild(text);

    Append a U+003E GREATER-THAN SIGN character (>).

    -

    If current node serializes as void, then continue on to the next +

    If current node serializes as void, then continue on to the next child node at this point.

    Append the value of running the HTML fragment serialization algorithm on the @@ -126863,6 +126863,7 @@ INSERT INTERFACES HERE Kartikaya Gupta, 葛依寧 (Kat Hackett), Kathy Walton, + 河童エクマ(Kawarabe Ecma) Keith Rollin, Keith Yeung, Kelly Ford, From acb9ac9bf7dd3427c63484e4d0badd5fb6b480d8 Mon Sep 17 00:00:00 2001 From: Domenic Denicola Date: Tue, 12 Oct 2021 17:09:58 -0400 Subject: [PATCH 06/25] Editorial: update Web IDL links --- source | 168 ++++++++++++++++++++++++++++----------------------------- 1 file changed, 84 insertions(+), 84 deletions(-) diff --git a/source b/source index 116d049dcc5..94add350702 100644 --- a/source +++ b/source @@ -2605,97 +2605,97 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute

    The following terms are defined in Web IDL:

      -
    • this
    • -
    • extended attribute
    • -
    • named constructor
    • -
    • constructor operation
    • -
    • overridden constructor steps
    • -
    • internally create a new object implementing the interface
    • -
    • array index property name
    • -
    • supports indexed properties
    • -
    • supported property indices
    • -
    • determine the value of an indexed property
    • -
    • set the value of an existing indexed property
    • -
    • set the value of a new indexed property
    • -
    • support named properties
    • -
    • supported property names
    • -
    • determine the value of a named property
    • -
    • set the value of an existing named property
    • -
    • set the value of a new named property
    • -
    • delete an existing named property
    • -
    • perform a security check
    • -
    • platform object
    • -
    • legacy platform object
    • -
    • primary interface
    • -
    • interface object
    • -
    • include
    • -
    • inherit
    • -
    • interface prototype object
    • -
    • [[Realm]] field of a platform object
    • -
    • callback context
    • -
    • frozen array and - creating a frozen array
    • -
    • create a new object implementing the interface
    • -
    • callback this value
    • -
    • converting between Web IDL types and JS types
    • -
    • invoking and - constructing callback functions
    • -
    • overload resolution algorithm
    • -
    • exposed
    • -
    • a promise rejected with
    • -
    • upon rejection
    • -
    • [LegacyFactoryFunction]
    • -
    • [LegacyLenientThis]
    • -
    • [LegacyNullToEmptyString]
    • -
    • [LegacyOverrideBuiltIns]
    • -
    • [LegacyTreatNonObjectAsNull]
    • -
    • [LegacyUnenumerableNamedProperties]
    • -
    • [LegacyUnforgeable]
    • +
    • this
    • +
    • extended attribute
    • +
    • named constructor
    • +
    • constructor operation
    • +
    • overridden constructor steps
    • +
    • internally create a new object implementing the interface
    • +
    • array index property name
    • +
    • supports indexed properties
    • +
    • supported property indices
    • +
    • determine the value of an indexed property
    • +
    • set the value of an existing indexed property
    • +
    • set the value of a new indexed property
    • +
    • support named properties
    • +
    • supported property names
    • +
    • determine the value of a named property
    • +
    • set the value of an existing named property
    • +
    • set the value of a new named property
    • +
    • delete an existing named property
    • +
    • perform a security check
    • +
    • platform object
    • +
    • legacy platform object
    • +
    • primary interface
    • +
    • interface object
    • +
    • include
    • +
    • inherit
    • +
    • interface prototype object
    • +
    • [[Realm]] field of a platform object
    • +
    • callback context
    • +
    • frozen array and + creating a frozen array
    • +
    • create a new object implementing the interface
    • +
    • callback this value
    • +
    • converting between Web IDL types and JS types
    • +
    • invoking and + constructing callback functions
    • +
    • overload resolution algorithm
    • +
    • exposed
    • +
    • a promise rejected with
    • +
    • upon rejection
    • +
    • [LegacyFactoryFunction]
    • +
    • [LegacyLenientThis]
    • +
    • [LegacyNullToEmptyString]
    • +
    • [LegacyOverrideBuiltIns]
    • +
    • [LegacyTreatNonObjectAsNull]
    • +
    • [LegacyUnenumerableNamedProperties]
    • +
    • [LegacyUnforgeable]
    -

    The Web IDL also defines the following types that are used in Web IDL fragments - in this specification:

    +

    Web IDL also defines the following types that are used in Web IDL fragments in + this specification:

      -
    • ArrayBuffer
    • -
    • ArrayBufferView
    • -
    • boolean
    • -
    • DOMString
    • -
    • double
    • -
    • enumeration
    • -
    • Function
    • -
    • long
    • -
    • object
    • -
    • Uint8ClampedArray
    • -
    • unrestricted double
    • -
    • unsigned long
    • -
    • USVString
    • -
    • VoidFunction
    • +
    • ArrayBuffer
    • +
    • ArrayBufferView
    • +
    • boolean
    • +
    • DOMString
    • +
    • double
    • +
    • enumeration
    • +
    • Function
    • +
    • long
    • +
    • object
    • +
    • Uint8ClampedArray
    • +
    • unrestricted double
    • +
    • unsigned long
    • +
    • USVString
    • +
    • VoidFunction
    -

    The term throw in this +

    The term throw in this specification is used as defined in Web IDL. The DOMException + data-x-href="https://webidl.spec.whatwg.org/#dfn-DOMException">DOMException type and the following exception names are defined by Web IDL and used by this specification:

      -
    • "IndexSizeError"
    • -
    • "HierarchyRequestError"
    • -
    • "InvalidCharacterError"
    • -
    • "NoModificationAllowedError"
    • -
    • "NotFoundError"
    • -
    • "NotSupportedError"
    • -
    • "InvalidStateError"
    • -
    • "SyntaxError"
    • -
    • "InvalidAccessError"
    • -
    • "SecurityError"
    • -
    • "NetworkError"
    • -
    • "AbortError"
    • -
    • "QuotaExceededError"
    • -
    • "DataCloneError"
    • -
    • "EncodingError"
    • -
    • "NotAllowedError"
    • +
    • "IndexSizeError"
    • +
    • "HierarchyRequestError"
    • +
    • "InvalidCharacterError"
    • +
    • "NoModificationAllowedError"
    • +
    • "NotFoundError"
    • +
    • "NotSupportedError"
    • +
    • "InvalidStateError"
    • +
    • "SyntaxError"
    • +
    • "InvalidAccessError"
    • +
    • "SecurityError"
    • +
    • "NetworkError"
    • +
    • "AbortError"
    • +
    • "QuotaExceededError"
    • +
    • "DataCloneError"
    • +
    • "EncodingError"
    • +
    • "NotAllowedError"

    When this specification requires a user agent to create a Date object @@ -94084,8 +94084,8 @@ import "https://example.com/foo/../module2.mjs";

    (On these last two points, see also heycam/webidl issue #135 and heycam/webidl issue #371, where we are + href="https://github.com/whatwg/webidl/issues/135">whatwg/webidl issue #135 and whatwg/webidl issue #371, where we are still mulling over the subtleties of the above promise-resolution pattern.)

    Another thing to note is that, in the event this algorithm was called from a Web IDL-specified @@ -95551,7 +95551,7 @@ document.body.appendChild(frame) function with one or two arguments to continue working. They are necessary due to Web IDL overload resolution algorithm rules, which would throw a TypeError exception for such calls had the arguments not been there. heycam/webidl issue #581 investigates + href="https://github.com/whatwg/webidl/issues/581">whatwg/webidl issue #581 investigates changing the algorithm to allow for their removal.

    The open(url, @@ -126225,7 +126225,7 @@ INSERT INTERFACES HERE

    WebGPU, D. Malyshau, K. Ninomiya. W3C.
    [WEBIDL]
    -
    Web IDL, C. McCormack. W3C.
    +
    Web IDL, E. Chen, T. Gu. WHATWG.
    Web Linking, M. Nottingham. IETF.
    From 639021033949e359a7ce6d99c92ecf0aca5def56 Mon Sep 17 00:00:00 2001 From: Domenic Denicola Date: Tue, 12 Oct 2021 16:58:34 -0400 Subject: [PATCH 07/25] Fix missing step in "update the current document readiness" Closes #7120. This was missed in 35532a83fe49ec343b3f215c2acbb4394e96618a. --- source | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source b/source index 94add350702..9feaf6aa6f8 100644 --- a/source +++ b/source @@ -9550,6 +9550,9 @@ partial interface Document {
  • If document's current document readiness equals readinessValue, then return.

  • +
  • Set document's current document readiness to + readinessValue.

  • +
  • If document is associated with an HTML parser, then:

    From 9fa2a91f16338ec85697663c8a148df1ee497409 Mon Sep 17 00:00:00 2001 From: Anne van Kesteren Date: Wed, 13 Oct 2021 09:29:07 +0200 Subject: [PATCH 08/25] Use GBK as fallback, not gb18030 It's equivalent for decoding, but gives more conservative encoding that's likely to be more compatible. Fixes #4557. --- source | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/source b/source index 9feaf6aa6f8..0690ef89ed7 100644 --- a/source +++ b/source @@ -106347,15 +106347,15 @@ dictionary StorageEventInit : EventInit { compatibility with legacy content. Locales are identified by BCP 47 language tags.

    @@ -106722,17 +106722,17 @@ dictionary StorageEventInit : EventInit { zh-CN Chinese (People's Republic of China) - gb18030 + GBK - + - + zh-TW @@ -107138,7 +107138,7 @@ dictionary StorageEventInit : EventInit { windows-1256, windows-1257, windows-1258, - gb18030, + GBK, Big5, ISO-2022-JP, Shift_JIS, From 383e1a95fa6615d1ed9c0a0c5f3d11794cfccc4c Mon Sep 17 00:00:00 2001 From: Domenic Denicola Date: Wed, 13 Oct 2021 11:53:31 -0400 Subject: [PATCH 09/25] Improve autofocus and delegatesFocus interaction Now, when focusing a shadow host with delegates focus set, we try to focus the first focusable area with the autofocus attribute set, instead of just the first focusable area. (If no focusable area has autofocus set, then we use the first one, like before.) Closes #833. --- source | 73 +++++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 52 insertions(+), 21 deletions(-) diff --git a/source b/source index 0690ef89ed7..786daa581b9 100644 --- a/source +++ b/source @@ -2966,6 +2966,7 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
  • The child concept
  • The root and shadow-including root concepts
  • The inclusive ancestor, + descendant, shadow-including descendant, shadow-including inclusive descendant, and shadow-including inclusive ancestor concepts
  • @@ -74985,8 +74986,8 @@ END:VCARD

    To get the focusable area for a focus target that is either an element that is not a focusable area, or is a browsing context, given an - optional string focus trigger, run the first matching set of steps from the following - list:

    + optional string focus trigger (default "other"), run the first + matching set of steps from the following list:

    If focus target is an area element with one or more shapes that are @@ -75022,28 +75023,28 @@ END:VCARD
      -
    1. If focus target is a shadow-including inclusive ancestor of the +
    2. If focus target is a shadow-including inclusive ancestor of the currently focused area of a top-level browsing context's DOM anchor, - then return null.

    3. + then return null.

      -
    4. -

      Otherwise:

      +
    5. Let autofocus delegate be the autofocus delegate for focus + target given focus trigger.

    6. -
        -
      1. If focus trigger is "click", then let possible - focus delegates be the list of all click focusable focusable areas whose DOM anchor is a descendant - of focus target in the flat tree.
      2. - -
      3. Otherwise, let possible focus delegates be the list of all focusable areas whose DOM anchor is a descendant - of focus target in the flat tree.
      4. - -
      5. Return the first focusable area in tree order of their DOM anchors in possible focus delegates, or null if - possible focus delegates is empty.
      6. -
      - +
    7. If autofocus delegate is not null, then return autofocus + delegate.

    8. + +
    9. If focus trigger is "click", then let possible + focus delegates be the list of all click focusable focusable areas whose DOM anchor is a descendant + of focus target in the flat tree.

    10. + +
    11. Otherwise, let possible focus delegates be the list of all focusable areas whose DOM anchor is a descendant + of focus target in the flat tree.

    12. + +
    13. Return the first focusable area in tree order of who their + DOM anchors are in possible focus delegates, or + null if possible focus delegates is empty.

    For sequential focusability, the @@ -75058,6 +75059,36 @@ END:VCARD

    Return null.

    +

    The autofocus delegate for a focus target given a focus + trigger is given by the following steps:

    + +
      +
    1. +

      For each descendant descendant of focus target, in + tree order:

      + +
        +
      1. If descendant does not have an autofocus content attribute, then + continue.

      2. + +
      3. Let focusable area be descendant, if descendant is a + focusable area; otherwise let focusable area be the result of getting the focusable area for descendant + given focus trigger.

      4. + +
      5. If focusable area is null, then continue.

      6. + +
      7. If focusable area is not click focusable and focus + trigger is "click", then continue.

      8. + +
      9. Return focusable area.

      10. +
      +
    2. + +
    3. Return null.

    4. +
    +

    The focusing steps for an object new focus target that is either a focusable area, or an element that is not a focusable area, or a browsing context, are as follows. They can optionally be run with a fallback From 7a131a57f979ceb716ebb229e123f79859ded0d8 Mon Sep 17 00:00:00 2001 From: Andreu Botella Date: Thu, 14 Oct 2021 00:08:22 -0700 Subject: [PATCH 10/25] Variable agentCluster is not defined in StructuredSerializeInternal This regressed in cbcf6ac32e1b4ef85a78a6d93350303bbe598294. --- source | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source b/source index 786daa581b9..08abdc4bdbe 100644 --- a/source +++ b/source @@ -8251,7 +8251,7 @@ interface DOMStringList {

  • Set serialized to { [[Type]]: "SharedArrayBuffer", [[ArrayBufferData]]: value.[[ArrayBufferData]], [[ArrayBufferByteLength]]: size, - [[AgentCluster]]: agentCluster }.

  • + [[AgentCluster]]: the surrounding agent's agent cluster }.

    From 5d515faf863d32fd520d6cdbb6c5d6fc90078fdd Mon Sep 17 00:00:00 2001 From: Rakina Zata Amni Date: Fri, 15 Oct 2021 00:56:51 +0900 Subject: [PATCH 11/25] Add notes for focus, etc. and non-fully active documents Fixes #5878. Clarifies that the focused element stays the same and is not reset when a document's fully active state is changed, and no events (focus/blur) are fired. Also clarifies that fully active does not impact "being rendered" or viewport intersection. --- source | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/source b/source index 08abdc4bdbe..0faf32e4911 100644 --- a/source +++ b/source @@ -74554,6 +74554,10 @@ END:VCARD area of the document. Which control is so designated changes over time, based on algorithms in this specification.

    +

    Even if a document is not fully active and not shown to the user, it + can still have a focused area of the document. If a document's fully + active state changes, its focused area of the document will stay the same.

    +

    The currently focused area of a top-level browsing context topLevelBC at any particular time is the focusable area-or-null returned by this algorithm:

    @@ -115847,9 +115851,19 @@ console.assert(container.firstChild instanceof SuperP); means the element is not being rendered, though this might be overridden by the style sheets.

    +

    The fully active state does not affect whether an element is + being rendered or not. Even if a document is not fully active and not + shown at all to the user, elements within it can still qualify as "being rendered".

    +

    An element is said to intersect the viewport when it is being rendered and its associated CSS layout box intersects the viewport.

    +

    Similar to the being rendered state, elements in non-fully + active documents can still intersect the viewport. The viewport + is not shared between documents and might not always be shown to the user, so an element in a + non-fully active document can still intersect the viewport associated + with its document.

    +

    This specification does not define the precise timing for when the intersection is tested, but it is suggested that the timing match that of the Intersection Observer API.

    From cff6451b0750e42b0b631220075bf84dd1c92885 Mon Sep 17 00:00:00 2001 From: Anne van Kesteren Date: Fri, 15 Oct 2021 18:18:37 +0200 Subject: [PATCH 12/25] Editorial: do not use concept members as types In particular, scheme and port are members of the URL concept. Fixes #7221. --- source | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/source b/source index 0faf32e4911..994603af008 100644 --- a/source +++ b/source @@ -2160,6 +2160,7 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute identical to
  • scalar value string
  • convert
  • +
  • ASCII string
  • ASCII whitespace
  • control
  • ASCII digit
  • @@ -81930,12 +81931,12 @@ interface BarProp {

    A tuple consists of:

      -
    • A scheme (a - scheme).
    • +
    • A scheme (an ASCII + string).
    • A host (a host).
    • -
    • A port (a - port).
    • +
    • A port (null or a 16-bit + unsigned integer).
    • A domain (null or a domain). Null unless stated otherwise.
    @@ -82084,8 +82085,8 @@ interface BarProp {

    Sites

    -

    A scheme-and-host is a tuple of a scheme and a host.

    +

    A scheme-and-host is a tuple of an ASCII string and a + host.

    A site is an opaque origin or a scheme-and-host.

    From a8be76ce5fdab25f9afce94b4563ecdc4598d817 Mon Sep 17 00:00:00 2001 From: Domenic Denicola Date: Wed, 20 Jan 2021 16:12:28 -0500 Subject: [PATCH 13/25] Editorial: fix a couple worklets typos --- source | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source b/source index 994603af008..048bff7b1c2 100644 --- a/source +++ b/source @@ -103169,7 +103169,7 @@ interface WorkerLocation {
    @@ -87012,8 +87012,8 @@ interface Location { // but see also

    Otherwise, the document's type is such that the resource will not affect browsingContext, e.g., because the resource is to be handed to an external application or because it is an unknown type that will be processed as a download. - Hand-off to external software given response and - hasTransientActivation.

    + Hand-off to external software given response, browsingContext, + navigationParams's final sandboxing flag + set, and hasTransientActivation.

    To process a navigate URL scheme, given a URL url, a - browsing context browsingContext, and a boolean - hasTransientActivation:

    + browsing context browsingContext, a sandboxing flag set + sandboxFlags, and a boolean hasTransientActivation:

    1. If url is to be handled using a mechanism that does not affect browsingContext, e.g., because url's scheme is handled externally, then hand-off to external - software given url and hasTransientActivation.

    2. + software given url, browsingContext, sandboxFlags, and + hasTransientActivation.

    3. Otherwise, url is to be handled by displaying some sort of inline content, e.g., @@ -87252,17 +87254,48 @@ interface Location { // but see also response resource and a boolean - hasTransientActivation, user agents should perform the appropriate handoff of - resource while attempting to mitigate the risk that this is an attempt to exploit the - target software. For example, user agents could prompt the user to confirm that the source - browsing context's active document's origin is to be allowed to invoke the external software in - question. In particular, if hasTransientActivation is false, then the user agent should - not invoke the external software package without prior user confirmation.

      - -

      For example, there could be a vulnerability in the target software's URL - handler which a hostile page would attempt to exploit by tricking a user into clicking a link.

      + data-x="concept-response">response resource, a browsing context + browsingContext, a sandboxing flag set sandboxFlags, and a + boolean hasTransientActivation, user agents should:

      + +
        +
      1. +

        If browsingContext is not a top-level browsing context, and none + of:

        + +
          +
        • sandboxFlags contains the allow-top-navigation-by-user-activation + token and hasTransientActivation is true

        • + +
        • sandboxFlags contains the allow-top-navigation token

        • + +
        • sandboxFlags contains the allow-popups token

        • +
        + +

        hold, then return without invoking the external software package.

        + +

        Navigation inside an iframe toward external software can be seen by users as a + new popup or a new top-level navigation. Therefore, we enforcing sandbox flags + appropriately.

        +
      2. + +
      3. +

        Perform the appropriate handoff of resource while attempting to mitigate the risk + that this is an attempt to exploit the target software. For example, user agents could prompt + the user to confirm that the source browsing context's active + document's origin is to be allowed to + invoke the external software in question. In particular, if hasTransientActivation is + false, then the user agent should not invoke the external software package without prior user + confirmation.

        + +

        For example, there could be a vulnerability in the target software's URL + handler which a hostile page would attempt to exploit by tricking a user into clicking a + link.

        +
      4. +

      To execute a javascript: URL request, given a request request, a browsing @@ -126429,6 +126462,7 @@ INSERT INTERFACES HERE Arne Thomassen, Aron Spohr, Arphen Lin, + Arthur Sonzogni, Arthur Stolyar, Arun Patole, Aryeh Gregor, From 3285b988b8e962d9692e547fd3101ceb23cb1cb6 Mon Sep 17 00:00:00 2001 From: Noam Rosenthal Date: Fri, 15 Oct 2021 20:47:58 +0300 Subject: [PATCH 15/25] Fire visibilitychange events explicitly Fire the event when unloading or traversing history, instead of relying on hooks in other specs. See https://github.com/w3c/page-visibility/issues/51 and https://github.com/w3c/page-visibility/pull/73. --- source | 59 +++++++++++++++++++++++++++++----------------------------- 1 file changed, 30 insertions(+), 29 deletions(-) diff --git a/source b/source index 8fe847be5d1..8037a5fa278 100644 --- a/source +++ b/source @@ -9315,6 +9315,7 @@ partial interface Document { // special event handler IDL attributes that only apply to Document objects [LegacyLenientThis] attribute EventHandler onreadystatechange; + attribute EventHandler onvisibilitychange; // also has obsolete members }; @@ -88453,13 +88454,9 @@ new PaymentRequest(…); // Allowed to use

    4. Set newDocument's page showing flag to true.

    5. -
    6. -

      Run any session history document visibility change steps for - newDocument that are defined by other applicable specifications.

      - -

      This is specifically intended for use by Page Visibility.

      -
    7. +
    8. Fire an event named visibilitychange at + newDocument, with its bubbles attribute + initialized to true.

    9. Fire a page transition event named pageshow at newDocument's relevant global @@ -88912,40 +88909,36 @@ dictionary PageTransitionEventInit : EventInit

      Increase document's unload counter by 1.

    10. -
    11. If document's page showing flag is false, then jump to the - step labeled unload event below (i.e. skip firing the pagehide event and don't rerun the unloading document - visibility change steps).

    12. - -
    13. Set document's page showing flag to false.

    14. -
    15. If the user agent does not intend to keep document alive in a session history entry (such that it can be reused later on history traversal), set document's salvageable state to false.

    16. -
    17. Fire a page transition event named pagehide at document's relevant global - object with document's salvageable - state.

    18. -
    19. -

      Run any unloading document visibility change steps for document that - are defined by other applicable specifications.

      +

      If document's page showing flag is true:

      -

      This is specifically intended for use by Page Visibility. -

      -
    20. +
        +
      1. Set document's page showing flag to false.

      2. + +
      3. Fire a page transition event named pagehide at document's relevant global + object with document's salvageable state.

      4. + +
      5. Fire an event named visibilitychange at + newDocument, with its bubbles attribute + initialized to true.

      6. +
      +
    21. If unloadTimingInfo is not null, then set unloadTimingInfo's unload event start time to the current high resolution time given document's relevant global object.

    22. -
    23. Unload event: If document's salvageable state is false, then fire an event named unload - at document's relevant global object, with legacy target override - flag set.

    24. +
    25. If document's salvageable state is + false, then fire an event named + unload at document's + relevant global object, with legacy target override flag set.

    26. If unloadTimingInfo is not null, then set unloadTimingInfo's unload event end time to the current high resolution time given @@ -95130,6 +95123,7 @@ typedef OnBeforeUnloadEventHandlerNonNull? OnBeforeUnl Event handler Event handler event type onreadystatechange readystatechange + onvisibilitychange visibilitychange @@ -125586,6 +125580,13 @@ INSERT INTERFACES HERE Window Fired at the Window object when the page is going away + + visibilitychange + Event + Document + Fired at the Document object when the page becomes visible or hidden to the + user. +

      See also media element events and Date: Mon, 18 Oct 2021 11:31:35 +0200 Subject: [PATCH 16/25] Correct recommendations to escape script in literals Fixes #7179. --- source | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/source b/source index 8037a5fa278..623ad58c132 100644 --- a/source +++ b/source @@ -59464,9 +59464,9 @@ o............A....e

      The easiest and safest way to avoid the rather strange restrictions described in this section is to always escape an ASCII case-insensitive match for "<!--" as "<\!--", "<script" as "<\script", and "</script" as "<\/script" when these sequences appear + data-x=""><!--" as "\x3C!--", "<script" as "\x3Cscript", and "</script" as "\x3C/script" when these sequences appear in literals in scripts (e.g. in strings, regular expressions, or comments), and to avoid writing code that uses such constructs in expressions. Doing so avoids the pitfalls that the restrictions in this section are prone to triggering: namely, that, for historical reasons, parsing of @@ -59516,14 +59516,14 @@ tag-end =/ %x003E ; U+003E GREATER-THAN SIGN (>)

      The following script illustrates this issue. Suppose you have a script that contains a string, as in:

      -
      var example = 'Consider this string: <!-- <script>';
      +   
      const example = 'Consider this string: <!-- <script>';
       console.log(example);

      If one were to put this string directly in a script block, it would violate the restrictions above:

      <script>
      -  var example = 'Consider this string: <!-- <script>';
      +  const example = 'Consider this string: <!-- <script>';
         console.log(example);
       </script>
      @@ -59535,7 +59535,7 @@ console.log(example);
      fail because the script (highlighted here) is not valid JavaScript:

      <script>
      -  var example = 'Consider this string: <!-- <script>';
      +  const example = 'Consider this string: <!-- <script>';
         console.log(example);
       </script>
       <!-- despite appearances, this is actually part of the script still! -->
      @@ -59551,8 +59551,8 @@ console.log(example);
      avoided entirely:

      <script>
      -  // Note: `\s` is an escape sequence for `s`.
      -  var example = 'Consider this string: <\!-- <\script>';
      +  // Note: `\x3C` is an escape sequence for `<`.
      +  const example = 'Consider this string: \x3C!-- \x3Cscript>';
         console.log(example);
       </script>
       <!-- this is just a comment between script blocks -->
      
      From 175007c0799601a0f5f76e7abefe378c13464b13 Mon Sep 17 00:00:00 2001
      From: Anne van Kesteren 
      Date: Mon, 18 Oct 2021 15:54:50 +0200
      Subject: [PATCH 17/25] Meta: update reference to Intersection Observer issue
      
      ---
       source | 8 ++++----
       1 file changed, 4 insertions(+), 4 deletions(-)
      
      diff --git a/source b/source
      index 623ad58c132..1f2e56f4ec0 100644
      --- a/source
      +++ b/source
      @@ -7090,7 +7090,7 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
           IntersectionObserver constructor. However, we're forced to use the
           JavaScript-exposed constructor in this specification, until Intersection Observer
           exposes low-level hooks for use in specifications. See bug w3c/IntersectionObserver#427
      +    href="https://github.com/w3c/IntersectionObserver/issues/464">w3c/IntersectionObserver#464
           which tracks this. 

        @@ -7128,7 +7128,7 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute

        The intention is to use the original value of the isIntersecting and target getters. See w3c/IntersectionObserver#427. + href="https://github.com/w3c/IntersectionObserver/issues/464">w3c/IntersectionObserver#464.

    @@ -7157,7 +7157,7 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute

    The intention is to use the original value of the observe method. See w3c/IntersectionObserver#427. + href="https://github.com/w3c/IntersectionObserver/issues/464">w3c/IntersectionObserver#464.

    @@ -7178,7 +7178,7 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute

    The intention is to use the original value of the unobserve method. See w3c/IntersectionObserver#427. + href="https://github.com/w3c/IntersectionObserver/issues/464">w3c/IntersectionObserver#464.

    From 8e301e869267552cf71fad39dd784d4e0b3f6729 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= Date: Mon, 18 Oct 2021 17:30:46 +0200 Subject: [PATCH 18/25] Tweak definition Closes #7213. See also https://github.com/w3c/csswg-drafts/pull/6731. --- source | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/source b/source index 1f2e56f4ec0..10141ecee58 100644 --- a/source +++ b/source @@ -3779,6 +3779,7 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
    • 'color-scheme'
    • +
    • page's supported color-schemes

    The following term is defined in CSS Pseudo-Elements:

    @@ -14591,8 +14592,7 @@ interface HTMLMetaElement : HTMLElement { be provided in a meta element.

    The value must be a string that matches the syntax for the CSS 'color-scheme' - property value, and will be cascaded with the color-scheme declarations for the document root - element as described below.

    + property value. It determines the page's supported color-schemes.

    There must not be more than one meta element with its name attribute value set to an @@ -14608,7 +14608,7 @@ interface HTMLMetaElement : HTMLElement {

    -

    To obtain a page's color-scheme, user agents must run the following steps:

    +

    To obtain a page's supported color-schemes, user agents must run the following steps:

    1. @@ -14633,11 +14633,11 @@ interface HTMLMetaElement : HTMLElement { content attribute.
    2. If parsed is a valid CSS 'color-scheme' property value, then - treat that value as a declaration of the CSS 'color-scheme' property on - element's root, cascaded as a presentational hint, and return.
    3. + return parsed.
    + +
  • Return null.

  • If any meta elements are path

  • query
  • fragment
  • -
  • cannot-be-a-base-URL
  • blob URL entry
  • valid URL string
  • The cannot have a username/password/port concept
  • +
  • The opaque path concept
  • URL serializer and its exclude fragment argument
  • +
  • URL path serializer
  • The host parser
  • The host serializer
  • Host equals
  • @@ -23393,8 +23394,8 @@ document.body.appendChild(wbr);
    1. If element's url is non-null, its scheme is "blob", and its - cannot-be-a-base-URL is true, terminate these steps.

    2. + data-x="concept-url-scheme">scheme is "blob", and it has an + opaque path, then terminate these steps.

    3. Set the url.

    @@ -23568,8 +23569,8 @@ document.body.appendChild(wbr);
  • Let url be this element's url.

  • -
  • If url is null or url's cannot-be-a-base-URL is true, - then return.

  • +
  • If url is null or url has an opaque path, then + return.

  • Basic URL parse the given value, with url as url and host @@ -23604,8 +23605,8 @@ document.body.appendChild(wbr);

  • Let url be this element's url.

  • -
  • If url is null or url's cannot-be-a-base-URL is true, - then return.

  • +
  • If url is null or url has an opaque path, then + return.

  • Basic URL parse the given value, with url as url and hostname @@ -23662,17 +23663,10 @@ document.body.appendChild(wbr);

  • Let url be this element's url.

  • -
  • If url is null, return the empty string.

  • - -
  • If url's cannot-be-a-base-URL is true, then return - url's path[0].

  • - -
  • If url's path is empty, then return the - empty string.

  • +
  • If url is null, then return the empty string.

  • -
  • Return "/", followed by the strings in url's path (including empty strings), separated from each other by - "/".

  • +
  • Return the result of URL path serializing + url.

  • The pathname attribute's setter must run these @@ -23684,8 +23678,8 @@ document.body.appendChild(wbr);

  • Let url be this element's url.

  • -
  • If url is null or url's cannot-be-a-base-URL is true, - then return.

  • +
  • If url is null or url has an opaque path, then + return.

  • Set url's path to the empty list.

  • @@ -85800,7 +85794,7 @@ interface Location { // but see also url.

    -
  • If copyURL's cannot-be-a-base-URL is true, then return.

  • +
  • If copyURL has an opaque path, then return.

  • Basic URL parse the given value, with copyURL as url and host @@ -85843,7 +85837,7 @@ interface Location { // but see also url.

  • -
  • If copyURL's cannot-be-a-base-URL is true, then return.

  • +
  • If copyURL has an opaque path, then return.

  • Basic URL parse the given value, with copyURL as url and hostname @@ -85909,18 +85903,8 @@ interface Location { // but see also origin, then throw a "SecurityError" DOMException.

  • -
  • Let url be this Location object's url.

  • - -
  • If url's cannot-be-a-base-URL is true, then return - url's path[0].

  • - -
  • If url's path is empty, then return the - empty string.

  • - -
  • Return "/", followed by the strings in url's path (including empty strings), separated from each other by - "/".

  • +
  • Return the result of URL path serializing this + Location object's url.

  • The pathname attribute's setter must run these @@ -85938,7 +85922,7 @@ interface Location { // but see also url.

    -
  • If copyURL's cannot-be-a-base-URL is true, then return.

  • +
  • If copyURL has an opaque path, then return.

  • Set copyURL's path to the empty list.

  • @@ -103069,21 +103053,10 @@ interface WorkerLocation {

    The pathname attribute's getter must run these - steps:

    - -
      -
    1. Let url be the associated WorkerGlobalScope object's - url.

    2. - -
    3. If url's cannot-be-a-base-URL is true, then return - url's path[0].

    4. - -
    5. Return "/", followed by the strings in url's path (including empty strings), separated from each other by - "/".

    6. -
    + data-x="dom-WorkerLocation-pathname">pathname getter steps are to return the result + of URL path serializing the associated WorkerGlobalScope object's + url.

    The search attribute's getter must run these From c4ec84c5735e42f0111437d3fe85867d94a3b190 Mon Sep 17 00:00:00 2001 From: Yi Xu <34253055+yiyix@users.noreply.github.com> Date: Wed, 20 Oct 2021 17:43:32 +0000 Subject: [PATCH 20/25] Rename canvas CSS text modifier property names MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit textLetterSpacing → letterSpacing, and textWordSpacing → wordSpacing. Closes #5617. --- source | 54 +++++++++++++++++++++++++++--------------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/source b/source index b5a742d306c..32562c0d973 100644 --- a/source +++ b/source @@ -61024,12 +61024,12 @@ interface mixin CanvasTextDrawingStyles { attribute CanvasTextAlign textAlign; // (default: "start") attribute CanvasTextBaseline textBaseline; // (default: "alphabetic") attribute CanvasDirection direction; // (default: "inherit") - attribute double textLetterSpacing; // (default: 0) - attribute double textWordSpacing; // (default: 0) + attribute double letterSpacing; // (default: 0) attribute CanvasFontKerning fontKerning; // (default: "auto") attribute CanvasFontStretch fontStretch; // (default: "normal") attribute CanvasFontVariantCaps fontVariantCaps; // (default: "normal") attribute CanvasTextRendering textRendering; // (default: "auto") + attribute double wordSpacing; // (default: 0) }; interface mixin CanvasPath { @@ -61485,12 +61485,12 @@ context.fillRect(100,0,50,50); // only this square remains data-x="dom-context-2d-textAlign">textAlign, textBaseline, direction, textLetterSpacing, textWordSpacing, letterSpacing, fontKerning, fontStretch, fontVariantCaps, textRendering, wordSpacing, imageSmoothingEnabled, imageSmoothingQuality.

  • The current dash list.
  • @@ -62017,8 +62017,8 @@ transform. ack Shaun Morris. --> data-x="dom-context-2d-direction-inherit">inherit".

    -
    context.textLetterSpacing [ = value ]
    -
    styles.textLetterSpacing [ = value ]
    +
    context.letterSpacing [ = value ]
    +
    styles.letterSpacing [ = value ]

    Returns the current spacing between characters in the text.

    @@ -62026,15 +62026,6 @@ transform. ack Shaun Morris. --> apart, while negative values brings them closer together. The default is 0.

    -
    context.textWordSpacing [ = value ]
    -
    styles.textWordSpacing [ = value ]
    -
    -

    Returns the current spacing between words in the text.

    - -

    Can be set, to change spacing between words. Postive values spreads words further apart, - while negative values brings them closer together. The default is 0.

    -
    -
    context.fontKerning [ = value ]
    styles.fontKerning [ = value ]
    @@ -62074,6 +62065,15 @@ transform. ack Shaun Morris. --> below. Other values are ignored. The default is "auto".

    + +
    context.wordSpacing [ = value ]
    +
    styles.wordSpacing [ = value ]
    +
    +

    Returns the current spacing between words in the text.

    + +

    Can be set, to change spacing between words. Postive values spreads words further apart, + while negative values brings them closer together. The default is 0.

    +
    @@ -62226,19 +62226,11 @@ worker.postMessage(offscreenCanvas, [offscreenCanvas]); data-x="dom-context-2d-direction-inherit">inherit".

    The textLetterSpacing IDL attribute, on - getting, must return the current value. On setting, the current value must be changed to the new - value, where values may be positive or negative. When the object implementing the - CanvasTextDrawingStyles interface is created, - the textLetterSpacing attribute must - initially have the value 0.

    - -

    The textWordSpacing IDL attribute, on + data-x="dom-context-2d-letterSpacing">letterSpacing IDL attribute, on getting, must return the current value. On setting, the current value must be changed to the new value, where values may be positive or negative. When the object implementing the CanvasTextDrawingStyles interface is created, - the textWordSpacing attribute must + the letterSpacing attribute must initially have the value 0.

    The value. When the object implementing the CanvasTextDrawingStyles interface is created, the textRendering attribute must initially have the value "auto".

    + +

    The wordSpacing IDL attribute, on + getting, must return the current value. On setting, the current value must be changed to the new + value, where values may be positive or negative. When the object implementing the + CanvasTextDrawingStyles interface is created, + the wordSpacing attribute must + initially have the value 0.

    The textAlign attribute's allowed keywords are @@ -62529,7 +62529,7 @@ worker.postMessage(offscreenCanvas, [offscreenCanvas]); 'letter-spacing' - target's textLetterSpacing + target's letterSpacing SVG text-rendering @@ -62541,7 +62541,7 @@ worker.postMessage(offscreenCanvas, [offscreenCanvas]); 'word-spacing' - target's textWordSpacing + target's wordSpacing From 436234246bd8aa40c01c3547f3bd1c6d64b9c62f Mon Sep 17 00:00:00 2001 From: Andrew Paseltiner Date: Thu, 21 Oct 2021 11:30:02 -0400 Subject: [PATCH 21/25] Define an algorithm for serializing a site Closes #7250. --- source | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/source b/source index 32562c0d973..7259498710e 100644 --- a/source +++ b/source @@ -82104,6 +82104,29 @@ interface BarProp { domain).

    +

    The serialization of a site is the string obtained + by applying the following algorithm to the given site site:

    + +
      +
    1. If site is an opaque origin, then + return "null".

    2. + +
    3. Let result be site[0].

    4. + +
    5. Append "://" to result.

    6. + +
    7. Append site[1], serialized, to + result.

    8. + +
    9. Return result.

    10. +
    + +

    It needs to be clear from context that the serialized value is a site, not an + origin, as there is not necessarily a syntactic difference between the two. For example, the + origin ("https", "shop.example", null, null) and + the site ("https", "shop.example") have the same + serialization: "https://shop.example".

    +

    Two origins, A and B, are said to be schemelessly same site if the following algorithm returns true:

    @@ -126409,6 +126432,7 @@ INSERT INTERFACES HERE Andrew Grieve, Andrew Macpherson, Andrew Oakley, + Andrew Paseltiner, Andrew Simons, Andrew Smith, Andrew W. Hagen, From 38cc2ed1c3e2f19ea59be3d39367cc8c60b47450 Mon Sep 17 00:00:00 2001 From: Henri Sivonen Date: Wed, 13 Oct 2021 10:42:30 +0300 Subject: [PATCH 22/25] List "Chinese, Simplified" and "Chinese, Traditional" For historical reasons going back to Netscape days and predating the introduction of the Hans and Hant tags, Firefox and Chrome localizations don't use Hans and Hant to designate the Simplified Chinese and Traditional Chinese localizations. The previous conclusion of omitting SG, HK, and MO due to the resulting mismatch with Vista locales was incorrect. --- source | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/source b/source index 7259498710e..0e8b6b93a61 100644 --- a/source +++ b/source @@ -106779,23 +106779,13 @@ dictionary StorageEventInit : EventInit { - zh-CN - Chinese (People's Republic of China) + zh-Hans, zh-CN, zh-SG + Chinese, Simplified GBK - - - - - - - - - - - zh-TW - Chinese (Taiwan) + zh-Hant, zh-HK, zh-MO, zh-TW + Chinese, Traditional Big5 From 997aa36a3a4b83e133ae256ec7dc3abe998e1a0f Mon Sep 17 00:00:00 2001 From: Anne van Kesteren Date: Mon, 25 Oct 2021 11:57:39 +0200 Subject: [PATCH 23/25] Editorial: correct variable name in form submission See #7256 for context. --- source | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source b/source index 0e8b6b93a61..48b5f786490 100644 --- a/source +++ b/source @@ -56683,7 +56683,7 @@ fur submitter's form owner.

  • Let noopener be the result of getting - an element's noopener with form and targetAttributeValue.

  • + an element's noopener with form and target.

  • Let target browsing context and windowType be the result of applying the rules for choosing a browsing context using target, From 217c973271598034611d0299dbd00b54d528f877 Mon Sep 17 00:00:00 2001 From: Anne van Kesteren Date: Mon, 25 Oct 2021 16:28:17 +0200 Subject: [PATCH 24/25] Restore extracting a MIME type for scripts This regressed in 3d45584d286e9455cc24ebae1f3aca3db120dc9d. --- source | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/source b/source index 48b5f786490..b991d35a02f 100644 --- a/source +++ b/source @@ -91597,6 +91597,10 @@ document.querySelector("button").addEventListener("click", bound);

  • Let source text be the result of UTF-8 decoding response's body.

  • +
  • Let MIME type be the result of extracting a + MIME type from response's header + list.

  • +
  • Let module script be null.

  • If MIME type is a JavaScript MIME type and module type @@ -91605,10 +91609,10 @@ document.querySelector("button").addEventListener("click", bound); settings object, response's url, and options.

  • -
  • If the MIME type essence of MIME type is text/css and - module type is "css", then set module script to the - result of creating a CSS module script given source text and module - map settings object.

  • +
  • If the MIME type essence of MIME type is "text/css" + and module type is "css", then set module script to + the result of creating a CSS module script given source text and + module map settings object.

  • If MIME type essence is a JSON MIME type and module type is "json", then set module script to the result of From 7fcb4ea5ba78b9d73f34e9c5077594f353c20858 Mon Sep 17 00:00:00 2001 From: Anne van Kesteren Date: Mon, 25 Oct 2021 17:54:08 +0200 Subject: [PATCH 25/25] Editorial: align with Fetch's change to tuples See https://github.com/whatwg/fetch/pull/1339 for context. --- source | 57 +++++++++++++++++++++++++++++++++------------------------ 1 file changed, 33 insertions(+), 24 deletions(-) diff --git a/source b/source index b991d35a02f..acdfa3123cb 100644 --- a/source +++ b/source @@ -2172,6 +2172,7 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute

  • ASCII alpha
  • ASCII alphanumeric
  • isomorphic decode
  • +
  • isomorphic encode
  • ASCII lowercase
  • ASCII uppercase
  • ASCII case-insensitive
  • @@ -30701,9 +30702,9 @@ interface HTMLIFrameElement : HTMLElement {

    Navigate to the srcdoc resource: navigate an iframe or frame given element and a new response whose URL - list consists of about:srcdoc, header list consists of `Content-Type`/`text/html`, and is « about:srcdoc », header list is « (`Content-Type`, `text/html`) », and body is the value of element's srcdoc attribute.

    @@ -56818,7 +56819,7 @@ fur

    Set body to the result of encoding body.

    -

    Let MIME type be "application/x-www-form-urlencoded".

    +

    Let mimeType be `application/x-www-form-urlencoded`.

    multipart/form-data
    @@ -56828,11 +56829,11 @@ fur data-x="">multipart/form-data encoding algorithm with entry list and encoding.

    -

    Let MIME type be the concatenation of the string "multipart/form-data;", a U+0020 SPACE character, the string "boundary=", and the multipart/form-data - boundary string generated by the multipart/form-data - encoding algorithm.

    +

    Let mimeType be the isomorphic + encoding of the concatenation of "multipart/form-data; boundary=" and the multipart/form-data boundary string generated by the multipart/form-data encoding algorithm.

    text/plain
    @@ -56847,15 +56848,15 @@ fur

    Set body to the result of encoding body using encoding.

    -

    Let MIME type be "text/plain".

    +

    Let mimeType be `text/plain`.

    Plan to navigate to a new request whose URL is parsed action, method is method, header list consists of `Content-Type`/MIME type, and header list is « (`Content-Type`, mimeType) », and body is body.

    @@ -87374,8 +87375,8 @@ interface Location { // but see also
    Type(result) is String, then set response to a response whose header list consists of - `Content-Type`/`text/html;charset=utf-8`, and whose header list is « (`Content-Type`, + `text/html;charset=utf-8`) », and whose body is the result of UTF-8 encoding result.

    @@ -98664,8 +98665,8 @@ dictionary EventSourceInit {
  • Set request's client to settings.

  • -
  • User agents may set `Accept`/`text/event-stream` in request's +

  • User agents may set (`Accept`, `text/event-stream`) in request's header list.

  • Set request's cache mode to @@ -98844,18 +98845,26 @@ dictionary EventSourceInit {

    1. If the EventSource object's readyState attribute is not set to CONNECTING, return.

    2. + data-x="dom-EventSource-CONNECTING">CONNECTING, then return.

    3. Let request be the EventSource object's request. -

    4. If the EventSource object's last event ID string is not the empty - string, set `Last-Event-ID`/last event ID string, encoded as UTF-8, in request's header list.

    5. +
    6. +

      If the EventSource object's last event ID string is not the empty + string, then:

      + +
        +
      1. Let lastEventIDValue be the EventSource object's last event ID string, encoded as UTF-8.

      2. + +
      3. Set (`Last-Event-ID`, lastEventIDValue) in + request's header list.

      4. +
      +
    7. Fetch request and process the response obtained in this fashion, if any, as described earlier in this section.