pub struct OneshotTimers {
    js_timers: JsTimers,
    timer_event_chan: DomRefCell<Option<IpcSender<TimerEvent>>>,
    scheduler_chan: IpcSender<TimerSchedulerMsg>,
    next_timer_handle: Cell<OneshotTimerHandle>,
    timers: DomRefCell<Vec<OneshotTimer>>,
    suspended_since: Cell<Option<MsDuration>>,
    suspension_offset: Cell<MsDuration>,
    expected_event_id: Cell<TimerEventId>,
}

Fields§

§js_timers: JsTimers§timer_event_chan: DomRefCell<Option<IpcSender<TimerEvent>>>

The sender, to be cloned for each timer, on which the timer scheduler in the constellation can send an event when the timer is due.

§scheduler_chan: IpcSender<TimerSchedulerMsg>

The sender to the timer scheduler in the constellation.

§next_timer_handle: Cell<OneshotTimerHandle>§timers: DomRefCell<Vec<OneshotTimer>>§suspended_since: Cell<Option<MsDuration>>§suspension_offset: Cell<MsDuration>

Initially 0, increased whenever the associated document is reactivated by the amount of ms the document was inactive. The current time can be offset back by this amount for a coherent time across document activations.

§expected_event_id: Cell<TimerEventId>

Calls to fire_timer with a different argument than this get ignored. They were previously scheduled and got invalidated when

  • timers were suspended,
  • the timer it was scheduled for got canceled or
  • a timer was added with an earlier callback time. In this case the original timer is rescheduled when it is the next one to get called.

Implementations§

source§

impl OneshotTimers

source

pub fn new(scheduler_chan: IpcSender<TimerSchedulerMsg>) -> OneshotTimers

source

pub fn setup_scheduling(&self, timer_event_chan: IpcSender<TimerEvent>)

source

pub fn schedule_callback( &self, callback: OneshotTimerCallback, duration: MsDuration, source: TimerSource ) -> OneshotTimerHandle

source

pub fn unschedule_callback(&self, handle: OneshotTimerHandle)

source

fn is_next_timer(&self, handle: OneshotTimerHandle) -> bool

source

pub fn fire_timer(&self, id: TimerEventId, global: &GlobalScope)

source

fn base_time(&self) -> MsDuration

source

pub fn slow_down(&self)

source

pub fn speed_up(&self)

source

pub fn suspend(&self)

source

pub fn resume(&self)

source

fn schedule_timer_call(&self)

source

fn invalidate_expected_event_id(&self) -> TimerEventId

source

pub fn set_timeout_or_interval( &self, global: &GlobalScope, callback: TimerCallback, arguments: Vec<HandleValue<'_>>, timeout: i32, is_interval: IsInterval, source: TimerSource ) -> i32

source

pub fn clear_timeout_or_interval(&self, global: &GlobalScope, handle: i32)

Trait Implementations§

source§

impl MallocSizeOf for OneshotTimers

source§

fn size_of(&self, ops: &mut MallocSizeOfOps) -> usize

Measure the heap usage of all descendant heap-allocated structures, but not the space taken up by the value itself.
source§

impl Traceable for OneshotTimers

source§

unsafe fn trace(&self, tracer: *mut JSTracer)

Trace self.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> MaybeBoxed<Box<T, Global>> for T

source§

fn maybe_boxed(self) -> Box<T, Global>

Convert
source§

impl<T> MaybeBoxed<T> for T

source§

fn maybe_boxed(self) -> T

Convert
source§

impl<T> Pointable for T

source§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

impl<T> Erased for T