Gecko engine for Wine
Go to file
Brian Birtles 081e37723f Bug 1078122 part 6 - Store the previous finished state; r=dholbert
AnimationPlayer::CanThrottle determines if an animation player has just finished
by inspecting the value of mLastNotification. This is problematic for two
reasons:

1. mLastNotification is intended to be used for events (as the XXX comment
   notes)
2. mLastNotification is specific to CSS Animations and should be moved to
   CSSAnimationPlayer.

To address this, this patch adds an extra member mIsPreviousStateFinished. The
Web Animations spec already defines animation players as having such a member:

  http://w3c.github.io/web-animations/#previous-finished-state

We set it to true when we calculate the style for an animation that has
finished. This differs slightly from the code it is replacing as explained
below.

In the case of CSS Animations we perform the following sequence of steps on each
sample.

  1. EnsureStyleRuleFor (calls CanThrottle, and maybe ComposeStyle)
  2. GetEventsForCurrentTime

In the existing code, we update mLastNotification in (2) which happens on every
sample, even throttled samples.

In this patch, however, we update mIsPreviousStateFinished in (1) during the
ComposeStyle step which only happens for unthrottled samples. So, as of this
patch, in CanThrottle, we ask "have we newly entered the finished state since
the last *unthrottled* sample?", whereas previously we simply looked for
a change since the last sample, throttled or not. However, if the answer to the
question is "yes", then we'll run an unthrottled sample and update
mIsPreviousStateFinished so these should be functionally equivalent.

Another subtle difference is that this patch looks at the player's finished
state rather than the animation phase of its source content, and these will
produce different results in the case where the player is paused. However, since
paused animations are not run on the compositor, this should not matter.

In the case of CSS Transitions, AnimationPlayer::CanThrottle() is not currently
used and so mIsPreviousStateFinished is irrelevant.

Ultimately, both the existing and the new code is somewhat fragile but hopefully
this will be addressed by:
* Replacing mIsPreviousStateFinished with inspecting whether the finished
  promise is settled (bug 1074630),
* Merging more of the code in nsAnimationManager and nsTransitionManager and
  applying a unified approach to sampling that better accommodates these
  considerations.
2014-10-20 13:55:47 +09:00
accessible Backed out changeset a940b5a1f2f6 (bug 1075253) for mochitest-a11y orange. 2014-10-15 19:43:12 -04:00
addon-sdk Bug 1084385 - Clone chrome arrays before passing them to emitSync. r=gabor 2014-10-18 11:02:08 +02:00
b2g Backout changeset 96baea8ac9ab and 85fb6b5bc62a (part of resp. bug 922912 and bug 609976) because it appears it has not been necessary for a while 2014-10-18 16:16:17 +09:00
browser Bug 1051223 - Don't install service on updates if user originally selected not to install. r=rstrong 2014-10-18 20:28:27 -04:00
build Bug 1083887 - Package the clang-cl runtime library for ASAN on Windows ASAN builds; r=gps 2014-10-16 21:40:00 -04:00
caps Bug 1069694 - Remove OldDebugAPI from the browser. r=shu 2014-10-12 19:37:41 +02:00
chrome Bug 1066735 - Remove root b2g and android specific xpcshell manifests, r=chmanchester 2014-10-07 18:18:28 -04:00
config Followup to bug 609976 - MOZ_SHARED_ICU case for windows doesn't vary with JS_SHARED_LIBRARY. r=me 2014-10-18 13:09:25 +09:00
content Bug 1041594 - Fixed a race condition in the dispatching of mozinterruptbegin/end events in AudioContext, r=ehsan 2014-10-19 09:23:20 +01:00
db/sqlite3 Bug 1054680 - Upgrade SQLite to version 3.8.6 - Mozilla changes. r=asuth 2014-08-25 08:56:01 -04:00
docshell Bug 1063197 - Callsites of NS_NewInputStreamChannel in /docshell/ (r=bz) 2014-10-16 11:17:29 -07:00
dom Bug 1078122 part 6 - Store the previous finished state; r=dholbert 2014-10-20 13:55:47 +09:00
editor Bug 1083629 Use nsHTMLEditor::IsAcceptableInputEvent() instead of nsEditor::IsDescendantOfEditorRoot() for checking if a mouse down event target is in focused HTML editor r=ehsan 2014-10-17 10:09:32 +09:00
embedding Bug 1041180: Remove deprecated nsIChannelPolicy (r=sstamm,jduell,jst) 2014-10-15 19:11:45 -07:00
extensions Bug 1063197 - Callsites of NS_NewInputStreamChannel in /extensions/ (r=karlt) 2014-10-16 11:15:21 -07:00
gfx Back out changeset 197317c196cf (bug 1077301) for apparently breaking component alpha on some Windows variants (perhaps those without accelerated layers backends). 2014-10-20 00:23:46 -04:00
hal Bug 1075727 - Return success/failure in hal::EnableRDS, r=dhylands 2014-10-14 15:16:22 -04:00
image Bug 1063197 - Callsites of NS_NewInputStreamChannel in /image/ (r=seth) 2014-10-16 11:15:47 -07:00
intl Bug 1045958 - Use raw ICU instead of CoreServices API in Unicode collation on Mac OS X r=josh. 2014-10-08 22:43:47 +08:00
ipc Bug 1081010 - Part 1: Fix -Wswitch warning in ipc/chromium. r=tabraldes 2014-10-09 23:46:16 -07:00
js Bug 1084439. Remove ResolveWorkerClasses in favor of [Exposed=System] annotations. r=bholley 2014-10-19 22:25:49 -04:00
layout Bug 1078122 part 5 - Move CSSAnimationPlayer to nsAnimationManager; r=dholbert 2014-10-20 13:55:46 +09:00
media Bug 1063356 - Define __ANDROID__ for libvpx asm. r=kinetik,mshal 2014-10-16 13:39:20 -07:00
memory Bug 1084210 - Simplify tree traversal for memory/replace. r=mshal 2014-10-18 16:16:20 +09:00
mfbt Bug 1080968 - Add support for constexpr and explicit conversions on clang-cl; r=froydnj 2014-10-10 18:29:56 -04:00
mobile Backed out 3 changesets (bug 1075644) for Android build bustage on a CLOSED TREE 2014-10-17 11:33:15 -07:00
modules Bug 1027365 - Activate async-video by default when OMTC is on. r=jrmuizel 2014-10-17 19:23:25 +02:00
mozglue Bug 1082524 - Do not deref null pointers in link_map. r=nfroyd 2014-10-18 09:27:55 +09:00
netwerk Bug 898524: Part 2 - Avoid IPC roundtrips for synthesized responses. r=mayhemer 2014-10-17 09:55:09 -04:00
nsprpub Bug 1049006 - Update Mozilla 33 to use NSS 3.17 final and NSPR 4.10.7 final, r=wtc 2014-08-13 21:47:00 +02:00
other-licenses Bug 1077366 - Remove most symbol wrapping from Android builds. r=nfroyd 2014-10-14 07:17:13 +09:00
parser Bug 1063197 - Callsites of NS_NewInputStreamChannel in /parser/ (r=bz) 2014-10-16 11:17:07 -07:00
probes
profile Bug 1041941 - Use templates for programs, simple programs, libraries and C++ unit tests. r=gps 2014-09-03 14:10:54 +09:00
python Bug 1072024 - Fix TestGMPCrossOrigin when run with |mach gtest| - r=ted 2014-10-14 11:04:59 +13:00
rdf Bug 1063197 - Callsites of NS_NewInputStreamChannel in /rdf/ (r=bsmedberg) 2014-10-16 11:17:14 -07:00
security Bug 418354 - update test for bug 455367. Insecure image loads should be considered mixed display content regardless of whether image data was actually returned. r=honzab 2014-10-18 13:21:23 -07:00
services Bug 984172 (part 2) - replace Assert_rejects with Assert.rejects. r=ttaubert 2014-10-17 13:06:39 +11:00
startupcache Bug 1077282: Work around the fact that mozharness is not yet aware of the new GreD on OSX (bug 1080338). r=bsmedberg 2014-10-10 15:07:06 -04:00
storage Bug 1066735 - Remove root b2g and android specific xpcshell manifests, r=chmanchester 2014-10-07 18:18:28 -04:00
testing Bug 1083587 - Add host and olderShadowRoot properties to ShadowRoot interface. r=smaug 2014-10-15 18:25:45 -07:00
toolkit Bug 1084210 - Simplify tree traversal for memory/replace. r=mshal 2014-10-18 16:16:20 +09:00
tools Bug 1082554 (part 3) - Move diff-talos.py from tools/performance/ to testing/talos/. r=jmaher. 2014-10-15 17:52:41 -07:00
uriloader Bug 1071433 - Change order of audio/3gpp association for Gallery Apps. r=bz 2014-10-17 16:05:21 +09:00
view Bug 1048246 - Fix more bad implicit constructors in layout; r=roc 2014-08-07 19:48:38 -04:00
webapprt Bug 1006394 - Test installing apps from the webapp runtime. r=myk 2014-10-09 22:21:00 -04:00
widget Bug 1026865 - Fullscreen Maximize Fixed in nsWindow.cpp. r=bbondy 2014-10-18 20:42:43 -04:00
xpcom merge mozilla-inbound to mozilla-central a=merge 2014-10-16 16:07:06 +02:00
xpfe Bug 1041180: Remove deprecated nsIChannelPolicy (r=sstamm,jduell,jst) 2014-10-15 19:11:45 -07:00
xulrunner Bug 1061335 - Part 3: Switch Win32 builders to VS2013. r=glandium sr=bsmedberg 2014-10-14 15:31:23 +13:00
.clang-format
.clang-format-ignore
.gdbinit Fix the gdb helper for printing frametrees, no bug, DONTBUILD 2014-09-02 17:33:44 -04:00
.gitignore Bug 1065252 - Ignore Emacs .dir-locals.el. r=ted 2014-09-09 23:40:00 +02:00
.hgignore Bug 1044411 - Generate Loop ToS static content, r=abr,dmose; rs=ted for .hgignore changes 2014-08-26 12:58:00 -05:00
.hgtags No bug - Tagging mozilla-central cec1a116c4f9 with FIREFOX_AURORA_35_BASE a=release DONTBUILD CLOSED TREE 2014-10-13 13:37:55 -04:00
.lldbinit
.reviewboardrc
aclocal.m4 Bug 1081682 - Make --with-ccache use --with-compiler-wrapper under the hood. r=mshal 2014-10-15 14:47:02 +09:00
Android.mk
AUTHORS
client.mk Bug 1082323 - Reject pymake in client.mk. r=mshal 2014-10-14 14:19:02 +09:00
client.py
CLOBBER Followup to bug 609976 - Build ICU as a shared library on windows. r=mshal 2014-10-18 09:28:57 +09:00
configure.in Followup to bug 609976 - Build ICU as a shared library on windows. r=mshal 2014-10-18 09:28:57 +09:00
LEGAL
LICENSE
mach Bug 1043144 - Don't write machc bytecode file; r=mshal 2014-08-05 10:39:24 -07:00
Makefile.in Fixup for bug 1062668. r=me 2014-09-05 10:35:43 +09:00
moz.build Bug 1080910 - Add USE_ICU variable separated from ENABLE_INTL_API. r=glandium 2014-10-10 02:55:00 -04:00
mozilla-config.h.in
README.txt

An explanation of the Mozilla Source Code Directory Structure and links to
project pages with documentation can be found at:

    https://developer.mozilla.org/en/Mozilla_Source_Code_Directory_Structure

For information on how to build Mozilla from the source code, see:

    http://developer.mozilla.org/en/docs/Build_Documentation

To have your bug fix / feature added to Mozilla, you should create a patch and
submit it to Bugzilla (https://bugzilla.mozilla.org). Instructions are at:

    http://developer.mozilla.org/en/docs/Creating_a_patch
    http://developer.mozilla.org/en/docs/Getting_your_patch_in_the_tree

If you have a question about developing Mozilla, and can't find the solution
on http://developer.mozilla.org, you can try asking your question in a
mozilla.* Usenet group, or on IRC at irc.mozilla.org. [The Mozilla news groups
are accessible on Google Groups, or news.mozilla.org with a NNTP reader.]

You can download nightly development builds from the Mozilla FTP server.
Keep in mind that nightly builds, which are used by Mozilla developers for
testing, may be buggy. Firefox nightlies, for example, can be found at:

    ftp://ftp.mozilla.org/pub/firefox/nightly/latest-trunk/
            - or -
    http://nightly.mozilla.org/