LibWeb: Align CORSSettingsAttribute values with the specification

This change makes our crossOrigin attribute getter behave the same way
as other browsers.
This commit is contained in:
Tim Ledbetter 2024-03-21 18:34:01 +00:00 committed by Andreas Kling
parent 158d9a5921
commit aabf1a65b1
Notes: sideshowbarker 2024-07-17 02:37:08 +09:00
3 changed files with 44 additions and 2 deletions

View file

@ -0,0 +1,21 @@
audio crossOrigin initial value: null
audio crossOrigin value after setting to "invalid": anonymous
audio crossOrigin value after setting to "use-credentials": use-credentials
audio crossOrigin value after setting to null: null
audio crossOrigin value after setting to "USE-CREDENTIALS": use-credentials
audio crossOrigin value after setting to "": anonymous
audio crossOrigin value after calling removeAttribute: null
script crossOrigin initial value: null
script crossOrigin value after setting to "invalid": anonymous
script crossOrigin value after setting to "use-credentials": use-credentials
script crossOrigin value after setting to null: null
script crossOrigin value after setting to "USE-CREDENTIALS": use-credentials
script crossOrigin value after setting to "": anonymous
script crossOrigin value after calling removeAttribute: null
video crossOrigin initial value: null
video crossOrigin value after setting to "invalid": anonymous
video crossOrigin value after setting to "use-credentials": use-credentials
video crossOrigin value after setting to null: null
video crossOrigin value after setting to "USE-CREDENTIALS": use-credentials
video crossOrigin value after setting to "": anonymous
video crossOrigin value after calling removeAttribute: null

View file

@ -0,0 +1,22 @@
<!DOCTYPE html>
<script src="../include.js"></script>
<script>
test(() => {
for (let elementName of ["audio", "script", "video"]) {
const element = document.createElement(elementName);
println(`${elementName} crossOrigin initial value: ${element.crossOrigin}`);
element.crossOrigin = "invalid";
println(`${elementName} crossOrigin value after setting to "invalid": ${element.crossOrigin}`);
element.crossOrigin = "use-credentials";
println(`${elementName} crossOrigin value after setting to "use-credentials": ${element.crossOrigin}`);
element.crossOrigin = null;
println(`${elementName} crossOrigin value after setting to null: ${element.crossOrigin}`);
element.crossOrigin = "USE-CREDENTIALS";
println(`${elementName} crossOrigin value after setting to "USE-CREDENTIALS": ${element.crossOrigin}`);
element.crossOrigin = "";
println(`${elementName} crossOrigin value after setting to "": ${element.crossOrigin}`);
element.removeAttribute("crossOrigin");
println(`${elementName} crossOrigin value after calling removeAttribute: ${element.crossOrigin}`);
}
});
</script>

View file

@ -1,7 +1,6 @@
// https://html.spec.whatwg.org/multipage/urls-and-fetching.html#cors-settings-attribute
[MissingValueDefault=, InvalidValueDefault=anonymous]
[InvalidValueDefault=anonymous]
enum CORSSettingsAttribute {
"anonymous",
"",
"use-credentials"
};