mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
refactoring with ResourceFetchMetadata implemented deprecated window.timing functionality created ResourceTimingListener trait fixed w3c links in navigation timing updated include.ini to run resource timing tests on ci
88 lines
2.5 KiB
Rust
88 lines
2.5 KiB
Rust
/* 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 https://mozilla.org/MPL/2.0/. */
|
|
|
|
use crate::dom::bindings::codegen::Bindings::PerformanceEntryBinding;
|
|
use crate::dom::bindings::codegen::Bindings::PerformanceEntryBinding::PerformanceEntryMethods;
|
|
use crate::dom::bindings::num::Finite;
|
|
use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
|
|
use crate::dom::bindings::root::DomRoot;
|
|
use crate::dom::bindings::str::DOMString;
|
|
use crate::dom::globalscope::GlobalScope;
|
|
use dom_struct::dom_struct;
|
|
|
|
#[dom_struct]
|
|
pub struct PerformanceEntry {
|
|
reflector_: Reflector,
|
|
name: DOMString,
|
|
entry_type: DOMString,
|
|
start_time: f64,
|
|
duration: f64,
|
|
}
|
|
|
|
impl PerformanceEntry {
|
|
pub fn new_inherited(
|
|
name: DOMString,
|
|
entry_type: DOMString,
|
|
start_time: f64,
|
|
duration: f64,
|
|
) -> PerformanceEntry {
|
|
PerformanceEntry {
|
|
reflector_: Reflector::new(),
|
|
name,
|
|
entry_type,
|
|
start_time,
|
|
duration,
|
|
}
|
|
}
|
|
|
|
#[allow(unrooted_must_root)]
|
|
pub fn new(
|
|
global: &GlobalScope,
|
|
name: DOMString,
|
|
entry_type: DOMString,
|
|
start_time: f64,
|
|
duration: f64,
|
|
) -> DomRoot<PerformanceEntry> {
|
|
let entry = PerformanceEntry::new_inherited(name, entry_type, start_time, duration);
|
|
reflect_dom_object(Box::new(entry), global, PerformanceEntryBinding::Wrap)
|
|
}
|
|
|
|
pub fn entry_type(&self) -> &DOMString {
|
|
&self.entry_type
|
|
}
|
|
|
|
pub fn name(&self) -> &DOMString {
|
|
&self.name
|
|
}
|
|
|
|
pub fn start_time(&self) -> f64 {
|
|
self.start_time
|
|
}
|
|
|
|
pub fn duration(&self) -> f64 {
|
|
self.duration
|
|
}
|
|
}
|
|
|
|
impl PerformanceEntryMethods for PerformanceEntry {
|
|
// https://w3c.github.io/performance-timeline/#dom-performanceentry-name
|
|
fn Name(&self) -> DOMString {
|
|
DOMString::from(self.name.clone())
|
|
}
|
|
|
|
// https://w3c.github.io/performance-timeline/#dom-performanceentry-entrytype
|
|
fn EntryType(&self) -> DOMString {
|
|
DOMString::from(self.entry_type.clone())
|
|
}
|
|
|
|
// https://w3c.github.io/performance-timeline/#dom-performanceentry-starttime
|
|
fn StartTime(&self) -> Finite<f64> {
|
|
Finite::wrap(self.start_time)
|
|
}
|
|
|
|
// https://w3c.github.io/performance-timeline/#dom-performanceentry-duration
|
|
fn Duration(&self) -> Finite<f64> {
|
|
Finite::wrap(self.duration)
|
|
}
|
|
}
|