Skip to content

Model nested reload and history traversal #585

Description

@wieslawsoltes

Parent: #267. Webview epic: #264.

Problem

Nested documents need bounded per-frame history and explicit reload/traversal lifecycle. history.back()/forward()/go(), same-document entries and location.reload() must preserve stable WindowProxy identity, order popstate/hashchange, retire outgoing work for cross-document reload, and reject reentrant lifecycle corruption.

Implemented boundary

  • Add bounded per-frame same-document history state/index.
  • Queue back, forward and go traversal.
  • Dispatch popstate then hashchange where applicable.
  • Implement nested location.reload() through the established beforeunload/pagehide/visibility/unload path.
  • Preserve stable WindowProxy/history identity across same-document traversal and reload replacement.
  • Guard lifecycle reentrancy and retire outgoing tasks, fetches, listeners and ServiceWorker ownership.
  • Add WPT-shaped/native source contracts and a validation/deferred-work note.

Deferred to #267/#268

Cross-document traversal, joint session history, POST reload, bfcache, restricted cross-origin WindowProxy behavior, and cumulative unchanged webview acceptance.

Validation boundary

git diff --check passed. Authored contracts were not executed under the current implementation-throughput direction.

Metadata

Metadata

Assignees

No one assigned

    Labels

    vscode-oss/plannedPlanned for the AppScene/WebScene VS Code OSS integration

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions