LibWeb: Implement the LegacyUnforgeable attribute
Some checks are pending
CI / Lagom (arm64, Sanitizer_CI, false, macos-15, macOS, Clang) (push) Waiting to run
CI / Lagom (x86_64, Fuzzers_CI, false, ubuntu-24.04, Linux, Clang) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, false, ubuntu-24.04, Linux, GNU) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, true, ubuntu-24.04, Linux, Clang) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (macos-14, macOS, macOS-universal2) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (ubuntu-24.04, Linux, Linux-x86_64) (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Label PRs with merge conflicts / auto-labeler (push) Waiting to run
Push notes / build (push) Waiting to run

This fixes the frame-ancestors WPT tests from crashing when an iframe
is blocked from loading. This is because it would get an undefined
location.href from the cross-origin iframe, which causes a crash as it
expects it to be there.
This commit is contained in:
Luke Wilde 2024-12-09 17:04:20 +00:00 committed by Tim Ledbetter
commit c7d25301d3
Notes: github-actions[bot] 2025-03-28 00:10:01 +00:00
15 changed files with 511 additions and 76 deletions

View file

@ -0,0 +1,156 @@
href exists on location itself: true
href does not exist on LocationPrototype: true
href descriptor is not undefined: true
href enumerable: true
href configurable: true
href writable: undefined
origin exists on location itself: true
origin does not exist on LocationPrototype: true
origin descriptor is not undefined: true
origin enumerable: true
origin configurable: true
origin writable: undefined
protocol exists on location itself: true
protocol does not exist on LocationPrototype: true
protocol descriptor is not undefined: true
protocol enumerable: true
protocol configurable: true
protocol writable: undefined
host exists on location itself: true
host does not exist on LocationPrototype: true
host descriptor is not undefined: true
host enumerable: true
host configurable: true
host writable: undefined
hostname exists on location itself: true
hostname does not exist on LocationPrototype: true
hostname descriptor is not undefined: true
hostname enumerable: true
hostname configurable: true
hostname writable: undefined
port exists on location itself: true
port does not exist on LocationPrototype: true
port descriptor is not undefined: true
port enumerable: true
port configurable: true
port writable: undefined
pathname exists on location itself: true
pathname does not exist on LocationPrototype: true
pathname descriptor is not undefined: true
pathname enumerable: true
pathname configurable: true
pathname writable: undefined
search exists on location itself: true
search does not exist on LocationPrototype: true
search descriptor is not undefined: true
search enumerable: true
search configurable: true
search writable: undefined
hash exists on location itself: true
hash does not exist on LocationPrototype: true
hash descriptor is not undefined: true
hash enumerable: true
hash configurable: true
hash writable: undefined
assign exists on location itself: true
assign does not exist on LocationPrototype: true
assign descriptor is not undefined: true
assign enumerable: true
assign configurable: true
assign writable: false
replace exists on location itself: true
replace does not exist on LocationPrototype: true
replace descriptor is not undefined: true
replace enumerable: true
replace configurable: true
replace writable: false
reload exists on location itself: true
reload does not exist on LocationPrototype: true
reload descriptor is not undefined: true
reload enumerable: true
reload configurable: true
reload writable: false
toString exists on location itself: true
toString does not exist on LocationPrototype: true
toString descriptor is not undefined: true
toString enumerable: true
toString configurable: true
toString writable: false
href exists on document.location itself: true
href does not exist on LocationPrototype: true
href descriptor is not undefined: true
href enumerable: true
href configurable: true
href writable: undefined
origin exists on document.location itself: true
origin does not exist on LocationPrototype: true
origin descriptor is not undefined: true
origin enumerable: true
origin configurable: true
origin writable: undefined
protocol exists on document.location itself: true
protocol does not exist on LocationPrototype: true
protocol descriptor is not undefined: true
protocol enumerable: true
protocol configurable: true
protocol writable: undefined
host exists on document.location itself: true
host does not exist on LocationPrototype: true
host descriptor is not undefined: true
host enumerable: true
host configurable: true
host writable: undefined
hostname exists on document.location itself: true
hostname does not exist on LocationPrototype: true
hostname descriptor is not undefined: true
hostname enumerable: true
hostname configurable: true
hostname writable: undefined
port exists on document.location itself: true
port does not exist on LocationPrototype: true
port descriptor is not undefined: true
port enumerable: true
port configurable: true
port writable: undefined
pathname exists on document.location itself: true
pathname does not exist on LocationPrototype: true
pathname descriptor is not undefined: true
pathname enumerable: true
pathname configurable: true
pathname writable: undefined
search exists on document.location itself: true
search does not exist on LocationPrototype: true
search descriptor is not undefined: true
search enumerable: true
search configurable: true
search writable: undefined
hash exists on document.location itself: true
hash does not exist on LocationPrototype: true
hash descriptor is not undefined: true
hash enumerable: true
hash configurable: true
hash writable: undefined
assign exists on document.location itself: true
assign does not exist on LocationPrototype: true
assign descriptor is not undefined: true
assign enumerable: true
assign configurable: true
assign writable: false
replace exists on document.location itself: true
replace does not exist on LocationPrototype: true
replace descriptor is not undefined: true
replace enumerable: true
replace configurable: true
replace writable: false
reload exists on document.location itself: true
reload does not exist on LocationPrototype: true
reload descriptor is not undefined: true
reload enumerable: true
reload configurable: true
reload writable: false
toString exists on document.location itself: true
toString does not exist on LocationPrototype: true
toString descriptor is not undefined: true
toString enumerable: true
toString configurable: true
toString writable: false

View file

@ -0,0 +1,24 @@
window exists on window itself: true
window does not exist on LocationPrototype: true
window descriptor is not undefined: true
window enumerable: true
window configurable: false
window writable: undefined
document exists on window itself: true
document does not exist on LocationPrototype: true
document descriptor is not undefined: true
document enumerable: true
document configurable: false
document writable: undefined
location exists on window itself: true
location does not exist on LocationPrototype: true
location descriptor is not undefined: true
location enumerable: true
location configurable: false
location writable: undefined
top exists on window itself: true
top does not exist on LocationPrototype: true
top descriptor is not undefined: true
top enumerable: true
top configurable: false
top writable: undefined