LibWeb: Implement HTMLLinkElement.referrerPolicy

This commit is contained in:
Jamie Mansfield 2024-05-31 21:18:55 +01:00 committed by Nico Weber
parent a6fd653afa
commit 901fb0d068
4 changed files with 12 additions and 3 deletions

View file

@ -1,3 +1,10 @@
link referrerPolicy initial value: ''
link referrerPolicy value after setting to "invalid": ''
link referrerPolicy value after setting to "no-referrer": 'no-referrer'
link referrerPolicy value after setting to null: ''
link referrerPolicy value after setting to "NO-REFERRER": 'no-referrer'
link referrerPolicy value after setting to "": ''
link referrerPolicy value after calling removeAttribute: ''
a referrerPolicy initial value: ''
a referrerPolicy value after setting to "invalid": ''
a referrerPolicy value after setting to "no-referrer": 'no-referrer'

View file

@ -2,7 +2,7 @@
<script src="../include.js"></script>
<script>
test(() => {
for (const elementName of ["a", "script"]) {
for (const elementName of ["link", "a", "script"]) {
const element = document.createElement(elementName);
println(`${elementName} referrerPolicy initial value: '${element.referrerPolicy}'`);
element.referrerPolicy = "invalid";

View file

@ -197,7 +197,8 @@ HTMLLinkElement::LinkProcessingOptions HTMLLinkElement::create_link_options()
// FIXME: destination the result of translating the state of el's as attribute
// crossorigin the state of el's crossorigin content attribute
options.crossorigin = cors_setting_attribute_from_keyword(get_attribute(AttributeNames::crossorigin));
// FIXME: referrer policy the state of el's referrerpolicy content attribute
// referrer policy the state of el's referrerpolicy content attribute
options.referrer_policy = ReferrerPolicy::from_string(get_attribute(AttributeNames::referrerpolicy).value_or(""_string)).value_or(ReferrerPolicy::ReferrerPolicy::EmptyString);
// FIXME: source set el's source set
// base URL document's URL
options.base_url = document.url();

View file

@ -1,4 +1,5 @@
#import <CSS/LinkStyle.idl>
#import <Fetch/Request.idl>
#import <HTML/HTMLElement.idl>
#import <HTML/Scripting/Fetching.idl>
@ -20,7 +21,7 @@ interface HTMLLinkElement : HTMLElement {
[FIXME, SameObject, PutForwards=value] readonly attribute DOMTokenList sizes;
[CEReactions, Reflect=imagesrcset] attribute DOMString imageSrcset;
[CEReactions, Reflect=imagesizes] attribute DOMString imageSizes;
[FIXME, CEReactions] attribute DOMString referrerPolicy;
[CEReactions, Reflect=referrerpolicy, Enumerated=ReferrerPolicy] attribute DOMString referrerPolicy;
[FIXME, SameObject, PutForwards=value] readonly attribute DOMTokenList blocking;
[CEReactions, Reflect] attribute boolean disabled;
[CEReactions, Enumerated=FetchPriorityAttribute, Reflect=fetchpriority] attribute DOMString fetchPriority;