Expose requestIdleCallback on Window and implement running callbacks
in idle periods by posting rICs to the main threads idle queue.
MozReview-Commit-ID: KSYQsyaZ6is
The requestIdleCallback feature behaves in many ways as setTimeout
since it takes an optional timout when the idle callback will be
called regardless of the user agent being idle or not. This means that
the same mechanisms controlling setTimeout are needed for
requestIdleCallback.
MozReview-Commit-ID: 9mESsJnUexf
This will be used to pass through information like the triggering principal and
whatnot, as well as the boolean for not sending a referrer, for rel=noreferrer
links.
The idea is to not make consumers think about whether the principal exists or
not when the caller knows for sure that it does.
The substantive changes are in dom/bindings, nsHTMLDocument::SetDesignMode, and
around the CanUseStorage bits. Everything else is pretty mechanical.
- WebVR 1.0 includes a new property added to Navigator,
activeVRDisplays
- Please apply the patchset in Bug 1250244 first.
MozReview-Commit-ID: 6wffkwvKllW
The only implementation of SetSizeMode() that can fail is the nsCocoaWindow
one, on an Objective C exception, which is unlikely and can be swallowed.
This allows some nsGlobalWindow functions to become infallible as well.
- In order to reduce the size of the following patches
and increase their readability, we rename VRDevice
to VRDisplay here first.
MozReview-Commit-ID: 3pv8scdIi5w
What we have right now is not very usable, because you can only enable/disable
on the scriptable top of the window, but it's not at all obvious that this is
the case when using the API.
This addresses the review comment from bug 1177155 comment 16 so that
the assertion and code to avoid breaking assertion in valid path are no
longer needed.
MozReview-Commit-ID: GHIYQwyoejC
Slow script events are when the script hangs the page's process (that's the content process on e10s).
For further reference, see https://wiki.mozilla.org/Electrolysis/Release_Criteria/Slow_Script. The measure is necessary because SLOW_SCRIPT_NOTICE_COUNT is not comparable between e10s and non-e10s, while SLOW_SCRIPT_PAGE_COUNT will be. This is necessary for evaluating the slow script e10s release criteria.
The measure requires a new field in nsGlobalWindow because we need to keep track of when the page changes in order to know whether we need to count a slow script event. This is a relatively clean option compared to keeping track of that state in XPCJSRuntime or dom::Navigator.