mirror of
https://github.com/servo/servo.git
synced 2025-08-06 14:10:11 +01:00
Add DOM-related performance timing properties
This commit is contained in:
parent
27e104aa1a
commit
e49d592fba
4 changed files with 91 additions and 7 deletions
|
@ -4,9 +4,11 @@
|
|||
|
||||
use dom::bindings::codegen::Bindings::PerformanceTimingBinding;
|
||||
use dom::bindings::codegen::Bindings::PerformanceTimingBinding::PerformanceTimingMethods;
|
||||
use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods;
|
||||
use dom::bindings::global::GlobalRef;
|
||||
use dom::bindings::js::Root;
|
||||
use dom::bindings::js::{JS, Root};
|
||||
use dom::bindings::reflector::{Reflector, reflect_dom_object};
|
||||
use dom::document::Document;
|
||||
use dom::window::Window;
|
||||
|
||||
#[dom_struct]
|
||||
|
@ -14,15 +16,19 @@ pub struct PerformanceTiming {
|
|||
reflector_: Reflector,
|
||||
navigationStart: u64,
|
||||
navigationStartPrecise: f64,
|
||||
document: JS<Document>,
|
||||
}
|
||||
|
||||
impl PerformanceTiming {
|
||||
fn new_inherited(navStart: u64, navStartPrecise: f64)
|
||||
fn new_inherited(navStart: u64,
|
||||
navStartPrecise: f64,
|
||||
document: &Document)
|
||||
-> PerformanceTiming {
|
||||
PerformanceTiming {
|
||||
reflector_: Reflector::new(),
|
||||
navigationStart: navStart,
|
||||
navigationStartPrecise: navStartPrecise,
|
||||
document: JS::from_ref(document),
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -31,19 +37,45 @@ impl PerformanceTiming {
|
|||
navigation_start: u64,
|
||||
navigation_start_precise: f64)
|
||||
-> Root<PerformanceTiming> {
|
||||
|
||||
let timing = PerformanceTiming::new_inherited(navigation_start,
|
||||
navigation_start_precise);
|
||||
navigation_start_precise,
|
||||
window.Document().r());
|
||||
reflect_dom_object(box timing, GlobalRef::Window(window),
|
||||
PerformanceTimingBinding::Wrap)
|
||||
}
|
||||
}
|
||||
|
||||
impl PerformanceTimingMethods for PerformanceTiming {
|
||||
// https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/
|
||||
// NavigationTiming/Overview.html#dom-performancetiming-navigationstart
|
||||
// https://w3c.github.io/navigation-timing/#widl-PerformanceTiming-navigationStart
|
||||
fn NavigationStart(&self) -> u64 {
|
||||
self.navigationStart
|
||||
}
|
||||
|
||||
// https://w3c.github.io/navigation-timing/#widl-PerformanceTiming-domLoading
|
||||
fn DomLoading(&self) -> u64 {
|
||||
self.document.get_dom_loading()
|
||||
}
|
||||
|
||||
// https://w3c.github.io/navigation-timing/#widl-PerformanceTiming-domInteractive
|
||||
fn DomInteractive(&self) -> u64 {
|
||||
self.document.get_dom_interactive()
|
||||
}
|
||||
|
||||
// https://w3c.github.io/navigation-timing/#widl-PerformanceTiming-domContentLoadedEventStart
|
||||
fn DomContentLoadedEventStart(&self) -> u64 {
|
||||
self.document.get_dom_content_loaded_event_start()
|
||||
}
|
||||
|
||||
// https://w3c.github.io/navigation-timing/#widl-PerformanceTiming-domContentLoadedEventEnd
|
||||
fn DomContentLoadedEventEnd(&self) -> u64 {
|
||||
self.document.get_dom_content_loaded_event_end()
|
||||
}
|
||||
|
||||
// https://w3c.github.io/navigation-timing/#widl-PerformanceTiming-domComplete
|
||||
fn DomComplete(&self) -> u64 {
|
||||
self.document.get_dom_complete()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue