aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/performancetiming.rs
diff options
context:
space:
mode:
authorGreg Guthe <greg.guthe@gmail.com>2015-08-14 20:47:26 -0400
committerGreg Guthe <greg.guthe@gmail.com>2015-11-13 17:51:34 -0500
commite49d592fba1d73f37017fa900c8494076a60d447 (patch)
treeea8a5d6488f9ef3ea007d13a5e8362361876c021 /components/script/dom/performancetiming.rs
parent27e104aa1a62978bf2dd8b6a65963a2466af936a (diff)
downloadservo-e49d592fba1d73f37017fa900c8494076a60d447.tar.gz
servo-e49d592fba1d73f37017fa900c8494076a60d447.zip
Add DOM-related performance timing properties
Diffstat (limited to 'components/script/dom/performancetiming.rs')
-rw-r--r--components/script/dom/performancetiming.rs42
1 files changed, 37 insertions, 5 deletions
diff --git a/components/script/dom/performancetiming.rs b/components/script/dom/performancetiming.rs
index 1799d6a7f91..c9f2458de3e 100644
--- a/components/script/dom/performancetiming.rs
+++ b/components/script/dom/performancetiming.rs
@@ -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()
+ }
}