diff --git a/components/script/dom/event.rs b/components/script/dom/event.rs index 637bd259035..6d7ce64bf5e 100644 --- a/components/script/dom/event.rs +++ b/components/script/dom/event.rs @@ -245,3 +245,13 @@ impl Reflectable for Event { &self.reflector_ } } + +pub trait EventHelpers { + fn set_trusted(self, trusted: bool); +} + +impl<'a> EventHelpers for JSRef<'a, Event> { + fn set_trusted(self, trusted: bool) { + self.trusted.set(trusted); + } +} diff --git a/components/script/dom/htmlformelement.rs b/components/script/dom/htmlformelement.rs index 3ac799fdc04..1d12bdebf39 100644 --- a/components/script/dom/htmlformelement.rs +++ b/components/script/dom/htmlformelement.rs @@ -15,7 +15,7 @@ use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::{Document, DocumentHelpers}; use dom::element::{Element, AttributeHandlers, HTMLFormElementTypeId, HTMLTextAreaElementTypeId, HTMLDataListElementTypeId}; use dom::element::{HTMLInputElementTypeId, HTMLButtonElementTypeId, HTMLObjectElementTypeId, HTMLSelectElementTypeId}; -use dom::event::{Event, Bubbles, Cancelable}; +use dom::event::{Event, EventHelpers, Bubbles, Cancelable}; use dom::eventtarget::{EventTarget, NodeTargetTypeId}; use dom::htmlelement::HTMLElement; use dom::htmlinputelement::HTMLInputElement; @@ -142,6 +142,7 @@ impl<'a> HTMLFormElementHelpers for JSRef<'a, HTMLFormElement> { let event = Event::new(Window(*win), "submit".to_string(), Bubbles, Cancelable).root(); + event.set_trusted(true); let target: JSRef = EventTargetCast::from_ref(self); target.DispatchEvent(*event).ok(); if event.DefaultPrevented() {