diff options
Diffstat (limited to 'components/script/dom/performancetiming.rs')
-rw-r--r-- | components/script/dom/performancetiming.rs | 61 |
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 } } |