diff options
Diffstat (limited to 'components/script/dom/window.rs')
-rw-r--r-- | components/script/dom/window.rs | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs index 487bf48eaba..3c87e5f6b0b 100644 --- a/components/script/dom/window.rs +++ b/components/script/dom/window.rs @@ -184,8 +184,8 @@ pub struct Window { history: MutNullableJS<History>, custom_element_registry: MutNullableJS<CustomElementRegistry>, performance: MutNullableJS<Performance>, - navigation_start: u64, - navigation_start_precise: f64, + navigation_start: Cell<u64>, + navigation_start_precise: Cell<f64>, screen: MutNullableJS<Screen>, session_storage: MutNullableJS<Storage>, local_storage: MutNullableJS<Storage>, @@ -702,8 +702,8 @@ impl WindowMethods for Window { // NavigationTiming/Overview.html#sec-window.performance-attribute fn Performance(&self) -> Root<Performance> { self.performance.or_init(|| { - Performance::new(self, self.navigation_start, - self.navigation_start_precise) + Performance::new(self, self.navigation_start.get(), + self.navigation_start_precise.get()) }) } @@ -1772,6 +1772,13 @@ impl Window { pub fn unminified_js_dir(&self) -> Option<String> { self.unminified_js_dir.borrow().clone() } + + pub fn set_navigation_start(&self) { + let current_time = time::get_time(); + let now = (current_time.sec * 1000 + current_time.nsec as i64 / 1000000) as u64; + self.navigation_start.set(now); + self.navigation_start_precise.set(time::precise_time_ns() as f64); + } } impl Window { @@ -1799,6 +1806,8 @@ impl Window { parent_info: Option<(PipelineId, FrameType)>, window_size: Option<WindowSizeData>, origin: MutableOrigin, + navigation_start: u64, + navigation_start_precise: f64, webvr_thread: Option<IpcSender<WebVRMsg>>) -> Root<Window> { let layout_rpc: Box<LayoutRPC + Send> = { @@ -1810,7 +1819,6 @@ impl Window { pipelineid: id, script_chan: Arc::new(Mutex::new(control_chan)), }; - let current_time = time::get_time(); let win = box Window { globalscope: GlobalScope::new_inherited( @@ -1837,8 +1845,8 @@ impl Window { window_proxy: Default::default(), document: Default::default(), performance: Default::default(), - navigation_start: (current_time.sec * 1000 + current_time.nsec as i64 / 1000000) as u64, - navigation_start_precise: time::precise_time_ns() as f64, + navigation_start: Cell::new(navigation_start), + navigation_start_precise: Cell::new(navigation_start_precise), screen: Default::default(), session_storage: Default::default(), local_storage: Default::default(), |