Struct script::timers::OneshotTimers

source ·
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<Instant>>,
    suspension_offset: Cell<Duration>,
    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<Instant>>§suspension_offset: Cell<Duration>

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: Duration, 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, can_gc: CanGc)

source

fn base_time(&self) -> Instant

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: Duration, 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 T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> Downcast<T> for T

source§

fn downcast(&self) -> &T

source§

impl<T> Filterable for T

source§

fn filterable( self, filter_name: &'static str, ) -> RequestFilterDataProvider<T, fn(_: DataRequest<'_>) -> bool>

Creates a filterable data provider with the given name for debugging. 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 T
where 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> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

impl<T> MaybeBoxed<Box<T>> for T

source§

fn maybe_boxed(self) -> Box<T>

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 for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where 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 T
where 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<T> Upcast<T> for T

source§

fn upcast(&self) -> Option<&T>

source§

impl<V, T> VZip<V> for T
where 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> ErasedDestructor for T
where T: 'static,

source§

impl<T> MaybeSendSync for T