aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhundredeir <hundredeir@protonmail.com>2019-03-23 23:51:37 +0530
committerhundredeir <20334754+hundredeir@users.noreply.github.com>2019-03-26 14:54:37 +0530
commit1a5e7b7cfb1b6491ffa61d9694df58ff015c70db (patch)
tree6727cf2832f62a3b9222575cbefd3b12e8364045
parent059ac12c00c4cfac4133b23fc3d81e71b90eb8e2 (diff)
downloadservo-1a5e7b7cfb1b6491ffa61d9694df58ff015c70db.tar.gz
servo-1a5e7b7cfb1b6491ffa61d9694df58ff015c70db.zip
Defer update of dom_content_loaded_event_end
Set it's value only after the "DOMContentLoaded" event is really fired
-rw-r--r--components/script/dom/document.rs19
1 files changed, 10 insertions, 9 deletions
diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs
index 012aaecbe4f..b59f9502d63 100644
--- a/components/script/dom/document.rs
+++ b/components/script/dom/document.rs
@@ -2184,18 +2184,19 @@ impl Document {
// Step 4.1.
let window = self.window();
+ let document = Trusted::new(self);
window
.task_manager()
.dom_manipulation_task_source()
- .queue_event(
- self.upcast(),
- atom!("DOMContentLoaded"),
- EventBubbles::Bubbles,
- EventCancelable::NotCancelable,
- window,
- );
-
- update_with_current_time_ms(&self.dom_content_loaded_event_end);
+ .queue(
+ task!(fire_dom_content_loaded_event: move || {
+ let document = document.root();
+ document.upcast::<EventTarget>().fire_bubbling_event(atom!("DOMContentLoaded"));
+ update_with_current_time_ms(&document.dom_content_loaded_event_end);
+ }),
+ window.upcast(),
+ )
+ .unwrap();
// html parsing has finished - set dom content loaded
self.interactive_time