diff --git a/source b/source index 656e8aa6890..9b98fa78e1a 100644 --- a/source +++ b/source @@ -78588,11 +78588,8 @@ interface Window : Eve been discarded, and false otherwise.

The stop() method on Window - objects should, if there is an existing attempt to navigate the browsing - context and that attempt is not currently running the unload a document - algorithm, cancel that navigation; then, it must abort the active document of the browsing - context of the Window object on which it was invoked.

+ objects must stop document loading given this Window object's associated Document.

@@ -83834,6 +83831,22 @@ interface BeforeUnloadEvent : Event { +

To stop document loading given a Document object document, + run these steps:

+ +
    +
  1. If document is not an active document, then return.

  2. + +
  3. Let browsingContext be document's browsing context.

  4. + +
  5. If there is an existing attempt to navigate browsingContext and + that attempt is not currently running the unload a document algorithm, then cancel + that navigation.

  6. + +
  7. Abort document.

  8. +
+ @@ -91045,8 +91058,18 @@ document.body.appendChild(frame) handler while the Document is being unloaded.

-
  • If document is an active document, then abort document.

  • +
  • +

    If there is an existing attempt to navigate document's browsing context, then stop document loading + given document.

    + +

    Issue #3447 looks into the distinction between + an ongoing instance of the navigate algorithm versus tasks to navigate + that are still queued. For the purpose of implementing this step, both an ongoing instance of + the navigate algorithm and tasks queued to navigate should be counted + towards "an existing attempt to navigate," before that issue is resolved.

    +
  • For each shadow-including inclusive descendant node of document, erase all event listeners and handlers given