mirror of
https://github.com/servo/servo.git
synced 2025-06-19 14:48:59 +01:00
Implement referrerpolicy attribute on remaining elements (#34736)
Fixes #11861 Signed-off-by: Shane Handley <shanehandley@fastmail.com>
This commit is contained in:
parent
09408ae10b
commit
41f27ae80b
9 changed files with 25 additions and 413 deletions
|
@ -24,7 +24,7 @@ use crate::dom::bindings::root::{DomRoot, MutNullableDom};
|
|||
use crate::dom::bindings::str::{DOMString, USVString};
|
||||
use crate::dom::document::Document;
|
||||
use crate::dom::domtokenlist::DOMTokenList;
|
||||
use crate::dom::element::{AttributeMutation, Element};
|
||||
use crate::dom::element::{reflect_referrer_policy_attribute, AttributeMutation, Element};
|
||||
use crate::dom::event::Event;
|
||||
use crate::dom::eventtarget::EventTarget;
|
||||
use crate::dom::htmlelement::HTMLElement;
|
||||
|
@ -582,6 +582,14 @@ impl HTMLAnchorElementMethods<crate::DomTypeHolder> for HTMLAnchorElement {
|
|||
// Step 5.
|
||||
self.update_href(url, can_gc);
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-a-referrerpolicy
|
||||
fn ReferrerPolicy(&self) -> DOMString {
|
||||
reflect_referrer_policy_attribute(self.upcast::<Element>())
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-script-referrerpolicy
|
||||
make_setter!(SetReferrerPolicy, "referrerpolicy");
|
||||
}
|
||||
|
||||
impl Activatable for HTMLAnchorElement {
|
||||
|
|
|
@ -22,7 +22,7 @@ use crate::dom::bindings::root::{DomRoot, MutNullableDom};
|
|||
use crate::dom::bindings::str::DOMString;
|
||||
use crate::dom::document::Document;
|
||||
use crate::dom::domtokenlist::DOMTokenList;
|
||||
use crate::dom::element::{AttributeMutation, Element};
|
||||
use crate::dom::element::{reflect_referrer_policy_attribute, AttributeMutation, Element};
|
||||
use crate::dom::event::Event;
|
||||
use crate::dom::eventtarget::EventTarget;
|
||||
use crate::dom::htmlelement::HTMLElement;
|
||||
|
@ -362,6 +362,14 @@ impl HTMLAreaElementMethods<crate::DomTypeHolder> for HTMLAreaElement {
|
|||
)
|
||||
})
|
||||
}
|
||||
|
||||
/// <https://html.spec.whatwg.org/multipage/#attr-iframe-referrerpolicy>
|
||||
fn ReferrerPolicy(&self) -> DOMString {
|
||||
reflect_referrer_policy_attribute(self.upcast::<Element>())
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#attr-iframe-referrerpolicy
|
||||
make_setter!(SetReferrerPolicy, "referrerpolicy");
|
||||
}
|
||||
|
||||
impl Activatable for HTMLAreaElement {
|
||||
|
|
|
@ -69,8 +69,8 @@ use crate::dom::bindings::str::{DOMString, USVString};
|
|||
use crate::dom::document::{determine_policy_for_token, Document};
|
||||
use crate::dom::element::{
|
||||
cors_setting_for_element, referrer_policy_for_element, reflect_cross_origin_attribute,
|
||||
set_cross_origin_attribute, AttributeMutation, CustomElementCreationMode, Element,
|
||||
ElementCreator, LayoutElementHelpers,
|
||||
reflect_referrer_policy_attribute, set_cross_origin_attribute, AttributeMutation,
|
||||
CustomElementCreationMode, Element, ElementCreator, LayoutElementHelpers,
|
||||
};
|
||||
use crate::dom::event::Event;
|
||||
use crate::dom::eventtarget::EventTarget;
|
||||
|
@ -1691,11 +1691,9 @@ impl HTMLImageElementMethods<crate::DomTypeHolder> for HTMLImageElement {
|
|||
}
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-img-referrerpolicy
|
||||
/// <https://html.spec.whatwg.org/multipage/#dom-img-referrerpolicy>
|
||||
fn ReferrerPolicy(&self) -> DOMString {
|
||||
let element = self.upcast::<Element>();
|
||||
let current_policy_value = element.get_string_attribute(&local_name!("referrerpolicy"));
|
||||
get_correct_referrerpolicy_from_raw_token(¤t_policy_value)
|
||||
reflect_referrer_policy_attribute(self.upcast::<Element>())
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-img-referrerpolicy
|
||||
|
|
|
@ -32,6 +32,8 @@ interface HTMLAnchorElement : HTMLElement {
|
|||
[CEReactions, Pure]
|
||||
attribute DOMString text;
|
||||
|
||||
[CEReactions] attribute DOMString referrerPolicy;
|
||||
|
||||
// also has obsolete members
|
||||
};
|
||||
HTMLAnchorElement includes HTMLHyperlinkElementUtils;
|
||||
|
|
|
@ -22,6 +22,7 @@ interface HTMLAreaElement : HTMLElement {
|
|||
[CEReactions]
|
||||
attribute DOMString rel;
|
||||
[SameObject, PutForwards=value] readonly attribute DOMTokenList relList;
|
||||
[CEReactions] attribute DOMString referrerPolicy;
|
||||
// hreflang and type are not reflected
|
||||
};
|
||||
//HTMLAreaElement includes HTMLHyperlinkElementUtils;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue