aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/performancetiming.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/performancetiming.rs')
-rw-r--r--components/script/dom/performancetiming.rs61
1 files changed, 34 insertions, 27 deletions
diff --git a/components/script/dom/performancetiming.rs b/components/script/dom/performancetiming.rs
index 37001f5d15f..9f8a3a8b5f2 100644
--- a/components/script/dom/performancetiming.rs
+++ b/components/script/dom/performancetiming.rs
@@ -1,48 +1,50 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* 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/. */
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
-use dom::bindings::codegen::Bindings::PerformanceTimingBinding;
-use dom::bindings::codegen::Bindings::PerformanceTimingBinding::PerformanceTimingMethods;
-use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods;
-use dom::bindings::js::{JS, Root};
-use dom::bindings::reflector::{Reflector, reflect_dom_object};
-use dom::document::Document;
-use dom::window::Window;
+use crate::dom::bindings::codegen::Bindings::PerformanceTimingBinding;
+use crate::dom::bindings::codegen::Bindings::PerformanceTimingBinding::PerformanceTimingMethods;
+use crate::dom::bindings::codegen::Bindings::WindowBinding::WindowMethods;
+use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
+use crate::dom::bindings::root::{Dom, DomRoot};
+use crate::dom::document::Document;
+use crate::dom::window::Window;
use dom_struct::dom_struct;
#[dom_struct]
pub struct PerformanceTiming {
reflector_: Reflector,
navigation_start: u64,
- navigation_start_precise: f64,
- document: JS<Document>,
+ navigation_start_precise: u64,
+ document: Dom<Document>,
}
impl PerformanceTiming {
- fn new_inherited(nav_start: u64,
- nav_start_precise: f64,
- document: &Document)
- -> PerformanceTiming {
+ fn new_inherited(
+ nav_start: u64,
+ nav_start_precise: u64,
+ document: &Document,
+ ) -> PerformanceTiming {
PerformanceTiming {
reflector_: Reflector::new(),
navigation_start: nav_start,
navigation_start_precise: nav_start_precise,
- document: JS::from_ref(document),
+ document: Dom::from_ref(document),
}
}
#[allow(unrooted_must_root)]
- pub fn new(window: &Window,
- navigation_start: u64,
- navigation_start_precise: f64)
- -> Root<PerformanceTiming> {
- let timing = PerformanceTiming::new_inherited(navigation_start,
- navigation_start_precise,
- &window.Document());
- reflect_dom_object(box timing,
- window,
- PerformanceTimingBinding::Wrap)
+ pub fn new(
+ window: &Window,
+ navigation_start: u64,
+ navigation_start_precise: u64,
+ ) -> DomRoot<PerformanceTiming> {
+ let timing = PerformanceTiming::new_inherited(
+ navigation_start,
+ navigation_start_precise,
+ &window.Document(),
+ );
+ reflect_dom_object(Box::new(timing), window)
}
}
@@ -86,11 +88,16 @@ impl PerformanceTimingMethods for PerformanceTiming {
fn LoadEventEnd(&self) -> u64 {
self.document.get_load_event_end()
}
-}
+ // check-tidy: no specs after this line
+ // Servo-only timing for when top-level content (not iframes) is complete
+ fn TopLevelDomComplete(&self) -> u64 {
+ self.document.get_top_level_dom_complete()
+ }
+}
impl PerformanceTiming {
- pub fn navigation_start_precise(&self) -> f64 {
+ pub fn navigation_start_precise(&self) -> u64 {
self.navigation_start_precise
}
}