aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/eventdispatcher.rs
diff options
context:
space:
mode:
authorAnthony Ramine <n.oxyde@gmail.com>2017-01-21 15:37:53 +0100
committerAnthony Ramine <n.oxyde@gmail.com>2017-01-22 15:02:34 +0100
commit7aea6e6ea3516e5f91bee35c96358bfacc453198 (patch)
treef5748a3ea5fad15d4e4ef126ba5d269d0d15e117 /components/script/dom/eventdispatcher.rs
parent8544c8c489833d97483e46d8823307a369f772ca (diff)
downloadservo-7aea6e6ea3516e5f91bee35c96358bfacc453198.tar.gz
servo-7aea6e6ea3516e5f91bee35c96358bfacc453198.zip
Kill AutoDOMEventMarker
Diffstat (limited to 'components/script/dom/eventdispatcher.rs')
-rw-r--r--components/script/dom/eventdispatcher.rs40
1 files changed, 7 insertions, 33 deletions
diff --git a/components/script/dom/eventdispatcher.rs b/components/script/dom/eventdispatcher.rs
index bdec56532dc..6e1bdd51c1b 100644
--- a/components/script/dom/eventdispatcher.rs
+++ b/components/script/dom/eventdispatcher.rs
@@ -2,8 +2,8 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-use devtools_traits::{StartedTimelineMarker, TimelineMarker, TimelineMarkerType};
-use dom::bindings::callback::ExceptionHandling::Report;
+use devtools_traits::{TimelineMarker, TimelineMarkerType};
+use dom::bindings::callback::ExceptionHandling;
use dom::bindings::codegen::Bindings::EventBinding::EventMethods;
use dom::bindings::inheritance::Castable;
use dom::bindings::js::{JS, Root, RootedReference};
@@ -15,36 +15,6 @@ use dom::node::Node;
use dom::virtualmethods::vtable_for;
use dom::window::Window;
-struct AutoDOMEventMarker {
- window: Root<Window>,
- marker: Option<StartedTimelineMarker>,
-}
-
-impl AutoDOMEventMarker {
- fn new(window: &Window) -> AutoDOMEventMarker {
- AutoDOMEventMarker {
- window: Root::from_ref(window),
- marker: Some(TimelineMarker::start("DOMEvent".to_owned())),
- }
- }
-}
-
-impl Drop for AutoDOMEventMarker {
- fn drop(&mut self) {
- self.window.emit_timeline_marker(self.marker.take().unwrap().end());
- }
-}
-
-fn handle_event(window: Option<&Window>, listener: &CompiledEventListener,
- current_target: &EventTarget, event: &Event) {
- let _marker;
- if let Some(window) = window {
- _marker = AutoDOMEventMarker::new(window);
- }
-
- listener.call_or_handle_event(current_target, event, Report);
-}
-
// See dispatch_event.
// https://dom.spec.whatwg.org/#concept-event-dispatch
fn dispatch_to_listeners(event: &Event, target: &EventTarget, event_path: &[&EventTarget]) {
@@ -210,7 +180,11 @@ fn inner_invoke(window: Option<&Window>,
// TODO: step 2.5.
// Step 2.6.
- handle_event(window, listener, object, event);
+ let marker = TimelineMarker::start("DOMEvent".to_owned());
+ listener.call_or_handle_event(object, event, ExceptionHandling::Report);
+ if let Some(window) = window {
+ window.emit_timeline_marker(marker.end());
+ }
if event.stop_immediate() {
return found;
}