storage: Isolate sessionStorage per top-level browsing context and copy sessionStorage when creating a new auxiliary browsing context (#37803)

This pull request introduces changes to the storage subsystem to:
- Isolate sessionStorage per top-level browsing context (WebViewId), in
  addition to origin.
- Copy sessionStorage when creating a new auxiliary browsing context
without
  noopener, as required by the corresponding spec
 
These changes bring Servo closer to spec compliance, matching expected
browser
behavior.

Testing: This work affects observable behavior. As a result, some
previously
failing WPT tests now pass. No new tests are added, since the behavior
is
already covered by existing web-platform-tests.

Fixes: #21291

---------

Signed-off-by: Jan Varga <jan.varga@gmail.com>
This commit is contained in:
Jan Varga 2025-07-04 11:15:12 +02:00 committed by GitHub
parent aaf04883dd
commit 934b3341d7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 234 additions and 122 deletions

View file

@ -1,3 +0,0 @@
[storage_session_window_noopener.window.html]
[A new noopener window to make sure there is a not copy of the previous window's sessionStorage]
expected: FAIL

View file

@ -1,3 +0,0 @@
[storage_session_window_open.window.html]
[A new window to make sure there is a copy of the previous window's sessionStorage, and that they diverge after a change]
expected: FAIL