LibWeb: Use Enumerated for HTMLScriptElement.referrerPolicy

This commit is contained in:
Jamie Mansfield 2024-05-31 21:06:08 +01:00 committed by Nico Weber
parent a497f65578
commit ade7c6c8fb
5 changed files with 54 additions and 1 deletions

View file

@ -0,0 +1,7 @@
script referrerPolicy initial value: ''
script referrerPolicy value after setting to "invalid": ''
script referrerPolicy value after setting to "no-referrer": 'no-referrer'
script referrerPolicy value after setting to null: ''
script referrerPolicy value after setting to "NO-REFERRER": 'no-referrer'
script referrerPolicy value after setting to "": ''
script referrerPolicy value after calling removeAttribute: ''

View file

@ -0,0 +1,5 @@
referrerPolicy = ''
referrerPolicy = 'no-referrer'
referrerPolicy = ''

View file

@ -0,0 +1,22 @@
<!DOCTYPE html>
<script src="../include.js"></script>
<script>
test(() => {
for (const elementName of ["script"]) {
const element = document.createElement(elementName);
println(`${elementName} referrerPolicy initial value: '${element.referrerPolicy}'`);
element.referrerPolicy = "invalid";
println(`${elementName} referrerPolicy value after setting to "invalid": '${element.referrerPolicy}'`);
element.referrerPolicy = "no-referrer";
println(`${elementName} referrerPolicy value after setting to "no-referrer": '${element.referrerPolicy}'`);
element.referrerPolicy = null;
println(`${elementName} referrerPolicy value after setting to null: '${element.referrerPolicy}'`);
element.referrerPolicy = "NO-REFERRER";
println(`${elementName} referrerPolicy value after setting to "NO-REFERRER": '${element.referrerPolicy}'`);
element.referrerPolicy = "";
println(`${elementName} referrerPolicy value after setting to "": '${element.referrerPolicy}'`);
element.removeAttribute("referrerPolicy");
println(`${elementName} referrerPolicy value after calling removeAttribute: '${element.referrerPolicy}'`);
}
});
</script>

View file

@ -0,0 +1,18 @@
<script id="testScript"></script>
<script src="../include.js"></script>
<script>
test(() => {
const script = document.getElementById('testScript');
println(`referrerPolicy = '${script.referrerPolicy}'`);
println('');
script.referrerPolicy = 'no-referrer';
println(`referrerPolicy = '${script.referrerPolicy}'`);
println('');
script.referrerPolicy = 'invalid-value';
println(`referrerPolicy = '${script.referrerPolicy}'`);
});
</script>

View file

@ -1,3 +1,4 @@
#import <Fetch/Request.idl>
#import <HTML/HTMLElement.idl>
#import <HTML/Scripting/Fetching.idl>
@ -15,7 +16,7 @@ interface HTMLScriptElement : HTMLElement {
[CEReactions, Reflect=crossorigin, Enumerated=CORSSettingsAttribute] attribute DOMString? crossOrigin;
[CEReactions] attribute DOMString text;
[CEReactions, Reflect] attribute DOMString integrity;
[CEReactions, Reflect=referrerpolicy] attribute DOMString referrerPolicy;
[CEReactions, Reflect=referrerpolicy, Enumerated=ReferrerPolicy] attribute DOMString referrerPolicy;
[FIXME, SameObject, PutForwards=value] readonly attribute DOMTokenList blocking;
[CEReactions, Enumerated=FetchPriorityAttribute, Reflect=fetchpriority] attribute DOMString fetchPriority;