LibWeb: Implement HTMLIFrameElement.referrerPolicy

This commit is contained in:
Jamie Mansfield 2024-05-31 21:24:43 +01:00 committed by Nico Weber
parent c8e87352d8
commit 07cd441e95
4 changed files with 11 additions and 4 deletions

View file

@ -19,6 +19,13 @@ img referrerPolicy value after setting to null: ''
img referrerPolicy value after setting to "NO-REFERRER": 'no-referrer'
img referrerPolicy value after setting to "": ''
img referrerPolicy value after calling removeAttribute: ''
iframe referrerPolicy initial value: ''
iframe referrerPolicy value after setting to "invalid": ''
iframe referrerPolicy value after setting to "no-referrer": 'no-referrer'
iframe referrerPolicy value after setting to null: ''
iframe referrerPolicy value after setting to "NO-REFERRER": 'no-referrer'
iframe referrerPolicy value after setting to "": ''
iframe referrerPolicy value after calling removeAttribute: ''
script referrerPolicy initial value: ''
script referrerPolicy value after setting to "invalid": ''
script 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 ["link", "a", "img", "script"]) {
for (const elementName of ["link", "a", "img", "iframe", "script"]) {
const element = document.createElement(elementName);
println(`${elementName} referrerPolicy initial value: '${element.referrerPolicy}'`);
element.referrerPolicy = "invalid";

View file

@ -133,8 +133,8 @@ void HTMLIFrameElement::process_the_iframe_attributes(bool initial_insertion)
return;
}
// FIXME: 4. Let referrerPolicy be the current state of element's referrerpolicy content attribute.
auto referrer_policy = ReferrerPolicy::ReferrerPolicy::EmptyString;
// 4. Let referrerPolicy be the current state of element's referrerpolicy content attribute.
auto referrer_policy = ReferrerPolicy::from_string(get_attribute_value(HTML::AttributeNames::referrerpolicy)).value_or(ReferrerPolicy::ReferrerPolicy::EmptyString);
// 5. Set element's current navigation was lazy loaded boolean to false.
set_current_navigation_was_lazy_loaded(false);

View file

@ -16,7 +16,7 @@ interface HTMLIFrameElement : HTMLElement {
[CEReactions, Reflect=allowfullscreen] attribute boolean allowFullscreen;
[CEReactions, Reflect] attribute DOMString width;
[CEReactions, Reflect] attribute DOMString height;
[FIXME, CEReactions] attribute DOMString referrerPolicy;
[CEReactions, Reflect=referrerpolicy, Enumerated=ReferrerPolicy] attribute DOMString referrerPolicy;
[CEReactions, Enumerated=LazyLoadingAttribute, Reflect] attribute DOMString loading;
readonly attribute Document? contentDocument;
readonly attribute WindowProxy? contentWindow;