diff --git a/source b/source index 7190aebdceb..dc59a218484 100644 --- a/source +++ b/source @@ -4173,6 +4173,7 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
  • The scrollend event
  • set up browsing context features
  • The clientX and clientY extension attributes of the MouseEvent interface
  • +
  • get the bounding box
  • The following features and terms are defined in CSS Syntax: @@ -66543,9 +66544,6 @@ interface HTMLDialogElement : HTMLElement {


    -

    Each Document has a dialog pointerdown target, which is an HTML dialog element or null, initially null.

    -

    Each HTML element has a previously focused element which is null or an element, and it is initially null. When showModal() and show() @@ -67083,64 +67081,58 @@ interface HTMLDialogElement : HTMLElement { is in addition to how such dialogs respond to close requests.

    -

    To light dismiss open dialogs, given a PointerEvent event:

    +

    To light dismiss open dialogs, given a Node + pointerDownTarget, a number pointerDownX, a number pointerDownY, + a Node pointerUpTarget, a number pointerUpX, and a number + pointerUpY:

      -
    1. Assert: event's isTrusted attribute is true.

    2. - -
    3. Let document be event's target's node document.

    4. +
    5. Let document be pointerDownTarget's node + document.

    6. If document's open dialogs list is empty, then return.

    7. -
    8. Let ancestor be the result of running nearest clicked dialog - given event.

    9. - -
    10. If event's type is - "pointerdown", then set document's - dialog pointerdown target to ancestor.

    11. - -
    12. -

      If event's type is - "pointerup":

      - -
        -
      1. Let sameTarget be true if ancestor is document's - dialog pointerdown target.

      2. +
      3. Let pointerDownDialog be the result of running nearest clicked + dialog given pointerDownTarget, pointerDownX, and + pointerDownY.

      4. -
      5. Set document's dialog pointerdown target to null.

      6. +
      7. Let pointerUpDialog be the result of running nearest clicked + dialog given pointerUpTarget, pointerUpX, and + pointerUpY.

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

      10. +
      11. If pointerDownDialog is not pointerUpDialog, then return.

      12. -
      13. Let topmostDialog be the last element of document's open - dialogs list.

      14. +
      15. Let topmostDialog be the last element of document's open + dialogs list.

      16. -
      17. If ancestor is topmostDialog, then return.

      18. +
      19. If pointerDownDialog is topmostDialog, then return.

      20. -
      21. If topmostDialog's computed closed-by state is not Any, then return.

      22. +
      23. If topmostDialog's computed closed-by state is not Any, then return.

      24. -
      25. Assert: topmostDialog's close watcher is not null.

      26. +
      27. Assert: topmostDialog's close watcher is not null.

      28. -
      29. Request to close - topmostDialog's close watcher with - false.

      30. -
      -
    13. +
    14. Request to close + topmostDialog's close watcher with + false.

    -

    To run light dismiss activities, given a PointerEvent - event:

    +

    To run light dismiss activities, given a Node + pointerDownTarget, a number pointerDownX, a number pointerDownY, + a Node pointerUpTarget, a number pointerUpX, and a number + pointerUpY:

      -
    1. Run light dismiss open popovers with event.

    2. +
    3. Run light dismiss open popovers given pointerDownTarget and + pointerUpTarget.

    4. -
    5. Run light dismiss open dialogs with event.

    6. +
    7. Run light dismiss open dialogs given pointerDownTarget, + pointerDownX, pointerDownY, pointerUpTarget, + pointerUpX, and pointerUpY.

    @@ -67149,23 +67141,23 @@ interface HTMLDialogElement : HTMLElement { or touches anywhere on the page.

    -

    To find the nearest clicked dialog, given a PointerEvent - event:

    +

    To find the nearest clicked dialog, given a Node target, a + number clientX, and a number clientY:

      -
    1. Let target be event's target.

    2. - -
    3. If target is a dialog element, target has an open attribute, target's is modal is - true, and event's clientX and - clientY are outside the bounds of target, - then return null. +

    4. +

      If target is a dialog element, target has an open attribute, target's is modal is + true, and clientX and clientY are outside of target's bounding box, then return null.

      -

      The check for clientX and clientY is because a pointer event that hits the ::backdrop pseudo element of a dialog will result in event having a - target of the dialog element itself.

      +

      The check for clientX and clientY is because a pointer event that hits the ::backdrop pseudo element of a dialog will result in event having a + target of the dialog element itself. This could be improved if the pointer events spec passed the + ::backdrop pseudo-element directly instead of the dialog + element.

      +
    5. Let currentNode be target.

    6. @@ -91888,9 +91880,6 @@ dictionary DragEventInit : MouseEventInit { data-x="popover-showing-state">showing

      -

      Every Document has a popover pointerdown target, which is an HTML element or null, initially null.

      -

      Every HTML element has a popover trigger, which is an HTML element or null, initially set to null.

      @@ -93081,64 +93070,42 @@ dictionary DragEventInit : MouseEventInit { data-x="close request">close requests.

      -

      To light dismiss open popovers, given a PointerEvent - event:

      +

      To light dismiss open popovers, given a Node + pointerDownTarget and a Node pointerUpTarget:

        -
      1. Assert: event's isTrusted attribute is true.

      2. - -
      3. Let target be event's target.

      4. - -
      5. Let document be target's node document.

      6. - -
      7. If the result of running topmost auto or hint popover given - document is null, then return.

      8. - -
      9. If event's type is "pointerdown": set document's popover - pointerdown target to the result of running topmost clicked popover given - target.

      10. - -
      11. -

        If event's type is "pointerup":

        - -
          -
        1. Let ancestor be the result of running topmost clicked popover - given target.

        2. - -
        3. Let sameTarget be true if ancestor is document's - popover pointerdown target.

        4. +
        5. Let document be pointerDownTarget's node + document.

        6. -
        7. Set document's popover pointerdown target to null.

        8. +
        9. Let pointerDownPopover be the result of running topmost clicked + popover given pointerDownTarget.

        10. -
        11. If sameTarget is false, then return.

        12. +
        13. Let pointerUpPopover be the result of running topmost clicked + popover given pointerUpTarget.

        14. -
        15. Let endpointIsHint be true if document's showing hint - popover list contains ancestor; otherwise - false.

        16. +
        17. If pointerDownPopover is not pointerUpPopover, then return.

        18. -
        19. Run hide popover stack until given document, - ancestor, Hint, false, and - true.

        20. +
        21. Let endpointIsHint be true if document's showing hint + popover list contains pointerDownPopover; + otherwise false.

        22. -
        23. Let autoEndpoint be ancestor.

        24. +
        25. Run hide popover stack until given document, + pointerDownPopover, Hint, false, and + true.

        26. -
        27. -

          If endpointIsHint is true, then set autoEndpoint to - document's hint stack parent.

          +
        28. Let autoEndpoint be pointerDownPopover.

        29. -

          This means, if a hint popover is clicked, auto popovers are closed, except - those that are parent to the clicked hint popover.

          - +
        30. +

          If endpointIsHint is true, then set autoEndpoint to + document's hint stack parent.

          -
        31. Run hide popover stack until given document, - autoEndpoint, Auto, false, and - true.

        32. -
        +

        This means, if a hint popover is clicked, auto popovers are closed, except + those that are parent to the clicked hint popover.

      12. + +
      13. Run hide popover stack until given document, + autoEndpoint, Auto, false, and + true.