partial interface Window { unsigned long requestIdleCallback(IdleRequestCallback callback, optional IdleRequestOptions options); void cancelIdleCallback(unsigned long handle); }; dictionary IdleRequestOptions { unsigned long timeout; }; [Exposed=Window] interface IdleDeadline { DOMHighResTimeStamp timeRemaining(); readonly attribute boolean didTimeout; }; callback IdleRequestCallback = void (IdleDeadline deadline);