mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-11-09 01:31:02 +00:00
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.
37 lines
1.5 KiB
HTML
37 lines
1.5 KiB
HTML
<!DOCTYPE html>
|
|
<script src="../include.js"></script>
|
|
<script>
|
|
test(() => {
|
|
for (const { location, name } of [{ location: window.location, name: "location" }, { location: document.location, name: "document.location" }]) {
|
|
const unforgeableProperties = [
|
|
"href",
|
|
"origin",
|
|
"protocol",
|
|
"host",
|
|
"hostname",
|
|
"port",
|
|
"pathname",
|
|
"search",
|
|
"hash",
|
|
"assign",
|
|
"replace",
|
|
"reload",
|
|
// FIXME: "ancestorOrigins",
|
|
"toString",
|
|
];
|
|
|
|
const locationPrototype = Object.getPrototypeOf(location);
|
|
|
|
for (const property of unforgeableProperties) {
|
|
println(`${property} exists on ${name} itself: ${Object.hasOwn(location, property)}`);
|
|
println(`${property} does not exist on LocationPrototype: ${!Object.hasOwn(locationPrototype, property)}`);
|
|
|
|
const propertyDescriptor = Object.getOwnPropertyDescriptor(location, property);
|
|
println(`${property} descriptor is not undefined: ${propertyDescriptor !== undefined}`);
|
|
println(`${property} enumerable: ${propertyDescriptor.enumerable}`);
|
|
println(`${property} configurable: ${propertyDescriptor.configurable}`);
|
|
println(`${property} writable: ${propertyDescriptor.writable}`);
|
|
}
|
|
}
|
|
});
|
|
</script>
|