diff --git a/docs/index.bs b/docs/index.bs index f033f7a4..ee1e9f8c 100644 --- a/docs/index.bs +++ b/docs/index.bs @@ -866,6 +866,7 @@ spec: webappsec-referrer-policy; urlPrefix: https://w3c.github.io/webappsec-refe interface Client { readonly attribute USVString url; readonly attribute DOMString id; + readonly attribute ClientType type; readonly attribute boolean reserved; void postMessage(any message, optional sequence<object> transfer = []); }; @@ -902,6 +903,16 @@ spec: webappsec-referrer-policy; urlPrefix: https://w3c.github.io/webappsec-refe The id attribute *must* return its associated [=Client/service worker client=]'s [=environment/id=]. +
+

{{Client/type}}

+ + The type attribute *must* run these steps: + + 1. If the [=context object=]'s [=Client/service worker client=] is a type of [=environment=] or is a [=window client=], return {{ClientType/"window"}}. + 1. Else if the [=context object=]'s [=Client/service worker client=] is a [=dedicated worker client=], return {{ClientType/"worker"}}. + 1. Else if the [=context object=]'s [=Client/service worker client=] is a [=shared worker client=], return {{ClientType/"sharedworker"}}. +
+

{{Client/reserved}}

diff --git a/docs/index.html b/docs/index.html index 6da3221c..f9b5e90f 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1424,7 +1424,7 @@

Service Workers Nightly

-

Editor’s Draft,

+

Editor’s Draft,

This version: @@ -1546,13 +1546,14 @@

Table of Contents

  1. 4.2.1 url
  2. 4.2.2 id -
  3. 4.2.3 reserved -
  4. 4.2.4 postMessage(message, transfer) -
  5. 4.2.5 visibilityState -
  6. 4.2.6 focused -
  7. 4.2.7 ancestorOrigins -
  8. 4.2.8 focus() -
  9. 4.2.9 navigate(url) +
  10. 4.2.3 type +
  11. 4.2.4 reserved +
  12. 4.2.5 postMessage(message, transfer) +
  13. 4.2.6 visibilityState +
  14. 4.2.7 focused +
  15. 4.2.8 ancestorOrigins +
  16. 4.2.9 focus() +
  17. 4.2.10 navigate(url)
  • 4.3 Clients @@ -2406,6 +2407,7 @@

    interface Client { readonly attribute USVString url; readonly attribute DOMString id; + readonly attribute ClientType type; readonly attribute boolean reserved; void postMessage(any message, optional sequence<object> transfer = []); }; @@ -2433,17 +2435,29 @@

    id attribute must return its associated service worker client's id.

  • -

    4.2.3. reserved

    +

    4.2.3. type

    +

    The type attribute must run these steps:

    +
      +
    1. +

      If the context object's service worker client is a type of environment or is a window client, return "window".

      +
    2. +

      Else if the context object's service worker client is a dedicated worker client, return "worker".

      +
    3. +

      Else if the context object's service worker client is a shared worker client, return "sharedworker".

      +
    +
    +
    +

    4.2.4. reserved

    The reserved attribute must return the context object’s associated reserved state.

    -

    4.2.4. postMessage(message, transfer)

    +

    4.2.5. postMessage(message, transfer)

    The postMessage(message, transfer) method must run these steps:

    1. Let sourceSettings be the context object’s relevant settings object.

    2. -

      Let destination be the ServiceWorkerContainer object whose service worker client is the context object’s service worker client.

      +

      Let destination be the ServiceWorkerContainer object whose service worker client is the context object’s service worker client.

    3. If destination is null, throw an "InvalidStateError" exception.

    4. @@ -2473,19 +2487,19 @@

    -

    4.2.5. visibilityState

    +

    4.2.6. visibilityState

    The visibilityState attribute must return the context object’s visibility state.

    -

    4.2.6. focused

    +

    4.2.7. focused

    The focused attribute must return the context object’s focus state.

    -

    4.2.7. ancestorOrigins

    -

    The ancestorOrigins attribute must return the context object’s associated service worker client's ancestor origins array.

    +

    4.2.8. ancestorOrigins

    +

    The ancestorOrigins attribute must return the context object’s associated service worker client's ancestor origins array.

    -

    4.2.8. focus()

    +

    4.2.9. focus()

    The focus() method must run these steps:

    1. @@ -2496,7 +2510,7 @@

      in parallel:

      1. -

        Let browsingContext be the context object’s associated service worker client's global object's browsing context.

        +

        Let browsingContext be the context object’s associated service worker client's global object's browsing context.

      2. Let visibilityState be null.

      3. @@ -2504,7 +2518,7 @@

        Let ancestorOrigins be the empty array.

      4. -

        Queue a task task to run the following substeps on the context object’s associated service worker client's responsible event loop using the user interaction task source:

        +

        Queue a task task to run the following substeps on the context object’s associated service worker client's responsible event loop using the user interaction task source:

        1. Run the focusing steps with browsingContext.

          @@ -2518,7 +2532,7 @@

          Wait for task to have executed.

        2. -

          Let windowClient be the result of running Create Window Client algorithm with the context object’s associated service worker client, visibilityState, focusState, and ancestorOrigins as the arguments.

          +

          Let windowClient be the result of running Create Window Client algorithm with the context object’s associated service worker client, visibilityState, focusState, and ancestorOrigins as the arguments.

        3. If windowClient’s focus state is true, resolve promise with windowClient.

        4. @@ -2529,7 +2543,7 @@

          -

          4.2.9. navigate(url)

          +

          4.2.10. navigate(url)

          The navigate() method must run these steps:

          1. @@ -2539,14 +2553,14 @@

            If url is about:blank, return a promise rejected with a TypeError.

          2. -

            If the context object’s associated service worker client's active service worker is not the context object’s relevant global object’s service worker, return a promise rejected with a TypeError.

            +

            If the context object’s associated service worker client's active service worker is not the context object’s relevant global object’s service worker, return a promise rejected with a TypeError.

          3. Let promise be a new promise.

          4. Run these substeps in parallel:

            1. -

              Let browsingContext be the context object’s associated service worker client's global object's browsing context.

              +

              Let browsingContext be the context object’s associated service worker client's global object's browsing context.

            2. If browsingContext has discarded its Document, reject promise with a TypeError and abort these steps.

            3. @@ -2558,7 +2572,7 @@

              Let ancestorOrigins be the empty array.

            4. -

              Queue a task task to run the following substeps on the context object’s associated service worker client's responsible event loop using the user interaction task source:

              +

              Queue a task task to run the following substeps on the context object’s associated service worker client's responsible event loop using the user interaction task source:

              1. HandleNavigate: Navigate browsingContext to url with exceptions enabled. The source browsing context must be browsingContext.

                @@ -2607,7 +2621,7 @@

                dictionary ClientQueryOptions { boolean includeUncontrolled = false; boolean includeReserved = false; - ClientType type = "window"; + ClientType type = "window"; };
                enum ClientType {
                @@ -2645,7 +2659,7 @@ 

                secure context, reject promise with a "SecurityError" exception and abort these steps.

            5. -

              If client is a type of environment or is a window client, then:

              +

              If client is a type of environment or is a window client, then:

              1. Let browsingContext be null.

                @@ -2667,7 +2681,7 @@

                Set focusState to the result of running the has focus steps with browsingContext’s active document as the argument.

              2. -

                If client is a window client, set ancestorOrigins to browsingContext’s active document’s relevant global object’s Location object’s ancestor origins array.

                +

                If client is a window client, set ancestorOrigins to browsingContext’s active document’s relevant global object’s Location object’s ancestor origins array.

            6. Wait for task to have executed.

              @@ -2739,7 +2753,7 @@

              service worker client client in targetClients:

              1. -

                If options.type is "window" or "all", and client is a type of environment or is a window client, then:

                +

                If options.type is "window" or "all", and client is a type of environment or is a window client, then:

                1. Let browsingContext be null.

                  @@ -2767,7 +2781,7 @@

                  Set focusState to the result of running the has focus steps with browsingContext’s active document as the argument.

                2. -

                  It client is a window client, set ancestorOrigins to browsingContext’s active document’s relevant global object’s Location object’s ancestor origins array.

                  +

                  It client is a window client, set ancestorOrigins to browsingContext’s active document’s relevant global object’s Location object’s ancestor origins array.

              2. Wait for task to have executed.

                @@ -2782,7 +2796,7 @@

                -

                Else if options.type is "worker" or "all" and client is a dedicated worker client, or options.type is "sharedworker" or "all" and client is a shared worker client, then:

                +

                Else if options.type is "worker" or "all" and client is a dedicated worker client, or options.type is "sharedworker" or "all" and client is a shared worker client, then:

                1. Let clientObject be the result of running Create Client algorithm with client as the argument.

                  @@ -2794,11 +2808,11 @@

                  -

                  WindowClient objects are always placed before Client objects whose associated service worker clients are worker clients.

                  +

                  WindowClient objects are always placed before Client objects whose associated service worker clients are worker clients.

                2. -

                  WindowClient objects that have been focused are placed first sorted in the most recently focused order, and WindowClient objects that have never been focused are placed next sorted in their service worker clients' creation order.

                  +

                  WindowClient objects that have been focused are placed first sorted in the most recently focused order, and WindowClient objects that have never been focused are placed next sorted in their service worker clients' creation order.

                3. -

                  Client objects whose associated service worker clients are worker clients are placed next sorted in their service worker clients' creation order.

                  +

                  Client objects whose associated service worker clients are worker clients are placed next sorted in their service worker clients' creation order.

                4. Resolve promise with matchedClients.

                  @@ -5025,9 +5039,9 @@

                  For each service worker client client whose creation URL matches registration’s scope url:

                  1. -

                    If client is a window client, unassociate client’s responsible document from its application cache, if it has one.

                    +

                    If client is a window client, unassociate client’s responsible document from its application cache, if it has one.

                  2. -

                    Else if client is a shared worker client, unassociate client’s global object from its application cache, if it has one.

                    +

                    Else if client is a shared worker client, unassociate client’s global object from its application cache, if it has one.

                  Note: Resources will now use the service worker registration instead of the existing application cache.

                5. @@ -5336,7 +5350,7 @@

                  If request is a navigation request, initialize e’s targetClientId attribute to request’s target client id, and to the empty string otherwise.

                6. -

                  Let the isReload attribute of e be initialized to true if request’s client is a window client and the event was dispatched with the user’s intention for the page reload, and false otherwise.

                  +

                  Let the isReload attribute of e be initialized to true if request’s client is a window client and the event was dispatched with the user’s intention for the page reload, and false otherwise.

                7. Dispatch e at activeWorker’s global object.

                8. @@ -6069,7 +6083,7 @@

                  <
                9. Let clientObject be a new Client object.

                10. -

                  Set clientObject’s service worker client to client.

                  +

                  Set clientObject’s service worker client to client.

                11. Set clientObject’s reserved state to true if client’s execution ready flag is unset, and false otherwise.

                12. @@ -6098,7 +6112,7 @@

                  Let windowClient be a new WindowClient object.

                13. -

                  Set windowClient’s service worker client to client.

                  +

                  Set windowClient’s service worker client to client.

                14. Set windowClient’s visibility state to visibilityState.

                15. @@ -6454,7 +6468,7 @@

                  add(request), in §6.4.3
                16. all, in §4.3
                17. "all", in §4.3 -
                18. ancestorOrigins, in §4.2.7 +
                19. ancestorOrigins, in §4.2.8
                20. ancestor origins array, in §4.2
                21. Batch Cache Operations, in §Unnumbered section
                22. Cache, in §6.4 @@ -6513,8 +6527,8 @@

                  FetchEvent(type, eventInitDict), in §4.6
                23. fetching record, in §6.1
                24. Finish Job, in §Unnumbered section -
                25. focus(), in §4.2.8 -
                26. focused, in §4.2.6 +
                27. focus(), in §4.2.9 +
                28. focused, in §4.2.7
                29. focus state, in §4.2
                30. force bypass cache flag, in §Unnumbered section
                31. foreignfetch, in §4.9 @@ -6631,7 +6645,7 @@

                  Match Service Worker Registration, in §Unnumbered section
                32. message, in §4.9
                33. name to cache map, in §6.1 -
                34. navigate(url), in §4.2.9 +
                35. navigate(url), in §4.2.10
                36. Notify Controller Change, in §Unnumbered section
                37. onactivate, in §4.1.4
                38. oncontrollerchange, in §3.4.7 @@ -6667,12 +6681,12 @@

                  dict-member for ExtendableMessageEventInit, in §4.8
                39. attribute for ExtendableMessageEvent, in §4.8.5 -
                40. postMessage(message), in §4.2.4 +
                41. postMessage(message), in §4.2.5
                42. postMessage(message, transfer)
                43. potential response @@ -6712,7 +6726,7 @@

                  dict-member for CacheBatchOperation, in §6.4
                44. request to response map, in §6.1 -
                45. reserved, in §4.2.3 +
                46. reserved, in §4.2.4
                47. reservedClientId @@ -6855,7 +6870,7 @@

                  uses, in §2.4
                48. using, in §2.4
                49. visibility state, in §4.2 -
                50. visibilityState, in §4.2.5 +
                51. visibilityState, in §4.2.6
                52. waiting, in §3.2.2
                53. waiting worker, in §2.2
                54. @@ -7332,6 +7347,7 @@

                  I interface Client { readonly attribute USVString url; readonly attribute DOMString id; + readonly attribute ClientType type; readonly attribute boolean reserved; void postMessage(any message, optional sequence<object> transfer = []); }; @@ -7887,25 +7903,28 @@

                  #dfn-window-clientReferenced in: @@ -8174,7 +8193,7 @@

                  3.4.4. getRegistration(clientURL)
                55. 3.4.5. getRegistrations()
                56. 3.5. Events -
                57. 4.2.4. postMessage(message, transfer) +
                58. 4.2.5. postMessage(message, transfer)
                59. 5.1. Processing
                60. Notify Controller Change @@ -8191,7 +8210,7 @@

                  3.4. ServiceWorkerContainer (2) (3)
                61. 3.4.6. startMessages()
                62. 3.4.7. Event handlers -
                63. 4.2.4. postMessage(message, transfer) +
                64. 4.2.5. postMessage(message, transfer) @@ -8435,53 +8455,60 @@

                  4.2.2. id +

    +
    +

    {{Client/type}}

    + + The type attribute *must* run these steps: + + 1. If the [=context object=]'s [=Client/service worker client=] is a type of [=environment=] or is a [=window client=], return {{ClientType/"window"}}. + 1. Else if the [=context object=]'s [=Client/service worker client=] is a [=dedicated worker client=], return {{ClientType/"worker"}}. + 1. Else if the [=context object=]'s [=Client/service worker client=] is a [=shared worker client=], return {{ClientType/"sharedworker"}}. +
    +

    {{Client/reserved}}

    diff --git a/docs/v1/index.html b/docs/v1/index.html index ecbe96d5..01fd343f 100644 --- a/docs/v1/index.html +++ b/docs/v1/index.html @@ -1424,7 +1424,7 @@

    Service Workers 1

    -

    Editor’s Draft,

    +

    Editor’s Draft,

    This version: @@ -1545,13 +1545,14 @@

    Table of Contents

    1. 4.2.1 url
    2. 4.2.2 id -
    3. 4.2.3 reserved -
    4. 4.2.4 postMessage(message, transfer) -
    5. 4.2.5 visibilityState -
    6. 4.2.6 focused -
    7. 4.2.7 ancestorOrigins -
    8. 4.2.8 focus() -
    9. 4.2.9 navigate(url) +
    10. 4.2.3 type +
    11. 4.2.4 reserved +
    12. 4.2.5 postMessage(message, transfer) +
    13. 4.2.6 visibilityState +
    14. 4.2.7 focused +
    15. 4.2.8 ancestorOrigins +
    16. 4.2.9 focus() +
    17. 4.2.10 navigate(url)
  • 4.3 Clients @@ -2395,6 +2396,7 @@

    interface Client { readonly attribute USVString url; readonly attribute DOMString id; + readonly attribute ClientType type; readonly attribute boolean reserved; void postMessage(any message, optional sequence<object> transfer = []); }; @@ -2422,17 +2424,29 @@

    id attribute must return its associated service worker client's id.

  • -

    4.2.3. reserved

    +

    4.2.3. type

    +

    The type attribute must run these steps:

    +
      +
    1. +

      If the context object's service worker client is a type of environment or is a window client, return "window".

      +
    2. +

      Else if the context object's service worker client is a dedicated worker client, return "worker".

      +
    3. +

      Else if the context object's service worker client is a shared worker client, return "sharedworker".

      +
    +
    +
    +

    4.2.4. reserved

    The reserved attribute must return the context object’s associated reserved state.

    -

    4.2.4. postMessage(message, transfer)

    +

    4.2.5. postMessage(message, transfer)

    The postMessage(message, transfer) method must run these steps:

    1. Let sourceSettings be the context object’s relevant settings object.

    2. -

      Let destination be the ServiceWorkerContainer object whose service worker client is the context object’s service worker client.

      +

      Let destination be the ServiceWorkerContainer object whose service worker client is the context object’s service worker client.

    3. If destination is null, throw an "InvalidStateError" exception.

    4. @@ -2462,19 +2476,19 @@

    -

    4.2.5. visibilityState

    +

    4.2.6. visibilityState

    The visibilityState attribute must return the context object’s visibility state.

    -

    4.2.6. focused

    +

    4.2.7. focused

    The focused attribute must return the context object’s focus state.

    -

    4.2.7. ancestorOrigins

    -

    The ancestorOrigins attribute must return the context object’s associated service worker client's ancestor origins array.

    +

    4.2.8. ancestorOrigins

    +

    The ancestorOrigins attribute must return the context object’s associated service worker client's ancestor origins array.

    -

    4.2.8. focus()

    +

    4.2.9. focus()

    The focus() method must run these steps:

    1. @@ -2485,7 +2499,7 @@

      in parallel:

      1. -

        Let browsingContext be the context object’s associated service worker client's global object's browsing context.

        +

        Let browsingContext be the context object’s associated service worker client's global object's browsing context.

      2. Let visibilityState be null.

      3. @@ -2493,7 +2507,7 @@

        Let ancestorOrigins be the empty array.

      4. -

        Queue a task task to run the following substeps on the context object’s associated service worker client's responsible event loop using the user interaction task source:

        +

        Queue a task task to run the following substeps on the context object’s associated service worker client's responsible event loop using the user interaction task source:

        1. Run the focusing steps with browsingContext.

          @@ -2507,7 +2521,7 @@

          Wait for task to have executed.

        2. -

          Let windowClient be the result of running Create Window Client algorithm with the context object’s associated service worker client, visibilityState, focusState, and ancestorOrigins as the arguments.

          +

          Let windowClient be the result of running Create Window Client algorithm with the context object’s associated service worker client, visibilityState, focusState, and ancestorOrigins as the arguments.

        3. If windowClient’s focus state is true, resolve promise with windowClient.

        4. @@ -2518,7 +2532,7 @@

          -

          4.2.9. navigate(url)

          +

          4.2.10. navigate(url)

          The navigate() method must run these steps:

          1. @@ -2528,14 +2542,14 @@

            If url is about:blank, return a promise rejected with a TypeError.

          2. -

            If the context object’s associated service worker client's active service worker is not the context object’s relevant global object’s service worker, return a promise rejected with a TypeError.

            +

            If the context object’s associated service worker client's active service worker is not the context object’s relevant global object’s service worker, return a promise rejected with a TypeError.

          3. Let promise be a new promise.

          4. Run these substeps in parallel:

            1. -

              Let browsingContext be the context object’s associated service worker client's global object's browsing context.

              +

              Let browsingContext be the context object’s associated service worker client's global object's browsing context.

            2. If browsingContext has discarded its Document, reject promise with a TypeError and abort these steps.

            3. @@ -2547,7 +2561,7 @@

              Let ancestorOrigins be the empty array.

            4. -

              Queue a task task to run the following substeps on the context object’s associated service worker client's responsible event loop using the user interaction task source:

              +

              Queue a task task to run the following substeps on the context object’s associated service worker client's responsible event loop using the user interaction task source:

              1. HandleNavigate: Navigate browsingContext to url with exceptions enabled. The source browsing context must be browsingContext.

                @@ -2596,7 +2610,7 @@

                dictionary ClientQueryOptions { boolean includeUncontrolled = false; boolean includeReserved = false; - ClientType type = "window"; + ClientType type = "window"; };
                enum ClientType {
                @@ -2634,7 +2648,7 @@ 

                secure context, reject promise with a "SecurityError" exception and abort these steps.

            5. -

              If client is a type of environment or is a window client, then:

              +

              If client is a type of environment or is a window client, then:

              1. Let browsingContext be null.

                @@ -2656,7 +2670,7 @@

                Set focusState to the result of running the has focus steps with browsingContext’s active document as the argument.

              2. -

                If client is a window client, set ancestorOrigins to browsingContext’s active document’s relevant global object’s Location object’s ancestor origins array.

                +

                If client is a window client, set ancestorOrigins to browsingContext’s active document’s relevant global object’s Location object’s ancestor origins array.

            6. Wait for task to have executed.

              @@ -2728,7 +2742,7 @@

              service worker client client in targetClients:

              1. -

                If options.type is "window" or "all", and client is a type of environment or is a window client, then:

                +

                If options.type is "window" or "all", and client is a type of environment or is a window client, then:

                1. Let browsingContext be null.

                  @@ -2756,7 +2770,7 @@

                  Set focusState to the result of running the has focus steps with browsingContext’s active document as the argument.

                2. -

                  It client is a window client, set ancestorOrigins to browsingContext’s active document’s relevant global object’s Location object’s ancestor origins array.

                  +

                  It client is a window client, set ancestorOrigins to browsingContext’s active document’s relevant global object’s Location object’s ancestor origins array.

              2. Wait for task to have executed.

                @@ -2771,7 +2785,7 @@

                -

                Else if options.type is "worker" or "all" and client is a dedicated worker client, or options.type is "sharedworker" or "all" and client is a shared worker client, then:

                +

                Else if options.type is "worker" or "all" and client is a dedicated worker client, or options.type is "sharedworker" or "all" and client is a shared worker client, then:

                1. Let clientObject be the result of running Create Client algorithm with client as the argument.

                  @@ -2783,11 +2797,11 @@

                  -

                  WindowClient objects are always placed before Client objects whose associated service worker clients are worker clients.

                  +

                  WindowClient objects are always placed before Client objects whose associated service worker clients are worker clients.

                2. -

                  WindowClient objects that have been focused are placed first sorted in the most recently focused order, and WindowClient objects that have never been focused are placed next sorted in their service worker clients' creation order.

                  +

                  WindowClient objects that have been focused are placed first sorted in the most recently focused order, and WindowClient objects that have never been focused are placed next sorted in their service worker clients' creation order.

                3. -

                  Client objects whose associated service worker clients are worker clients are placed next sorted in their service worker clients' creation order.

                  +

                  Client objects whose associated service worker clients are worker clients are placed next sorted in their service worker clients' creation order.

                4. Resolve promise with matchedClients.

                  @@ -4630,9 +4644,9 @@

                  For each service worker client client whose creation URL matches registration’s scope url:

                  1. -

                    If client is a window client, unassociate client’s responsible document from its application cache, if it has one.

                    +

                    If client is a window client, unassociate client’s responsible document from its application cache, if it has one.

                  2. -

                    Else if client is a shared worker client, unassociate client’s global object from its application cache, if it has one.

                    +

                    Else if client is a shared worker client, unassociate client’s global object from its application cache, if it has one.

                  Note: Resources will now use the service worker registration instead of the existing application cache.

                5. @@ -4941,7 +4955,7 @@

                  If request is a navigation request, initialize e’s targetClientId attribute to request’s target client id, and to the empty string otherwise.

                6. -

                  Let the isReload attribute of e be initialized to true if request’s client is a window client and the event was dispatched with the user’s intention for the page reload, and false otherwise.

                  +

                  Let the isReload attribute of e be initialized to true if request’s client is a window client and the event was dispatched with the user’s intention for the page reload, and false otherwise.

                7. Dispatch e at activeWorker’s global object.

                8. @@ -5490,7 +5504,7 @@

                  <
                9. Let clientObject be a new Client object.

                10. -

                  Set clientObject’s service worker client to client.

                  +

                  Set clientObject’s service worker client to client.

                11. Set clientObject’s reserved state to true if client’s execution ready flag is unset, and false otherwise.

                12. @@ -5519,7 +5533,7 @@

                  Let windowClient be a new WindowClient object.

                13. -

                  Set windowClient’s service worker client to client.

                  +

                  Set windowClient’s service worker client to client.

                14. Set windowClient’s visibility state to visibilityState.

                15. @@ -5875,7 +5889,7 @@

                  add(request), in §5.4.3
                16. all, in §4.3
                17. "all", in §4.3 -
                18. ancestorOrigins, in §4.2.7 +
                19. ancestorOrigins, in §4.2.8
                20. ancestor origins array, in §4.2
                21. Batch Cache Operations, in §Unnumbered section
                22. Cache, in §5.4 @@ -5934,8 +5948,8 @@

                  FetchEvent(type, eventInitDict), in §4.5
                23. fetching record, in §5.1
                24. Finish Job, in §Unnumbered section -
                25. focus(), in §4.2.8 -
                26. focused, in §4.2.6 +
                27. focus(), in §4.2.9 +
                28. focused, in §4.2.7
                29. focus state, in §4.2
                30. force bypass cache flag, in §Unnumbered section
                31. functional events, in §2.1 @@ -6037,7 +6051,7 @@

                  Match Service Worker Registration, in §Unnumbered section
                32. message, in §4.7
                33. name to cache map, in §5.1 -
                34. navigate(url), in §4.2.9 +
                35. navigate(url), in §4.2.10
                36. Notify Controller Change, in §Unnumbered section
                37. onactivate, in §4.1.4
                38. oncontrollerchange, in §3.4.7 @@ -6067,12 +6081,12 @@

                  dict-member for ExtendableMessageEventInit, in §4.6
                39. attribute for ExtendableMessageEvent, in §4.6.5 -
                40. postMessage(message), in §4.2.4 +
                41. postMessage(message), in §4.2.5
                42. postMessage(message, transfer)
                43. potential response, in §4.5
                44. processing equivalence, in §Unnumbered section @@ -6103,7 +6117,7 @@

                  dict-member for CacheBatchOperation, in §5.4
                45. request to response map, in §5.1 -
                46. reserved, in §4.2.3 +
                47. reserved, in §4.2.4
                48. reservedClientId @@ -6220,7 +6235,7 @@

                  uses, in §2.4
                49. using, in §2.4
                50. visibility state, in §4.2 -
                51. visibilityState, in §4.2.5 +
                52. visibilityState, in §4.2.6
                53. waiting, in §3.2.2
                54. waiting worker, in §2.2
                55. wait to respond flag, in §4.5 @@ -6662,6 +6677,7 @@

                  I interface Client { readonly attribute USVString url; readonly attribute DOMString id; + readonly attribute ClientType type; readonly attribute boolean reserved; void postMessage(any message, optional sequence<object> transfer = []); }; @@ -7156,25 +7172,28 @@

                  #dfn-window-clientReferenced in: @@ -7436,7 +7455,7 @@

                  3.4.4. getRegistration(clientURL)
                56. 3.4.5. getRegistrations()
                57. 3.5. Events -
                58. 4.2.4. postMessage(message, transfer) +
                59. 4.2.5. postMessage(message, transfer)
                60. Notify Controller Change @@ -7452,7 +7471,7 @@

                  3.4. ServiceWorkerContainer (2) (3)
                61. 3.4.6. startMessages()
                62. 3.4.7. Event handlers -
                63. 4.2.4. postMessage(message, transfer) +
                64. 4.2.5. postMessage(message, transfer) @@ -7689,53 +7709,60 @@

                  4.2.2. id +