diff options
author | Anthony Ramine <n.oxyde@gmail.com> | 2016-10-01 03:01:54 +0200 |
---|---|---|
committer | Anthony Ramine <n.oxyde@gmail.com> | 2016-10-06 20:59:11 +0200 |
commit | 14a0b8d88c7def8a247603cb8548e50087acdbc9 (patch) | |
tree | f5e9b8a93228d39e95750289c01722108dc9c74f /components/script/dom/console.rs | |
parent | d7c2da450bb7a4e1b393c1260cd13ec658d408f0 (diff) | |
download | servo-14a0b8d88c7def8a247603cb8548e50087acdbc9.tar.gz servo-14a0b8d88c7def8a247603cb8548e50087acdbc9.zip |
Move console timers to GlobalScope
Diffstat (limited to 'components/script/dom/console.rs')
-rw-r--r-- | components/script/dom/console.rs | 41 |
1 files changed, 2 insertions, 39 deletions
diff --git a/components/script/dom/console.rs b/components/script/dom/console.rs index ad28c585248..09180ced2c2 100644 --- a/components/script/dom/console.rs +++ b/components/script/dom/console.rs @@ -3,12 +3,8 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use devtools_traits::{ConsoleMessage, LogLevel, ScriptToDevtoolsControlMsg}; -use dom::bindings::cell::DOMRefCell; use dom::bindings::global::GlobalRef; use dom::bindings::str::DOMString; -use std::collections::HashMap; -use std::collections::hash_map::Entry; -use time::{Timespec, get_time}; // https://developer.mozilla.org/en-US/docs/Web/API/Console pub struct Console(()); @@ -83,7 +79,7 @@ impl Console { // https://developer.mozilla.org/en-US/docs/Web/API/Console/time pub fn Time(global: GlobalRef, label: DOMString) { - if let Ok(()) = global.console_timers().time(label.clone()) { + if let Ok(()) = global.as_global_scope().time(label.clone()) { let message = DOMString::from(format!("{}: timer started", label)); println!("{}", message); Self::send_to_devtools(global, LogLevel::Log, message); @@ -92,7 +88,7 @@ impl Console { // https://developer.mozilla.org/en-US/docs/Web/API/Console/timeEnd pub fn TimeEnd(global: GlobalRef, label: DOMString) { - if let Ok(delta) = global.console_timers().time_end(&label) { + if let Ok(delta) = global.as_global_scope().time_end(&label) { let message = DOMString::from( format!("{}: {}ms", label, delta) ); @@ -102,10 +98,6 @@ impl Console { } } -fn timestamp_in_ms(time: Timespec) -> u64 { - (time.sec * 1000 + (time.nsec / 1000000) as i64) as u64 -} - fn prepare_message(log_level: LogLevel, message: DOMString) -> ConsoleMessage { // TODO: Sending fake values for filename, lineNumber and columnNumber in LogMessage; adjust later ConsoleMessage { @@ -116,32 +108,3 @@ fn prepare_message(log_level: LogLevel, message: DOMString) -> ConsoleMessage { columnNumber: 1, } } - -#[derive(HeapSizeOf, JSTraceable)] -pub struct TimerSet(DOMRefCell<HashMap<DOMString, u64>>); - -impl TimerSet { - pub fn new() -> Self { - TimerSet(DOMRefCell::new(Default::default())) - } - - fn time(&self, label: DOMString) -> Result<(), ()> { - let mut timers = self.0.borrow_mut(); - if timers.len() >= 10000 { - return Err(()); - } - match timers.entry(label) { - Entry::Vacant(entry) => { - entry.insert(timestamp_in_ms(get_time())); - Ok(()) - }, - Entry::Occupied(_) => Err(()), - } - } - - fn time_end(&self, label: &str) -> Result<u64, ()> { - self.0.borrow_mut().remove(label).ok_or(()).map(|start| { - timestamp_in_ms(get_time()) - start - }) - } -} |