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 initial value: ''
a referrerPolicy value after setting to "invalid": '' a referrerPolicy value after setting to "invalid": ''
a referrerPolicy value after setting to "no-referrer": 'no-referrer' a referrerPolicy value after setting to "no-referrer": 'no-referrer'

View file

@ -2,7 +2,7 @@
<script src="../include.js"></script> <script src="../include.js"></script>
<script> <script>
test(() => { test(() => {
for (const elementName of ["a", "script"]) { for (const elementName of ["link", "a", "script"]) {
const element = document.createElement(elementName); const element = document.createElement(elementName);
println(`${elementName} referrerPolicy initial value: '${element.referrerPolicy}'`); println(`${elementName} referrerPolicy initial value: '${element.referrerPolicy}'`);
element.referrerPolicy = "invalid"; 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 // FIXME: destination the result of translating the state of el's as attribute
// crossorigin the state of el's crossorigin content attribute // crossorigin the state of el's crossorigin content attribute
options.crossorigin = cors_setting_attribute_from_keyword(get_attribute(AttributeNames::crossorigin)); 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 // FIXME: source set el's source set
// base URL document's URL // base URL document's URL
options.base_url = document.url(); options.base_url = document.url();

View file

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