diff options
Diffstat (limited to 'components/script/dom/htmlformelement.rs')
-rwxr-xr-x | components/script/dom/htmlformelement.rs | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/components/script/dom/htmlformelement.rs b/components/script/dom/htmlformelement.rs index 4b1f3611e52..9e988515ac0 100755 --- a/components/script/dom/htmlformelement.rs +++ b/components/script/dom/htmlformelement.rs @@ -41,7 +41,8 @@ use crate::dom::htmloutputelement::HTMLOutputElement; use crate::dom::htmlselectelement::HTMLSelectElement; use crate::dom::htmltextareaelement::HTMLTextAreaElement; use crate::dom::node::{document_from_node, window_from_node}; -use crate::dom::node::{Node, NodeFlags, UnbindContext, VecPreOrderInsertionHelper}; +use crate::dom::node::{Node, NodeFlags, ShadowIncluding}; +use crate::dom::node::{UnbindContext, VecPreOrderInsertionHelper}; use crate::dom::validitystate::ValidationFlags; use crate::dom::virtualmethods::VirtualMethods; use crate::dom::window::Window; @@ -55,6 +56,7 @@ use html5ever::{LocalName, Prefix}; use hyper::Method; use mime::{self, Mime}; use net_traits::http_percent_encode; +use net_traits::request::Referrer; use script_traits::LoadData; use servo_rand::random; use std::borrow::ToOwned; @@ -400,8 +402,8 @@ impl HTMLFormElement { let mut load_data = LoadData::new( action_components, None, + Some(Referrer::ReferrerUrl(target_document.url())), target_document.get_referrer_policy(), - Some(target_document.url()), ); // Step 22 @@ -581,7 +583,7 @@ impl HTMLFormElement { // form, refactor this when html5ever's form owner PR lands // Step 1-3 let invalid_controls = node - .traverse_preorder() + .traverse_preorder(ShadowIncluding::No) .filter_map(|field| { if let Some(el) = field.downcast::<Element>() { if el.disabled_state() { @@ -1099,7 +1101,7 @@ pub trait FormControl: DomObject { let form_id = elem.get_string_attribute(&local_name!("form")); let node = elem.upcast::<Node>(); - if self.is_listed() && !form_id.is_empty() && node.is_in_doc() { + if self.is_listed() && !form_id.is_empty() && node.is_connected() { let doc = document_from_node(node); doc.register_form_id_listener(form_id, self); } |