LibWeb: Add basic "top layer" support

Implements the "top layer" concept from "CSS Positioned Layout Module
Level 4" specification.

- The tree builder is modified to ensure that layout nodes created by
  top layer elements are children of the viewport.
- Implements missing steps in `showModal()` to add an element top top
  layer.
- Implements missing steps in `close()` to remove an element from top
  layer.

Further steps could be:
- Add support for `::backdrop` pseudo-element.
- Implement the "inert" concept from HTML spec to block hit-testing
  when element from top layer is displayed.
This commit is contained in:
Aliaksandr Kalenik 2024-03-28 16:53:27 +01:00 committed by Andreas Kling
commit ca363f0024
Notes: sideshowbarker 2024-07-17 08:35:21 +09:00
10 changed files with 198 additions and 5 deletions

View file

@ -0,0 +1,4 @@
<!DOCTYPE html><dialog id="dialog"><p>Dialog's layout node should be a child of viewport</p></dialog>
<script>
dialog.showModal();
</script>