aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/script_task.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/script_task.rs')
-rw-r--r--components/script/script_task.rs11
1 files changed, 5 insertions, 6 deletions
diff --git a/components/script/script_task.rs b/components/script/script_task.rs
index ae27dc671c7..443bb8c37d6 100644
--- a/components/script/script_task.rs
+++ b/components/script/script_task.rs
@@ -1128,14 +1128,14 @@ impl ScriptTask {
node::from_untrusted_node_address(
self.js_runtime.ptr, node_address).root();
- let maybe_node = if !temp_node.is_element() {
- temp_node.ancestors().find(|node| node.is_element())
- } else {
- Some(*temp_node)
+ let maybe_node = match ElementCast::to_ref(*temp_node) {
+ Some(element) => Some(element),
+ None => temp_node.ancestors().filter_map(ElementCast::to_ref).next(),
};
match maybe_node {
- Some(node) => {
+ Some(el) => {
+ let node = NodeCast::from_ref(el);
debug!("clicked on {:s}", node.debug_str());
// Prevent click event if form control element is disabled.
if node.click_event_filter_by_disabled_state() { return; }
@@ -1153,7 +1153,6 @@ impl ScriptTask {
// https://dvcs.w3.org/hg/dom3events/raw-file/tip/html/DOM3-Events.html#trusted-events
event.set_trusted(true);
// https://html.spec.whatwg.org/multipage/interaction.html#run-authentic-click-activation-steps
- let el = ElementCast::to_ref(node).unwrap(); // is_element() check already exists above
el.authentic_click_activation(*event);
doc.commit_focus_transaction();