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 "NO-REFERRER": 'no-referrer'
img referrerPolicy value after setting to "": '' img referrerPolicy value after setting to "": ''
img referrerPolicy value after calling removeAttribute: '' 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 initial value: ''
script referrerPolicy value after setting to "invalid": '' script referrerPolicy value after setting to "invalid": ''
script referrerPolicy value after setting to "no-referrer": 'no-referrer' script 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 ["link", "a", "img", "script"]) { for (const elementName of ["link", "a", "img", "iframe", "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

@ -133,8 +133,8 @@ void HTMLIFrameElement::process_the_iframe_attributes(bool initial_insertion)
return; return;
} }
// FIXME: 4. Let referrerPolicy be the current state of element's referrerpolicy content attribute. // 4. Let referrerPolicy be the current state of element's referrerpolicy content attribute.
auto referrer_policy = ReferrerPolicy::ReferrerPolicy::EmptyString; 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. // 5. Set element's current navigation was lazy loaded boolean to false.
set_current_navigation_was_lazy_loaded(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=allowfullscreen] attribute boolean allowFullscreen;
[CEReactions, Reflect] attribute DOMString width; [CEReactions, Reflect] attribute DOMString width;
[CEReactions, Reflect] attribute DOMString height; [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; [CEReactions, Enumerated=LazyLoadingAttribute, Reflect] attribute DOMString loading;
readonly attribute Document? contentDocument; readonly attribute Document? contentDocument;
readonly attribute WindowProxy? contentWindow; readonly attribute WindowProxy? contentWindow;