mirror of
https://github.com/servo/servo.git
synced 2025-08-09 07:25:35 +01:00
Use TimerHandler IDL union type
This commit is contained in:
parent
2aca5c82e4
commit
1b22c10483
5 changed files with 54 additions and 97 deletions
|
@ -4,11 +4,10 @@
|
|||
|
||||
use crate::compartments::InCompartment;
|
||||
use crate::dom::bindings::cell::DomRefCell;
|
||||
use crate::dom::bindings::codegen::Bindings::FunctionBinding::Function;
|
||||
use crate::dom::bindings::codegen::Bindings::RequestBinding::RequestInit;
|
||||
use crate::dom::bindings::codegen::Bindings::WorkerBinding::WorkerType;
|
||||
use crate::dom::bindings::codegen::Bindings::WorkerGlobalScopeBinding::WorkerGlobalScopeMethods;
|
||||
use crate::dom::bindings::codegen::UnionTypes::RequestOrUSVString;
|
||||
use crate::dom::bindings::codegen::UnionTypes::{RequestOrUSVString, StringOrFunction};
|
||||
use crate::dom::bindings::error::{report_pending_exception, Error, ErrorResult, Fallible};
|
||||
use crate::dom::bindings::inheritance::Castable;
|
||||
use crate::dom::bindings::reflector::DomObject;
|
||||
|
@ -297,28 +296,16 @@ impl WorkerGlobalScopeMethods for WorkerGlobalScope {
|
|||
fn SetTimeout(
|
||||
&self,
|
||||
_cx: JSContext,
|
||||
callback: Rc<Function>,
|
||||
callback: StringOrFunction,
|
||||
timeout: i32,
|
||||
args: Vec<HandleValue>,
|
||||
) -> i32 {
|
||||
let callback = match callback {
|
||||
StringOrFunction::String(i) => TimerCallback::StringTimerCallback(i),
|
||||
StringOrFunction::Function(i) => TimerCallback::FunctionTimerCallback(i),
|
||||
};
|
||||
self.upcast::<GlobalScope>().set_timeout_or_interval(
|
||||
TimerCallback::FunctionTimerCallback(callback),
|
||||
args,
|
||||
timeout,
|
||||
IsInterval::NonInterval,
|
||||
)
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-windowtimers-settimeout
|
||||
fn SetTimeout_(
|
||||
&self,
|
||||
_cx: JSContext,
|
||||
callback: DOMString,
|
||||
timeout: i32,
|
||||
args: Vec<HandleValue>,
|
||||
) -> i32 {
|
||||
self.upcast::<GlobalScope>().set_timeout_or_interval(
|
||||
TimerCallback::StringTimerCallback(callback),
|
||||
callback,
|
||||
args,
|
||||
timeout,
|
||||
IsInterval::NonInterval,
|
||||
|
@ -335,28 +322,16 @@ impl WorkerGlobalScopeMethods for WorkerGlobalScope {
|
|||
fn SetInterval(
|
||||
&self,
|
||||
_cx: JSContext,
|
||||
callback: Rc<Function>,
|
||||
callback: StringOrFunction,
|
||||
timeout: i32,
|
||||
args: Vec<HandleValue>,
|
||||
) -> i32 {
|
||||
let callback = match callback {
|
||||
StringOrFunction::String(i) => TimerCallback::StringTimerCallback(i),
|
||||
StringOrFunction::Function(i) => TimerCallback::FunctionTimerCallback(i),
|
||||
};
|
||||
self.upcast::<GlobalScope>().set_timeout_or_interval(
|
||||
TimerCallback::FunctionTimerCallback(callback),
|
||||
args,
|
||||
timeout,
|
||||
IsInterval::Interval,
|
||||
)
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-windowtimers-setinterval
|
||||
fn SetInterval_(
|
||||
&self,
|
||||
_cx: JSContext,
|
||||
callback: DOMString,
|
||||
timeout: i32,
|
||||
args: Vec<HandleValue>,
|
||||
) -> i32 {
|
||||
self.upcast::<GlobalScope>().set_timeout_or_interval(
|
||||
TimerCallback::StringTimerCallback(callback),
|
||||
callback,
|
||||
args,
|
||||
timeout,
|
||||
IsInterval::Interval,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue