From 7bd74b4949896b34769e3b53cf5d06bc3b2fcf4f Mon Sep 17 00:00:00 2001 From: Youenn Fablet Date: Thu, 30 Mar 2023 09:01:54 +0200 Subject: [PATCH 1/3] Clarify that UA should listen to focus change --- index.html | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/index.html b/index.html index e05dfe4..2985579 100644 --- a/index.html +++ b/index.html @@ -423,6 +423,29 @@

abort these steps.

+
  • +

    Let topContext be the current settings object's's [=relevant global object=]'s + [=associated Document=]'s [=top-level browsing context=].

    +
  • +
  • +

    Start listening to topContext's change of focus. + Whenever topContext is losing focus, stop listening + to topContext's change of focus and + queue a global task on the user interaction task source + given current settings object's [=relevant global object=] to run the following step: +

      +
    1. Set controller.{{CaptureController/[[FocusChangeDisabled]]}} to true.

    2. +
    +

    +

    + These steps ensure {{CaptureController}} will not override explicit focus actions made by the user, + typically if a user decides to switch to another surface shortly after starting capture. + This algorithm describes what to do for surface pickers implemented by the user agent but the same + requirement applies to surface pickers implemented outside of the user agent, + where the loss of capturing document focus is not necessarily the signal triggering setting + {{CaptureController/[[FocusChangeDisabled]]}} to true. +

    +
  • Permission Failure: [=Reject=] p with a new {{DOMException}} From 99f2b393188ef7049e9585d35b6a538524dffee0 Mon Sep 17 00:00:00 2001 From: Youenn Fablet Date: Wed, 5 Jul 2023 08:50:25 +0200 Subject: [PATCH 2/3] Address further feedback --- index.html | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/index.html b/index.html index 2985579..23eb77c 100644 --- a/index.html +++ b/index.html @@ -424,13 +424,12 @@

  • -

    Let topContext be the current settings object's's [=relevant global object=]'s - [=associated Document=]'s [=top-level browsing context=].

    +

    Let toplevelTraversable be the current settings object's's [=relevant global object=]'s + [=navigable=]'s [=top-level traversable=].

  • -

    Start listening to topContext's change of focus. - Whenever topContext is losing focus, stop listening - to topContext's change of focus and +

    Listen to toplevelTraversable's change of system focus.

    +

    The first time toplevelTraversable is losing focus, queue a global task on the user interaction task source given current settings object's [=relevant global object=] to run the following step:

      From 286a32db0ffd7f1b13eba1ab7def77649393b854 Mon Sep 17 00:00:00 2001 From: Youenn Fablet Date: Thu, 6 Jul 2023 08:04:03 +0200 Subject: [PATCH 3/3] Move section up --- index.html | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/index.html b/index.html index 23eb77c..ed57ae2 100644 --- a/index.html +++ b/index.html @@ -397,6 +397,28 @@

    1. If controller is not null, run the following steps:
        +
      1. +

        Let toplevelTraversable be the current settings object's's [=relevant global object=]'s + [=navigable=]'s [=top-level traversable=].

        +
      2. +
      3. +

        Listen to toplevelTraversable's change of system focus.

        +

        The first time toplevelTraversable is losing focus, + queue a global task on the user interaction task source + given current settings object's [=relevant global object=] to run the following step: +

          +
        1. Set controller.{{CaptureController/[[FocusChangeDisabled]]}} to true.

        2. +
        +

        +

        + These steps ensure {{CaptureController}} will not override explicit focus actions made by the user, + typically if a user decides to switch to another surface shortly after starting capture. + This algorithm describes what to do for surface pickers implemented by the user agent but the same + requirement applies to surface pickers implemented outside of the user agent, + where the loss of capturing document focus is not necessarily the signal triggering setting + {{CaptureController/[[FocusChangeDisabled]]}} to true. +

        +
      4. Set controller.{{CaptureController/[[Source]]}} @@ -423,28 +445,6 @@

        abort these steps.

      5. -
      6. -

        Let toplevelTraversable be the current settings object's's [=relevant global object=]'s - [=navigable=]'s [=top-level traversable=].

        -
      7. -
      8. -

        Listen to toplevelTraversable's change of system focus.

        -

        The first time toplevelTraversable is losing focus, - queue a global task on the user interaction task source - given current settings object's [=relevant global object=] to run the following step: -

          -
        1. Set controller.{{CaptureController/[[FocusChangeDisabled]]}} to true.

        2. -
        -

        -

        - These steps ensure {{CaptureController}} will not override explicit focus actions made by the user, - typically if a user decides to switch to another surface shortly after starting capture. - This algorithm describes what to do for surface pickers implemented by the user agent but the same - requirement applies to surface pickers implemented outside of the user agent, - where the loss of capturing document focus is not necessarily the signal triggering setting - {{CaptureController/[[FocusChangeDisabled]]}} to true. -

        -
      9. Permission Failure: [=Reject=] p with a new {{DOMException}}