Commit Graph

13 Commits

Author SHA1 Message Date
Ehsan Akhgari
28b71db5ec Bug 1312514 - Part 1: Split tracking and non-tracking timeouts into two separate lists; r=bkelly
This will allow us to schedule these timers differently in the future.
This patch only performs the refactoring, and is not intended to change
any behavior.  Specifically, this patch doesn't change the order in
which timeouts are fired -- they should still all be fired according to
the mWhen field.

The implementation works by splitting timeout storage per window into
two Timeouts objects, mNormalTimeouts and mTrackingTimeouts.  The ForEach
helper methods are extended to deal with both of these objects, and as a
result, most of the algorithms operating on the list of timeouts work
correctly without any modification, with the notable exception of
RunTimeout.

In RunTimeout(), the order in which Timeout objects are processed does
matter, so for that case we use the OrderedTimeoutIterator class to
iterate over both linked lists simultaneously in the mWhen order.  Also,
inserting the dummy timeout when running the timeouts is only necessary
for the linked list where the last expired timeout is coming from, so we
only inject the dummy timer into the corresponding list, therefore we
remember which list we picked the last expired timeout from when
looking for it.
2016-12-20 12:40:26 -05:00
Ehsan Akhgari
ba45de7747 Bug 1321903 - Refactor the timeout/interval management code out of nsGlobalWindow; r=bkelly
This code now lives in TimeoutManager.  Note that this is a transition
state, the Timeout list management code also needs to be refactored out
later.

In order to simplify the lifetime management of the new class, its
lifetime is equal to the lifetime of its containing nsGlobalWindow.  In
a few places where we need to dispatch runnables to do asynchronous work
on this object, we hold the containing window alive to guarantee safety.

This patch also removes a bit of dead code that was left over from the
code removed in bug 1281793. See:
https://hg.mozilla.org/mozilla-central/rev/0ac748f4d677#l1.63
2016-12-13 14:08:47 -05:00
Daosheng Mu
eb4ff2b641 Bug 1299932 - Part 1: Implement gamepadPose attribute in Gamepad API; r=kip,qdot
MozReview-Commit-ID: DiJadVc2TyE
2016-10-24 18:04:41 +08:00
Ben Kelly
dd034d74fa Bug 1300659 P3 Make setTimeout() and setInterval() use the TabGroup ThrottledEventQueue. r=smaug 2016-11-07 12:30:17 -08:00
Andreas Farre
3ab0673319 Bug 1198381 - Extend setTimeout handling in nsGlobalWindow, r=smaug
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
2016-08-22 15:07:50 +02:00
Andreas Farre
a1bf32bb0a Bug 1198381 - Extract nsITimeoutHandler from nsIScriptTimeoutHandler. r=smaug
MozReview-Commit-ID: HJHrbodWYVf
2016-10-05 14:26:08 +02:00
Andreas Farre
95c440b772 Bug 1198381 - Move/rename nsTimeout to Timeout, r=smaug
MozReview-Commit-ID: 1WrH2ZbOuzj
2016-08-22 14:52:19 +02:00
Carsten "Tomcat" Book
be05d6bf8b Backed out changeset 228cc133fe6b (bug 1198381) for causing increased number of hangs in navigate() in marionette tests 2016-10-25 12:34:22 +02:00
Carsten "Tomcat" Book
48b41a87ad Backed out changeset 24839edcf0ef (bug 1198381) 2016-10-25 12:33:00 +02:00
Carsten "Tomcat" Book
50bf70ea06 Backed out changeset ffaf3d371130 (bug 1198381) 2016-10-25 12:32:58 +02:00
Andreas Farre
8be8404a91 Bug 1198381 - Extend setTimeout handling in nsGlobalWindow, r=smaug
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
2016-08-22 15:07:50 +02:00
Andreas Farre
e8a146b724 Bug 1198381 - Extract nsITimeoutHandler from nsIScriptTimeoutHandler. r=smaug
MozReview-Commit-ID: HJHrbodWYVf
2016-10-05 14:26:08 +02:00
Andreas Farre
f291dc880c Bug 1198381 - Move/rename nsTimeout to Timeout, r=smaug
MozReview-Commit-ID: 1WrH2ZbOuzj
2016-08-22 14:52:19 +02:00