gecko-dev/layout
Boris Zbarsky 2d337f0522 Bug 650379. Add a new XPCOM timer type that is like TYPE_REPEATING_PRECISE but does not swamp the event queue if the callback takes longer than the timer interval to run. r=cjones, sr=brendan
This implements proposal 3 from bug 650379 comment 13.  The main difference
between TYPE_REPEATING_PRECISE and TYPE_REPEATING_PRECISE_CAN_SKIP is to not
AddTimer the REPEATING_PRECISE_CAN_SKIP timer until after the callback has run;
this guarantees that no more timer events will be posted until after the
callback finishes executing.  A secondary change is to make
REPEATING_PRECISE_CAN_SKIP timers advance their firing time to mDelay from when
PostTimerEvent is called, not mDelay from the old mTimeout.  While this arguably
makes them less precise, the alternative is that if a timer is significantly
delayed for some reason (e.g. because the user puts the computer to sleep for a
while) it will then fire a whole bunch of times to "catch up" to where it's
supposed to be, advancing its firing time by mDelay at a time.  That seems
undesirable.

An alternate approach would have been to readd the timer from inside
PostTimerEvent, but only if we're not in the middle of firing the timer. That
would allow more precise timers in the case when the callback is not taking too
long, but still handle gracefully the case when the callback is
slow. Unfortunately this falls down if something _else_ is hogging the main
thread event loop (e.g. some other timer has a slow callback, or whatever); in
that case we would post multiple events for the one precise timer while the
event-loop-hogging operation is running. So I don't think we should do that.
2011-04-28 19:33:52 -04:00
..
analysis
base Bug 650379. Add a new XPCOM timer type that is like TYPE_REPEATING_PRECISE but does not swamp the event queue if the callback takes longer than the timer interval to run. r=cjones, sr=brendan 2011-04-28 19:33:52 -04:00
build Backed out changeset ea9f9f5503fa 2011-04-27 19:10:01 -04:00
doc
forms Bug 610305: decom nsEventStateManager r=smaug 2011-04-21 19:35:52 +02:00
generic Bug 650379. Add a new XPCOM timer type that is like TYPE_REPEATING_PRECISE but does not swamp the event queue if the callback takes longer than the timer interval to run. r=cjones, sr=brendan 2011-04-28 19:33:52 -04:00
html/tests Bug 652167 - Remove space in filename from layout/html/tests/printer/js/change_while_in printdialog.html. r=philor 2011-04-27 16:53:52 -04:00
inspector Backout changeset 13f6847dd840 (bug 616684) because it changes code semantics in a bad way, which results in problems like the crash in bug 652580, possibly among others 2011-04-25 17:05:17 -04:00
ipc Bug 641426. Part 2: Remove a bunch of direct gfxRect::pos/size usage. r=joe 2011-04-19 15:07:21 +12:00
mathml Bug 651567: Remove unused variable 'xHeight' from nsMathMLmunderFrame. r=karlt 2011-04-21 10:08:11 -07:00
printing Bug 610305: decom nsEventStateManager r=smaug 2011-04-21 19:35:52 +02:00
reftests When we know a block can't fit, end ReflowBlockFrame early, in case a zero-height block tries to. (Bug 652178) r=roc 2011-04-28 10:21:36 -07:00
style Add support for regexp() function in @-moz-document rule. (Bug 398962) r=bzbarsky 2011-04-28 10:21:37 -07:00
svg Back out bug 263359 and bug 624798 because of performance regressions (bug 650189) 2011-04-27 11:47:18 +03:00
tables Bug 641426. Part 6: Rename Empty to SetEmpty. r=cjones 2011-04-19 15:07:23 +12:00
tools Bug 652501 - Part 2: Make existing plugin crash reftests clean up after themselves. r=roc 2011-04-26 15:02:38 +12:00
xul Back out bug 263359 and bug 624798 because of performance regressions (bug 650189) 2011-04-27 11:47:18 +03:00
Makefile.in Bug 639754 - Remove MOZ_IPC checks since IPC is always built now; r=bsmedberg 2011-04-02 19:14:00 -07:00