Gecko engine for Wine
Go to file
Brian Birtles 4e070f4c17 Bug 1226118 part 8 - Add EffectCompositor::GetAnimationsForCompositor that uses the EffectSet rather than AnimationCollection; r=dholbert
This added method should behave in an equivalent manner to the existing
CommonAnimationManager::GetAnimationsForCompositor except for the following
differences:

* It uses the EffectSet attached to a target element rather than one of the
  AnimationCollection object on the owning element.

* It returns an array of Animation objects consisting of only those Animations
  that actually have the specified property as opposed to the
  AnimationCollection consisting of *all* CSS animations or *all* CSS
  transitions for the element regardless of whether they run on the compositor
  or not.

It may not be obvious why these two methods otherwise behave in an equivalent
fashion so the following explains how the existing code is mirrored in the new
method.

The existing code is as follows:

> AnimationCollection*
> CommonAnimationManager::GetAnimationsForCompositor(const nsIFrame* aFrame,
>                                                    nsCSSProperty aProperty)
> {
>   AnimationCollection* collection = GetAnimationCollection(aFrame);
>   if (!collection ||
>       !collection->HasCurrentAnimationOfProperty(aProperty) ||
>       !collection->CanPerformOnCompositorThread(aFrame)) {
>     return nullptr;
>   }
>
>   // This animation can be done on the compositor.
>   return collection;
> }

The new EffectCompositor::GetAnimationsForCompositor begins with two checks
performed at the beginning of CanPerformOnCompositorThread: the checks for
whether async animations are enabled or not and whether the frame has refused
async animations since these are cheap and it makes sense to check them first.

The next part of EffectCompositor::GetAnimationsForCompositor checks if there is
an EffectSet associated with the frame. This is equivalent to the check whether
|collection| is null or not above.

Following, we iterate through the effects in the EffectSet.

We first check if each effect is playing or not. In the above code,
HasCurrentAnimationOfProperty only checks if the effect is *current* or not.
However, CanPerformOnCompositorThread will only return true if it finds an
animation that can run on the compositor that is *playing*. Since playing is
a strict subset of current we only need to perform the more restrictive test.

Next we check if the effect should block running other animations on the
compositor. This is equivalent to the remainder of CanPerformOnCompositorThread.
Note that the order is important here. Only playing animations should block
other animations from running on the compositor. Furthermore, this needs to
happen before the following step since animations of property other than
|aProperty| can still block animations from running on the compositor.

Finally, we check if the effect has an animation of |aProperty|. This is
equivalent to the remainder of HasCurrentAnimationOfProperty.

If all these checks succeed, we add the effect's animation to the result to
return.
2015-12-04 08:34:12 +09:00
accessible Bug 1230118 - added asserts on aOwner and aOwner->Elm() r=surkov 2015-12-03 14:07:43 -08:00
addon-sdk Merge mozilla-central to fx-team 2015-12-01 15:28:12 +01:00
b2g Merge mozilla-central to mozilla-inbound 2015-12-03 12:07:55 +01:00
browser merge mozilla-inbound to mozilla-central a=merge 2015-12-03 12:00:42 +01:00
build Bug 1228208 - Make sure ICU flags are prepended before system flags. r=glandium 2015-12-02 09:40:50 +00:00
caps Bug 1209162 - Create OriginAttributes subtypes. IGNORE IDL r=sicking. 2015-11-03 09:50:54 +08:00
chrome Bug 1186787 (part 2) - Replace nsBaseHashtable::EnumerateRead() calls in chrome/ with iterators. r=froydnj. 2015-11-17 17:58:36 -08:00
config Bug 1229740 - add <array> to the list of wrapped system headers; r=glandium 2015-12-02 07:21:37 -05:00
db/sqlite3 Bug 1214713 - Upgrade SQLite to version 3.9.1. r=mak 2015-10-21 12:19:31 -04:00
devtools Merge mozilla-central to fx-team 2015-12-01 15:28:12 +01:00
docshell Bug 1222464 - Part 2: Implement FetchEvent.clientId; r=jdm 2015-12-02 20:36:59 -05:00
dom Bug 1226118 part 8 - Add EffectCompositor::GetAnimationsForCompositor that uses the EffectSet rather than AnimationCollection; r=dholbert 2015-12-04 08:34:12 +09:00
editor merge mozilla-inbound to mozilla-central a=merge 2015-12-02 15:20:57 +01:00
embedding Bug 1229237 (part 1) - Make nsIWidget::{Create,CreateChildren}() take a LayoutDeviceIntRect. r=botond. 2015-11-16 00:35:18 -08:00
extensions Bug 1228174 - Add validator to the en-US dictionary. r=ehsan 2015-11-26 07:13:03 +07:00
gfx Bug 1229665 - Convert widget clip regions to LayoutDevicePixels. r=botond. 2015-12-02 14:32:55 -08:00
gradle/wrapper Bug 1220633 - Gradle wrapper: Use distribution with sources. r=trivial 2015-11-06 17:13:31 +01:00
hal Bug 1207221 - Do not prevent the system app from vibrating when it is hidden. r=bz r=dhylands 2015-11-17 10:18:38 +01:00
image Bug 1225641 - Change default security flags within NetUtil.newChannel (r=sicking) 2015-11-17 17:35:30 -08:00
intl Bug 1228208 - Make sure ICU flags are prepended before system flags. r=glandium 2015-12-02 09:40:50 +00:00
ipc Bug 1198450 - GCC (mingw) fixup. 2015-12-01 14:20:41 +01:00
js Bug 1197095 - ensure that ForOfIterator does not pass arguments to next calls; r=evilpie 2015-12-03 12:23:41 -08:00
layout Bug 1226118 part 7 - Rename and rework KeyframeEffectReadOnly::CanAnimatePropertyOnCompositor to ShouldBlockCompositorAnimations; r=hiro 2015-12-04 08:32:53 +09:00
media Bug 1230026 - Support 'webm' initDataType format for MP4 ClearKey initData. r=gerald 2015-12-04 07:24:11 +13:00
memory Bug 1229395 - Part 2 - Rely on MALLOC_H to provide function prototypes for MOZ_NATIVE_JEMALLOC. r=glandium 2015-12-01 16:54:44 +00:00
mfbt Bug 1228182 - Use division directly for generating double in XorShift128PlusRNG. r=Waldo 2015-12-03 12:16:18 +11:00
mobile Bug 1201018 - Catch exception in PersistTabsRunnable; r=rnewman 2015-12-03 09:10:46 -07:00
modules Bug 1215959 - (GeckoCaret2) update experimental prefs, r=snorp 2015-12-01 15:25:06 -05:00
mozglue Bug 1222819 - Add Orbit Downloader .dlls to Windows blocklist. r=aklotz 2015-12-01 12:40:25 -07:00
netwerk Bug 1228208 - Make sure ICU flags are prepended before system flags. r=glandium 2015-12-02 09:40:50 +00:00
nsprpub Bug 1216283 - land NSPR_4_11_RTM, r=dkeeler 2015-11-18 18:43:32 +01:00
other-licenses Bug 1216020 - Comment all ALLOW_COMPILER_WARNINGS lines. r=glandium. 2015-10-19 18:05:20 -07:00
parser Bug 1227554 - Default to NullPrincipal if doc is not available within expatdriver. r=bz 2015-12-02 10:44:59 -08:00
probes
python Bug 1229467 - Include wptserve in common.tests.zip; r=gps 2015-12-01 15:45:41 -05:00
rdf Bug 1225682 - Don't use nsAuto{,C}String as class member variables in rdf/. r=Pike 2015-12-02 11:04:37 +09:00
security Bug 1229804: Use the correct string length in Windows sandbox logging. r=tabraldes 2015-12-03 11:19:14 +00:00
services Merge mozilla-central to mozilla-inbound 2015-12-03 12:07:55 +01:00
startupcache Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat 2015-10-18 01:24:48 -04:00
storage Bug 1225923 - part 1 - convert all needs-to-copy instances of AppendElement(nsDependentString(...)); r=erahm 2015-11-18 10:25:19 -05:00
testing Bug 1229908 - ScriptMixin._urlopen() has to use quoted URL to not fail if spaces are contained. r=jlund 2015-12-04 00:29:50 +01:00
toolkit merge mozilla-inbound to mozilla-central a=merge 2015-12-03 12:00:42 +01:00
tools Bug 1193838 - Allow ProfileGatherer to gather profiles from exiting processes. r=BenWa 2015-08-18 14:57:35 -04:00
uriloader Bug 1116478 - Open web content handlers in the proper tab in e10s. r=billm 2015-12-03 15:04:28 -08:00
view Bug 1229665 - Convert widget clip regions to LayoutDevicePixels. r=botond. 2015-12-02 14:32:55 -08:00
webapprt Bug 1229241 - Differentiate preprocessed and non-preprocessed JS pref files. r=gps 2015-12-01 13:57:52 +09:00
widget Bug 1229665 - Convert widget clip regions to LayoutDevicePixels. r=botond. 2015-12-02 14:32:55 -08:00
xpcom Bug 1229299: Use tail dispatch to notify the mirror of new value. r=bholley 2015-12-02 10:41:17 +11:00
xpfe Bug 1221992 - Prevent ServiceWorkerClients.OpenWindow from opening tabs in private mode windows. r=smaug 2015-12-03 23:19:29 +02:00
xulrunner Bug 1229341 - Remove .source flag on BRANDING_FILES. r=gps 2015-12-03 13:34:02 +09:00
.clang-format
.clang-format-ignore
.eslintignore Bug 1229603 - Make most of browser/base lintable by removing non-standard syntax. r=Mossop 2015-12-02 17:51:26 -02:00
.eslintrc Bug 1228628 - Add a minimal .eslintrc configuration for browser and start linting a few browser files with basic rules. r=Mossop 2015-11-30 11:42:25 +00:00
.gdbinit
.gitignore Bug 1214256 - Add talos virtualenv and tp5n files to .hgignore and .gitignore. r=gps 2015-10-13 12:35:42 -04:00
.hgignore merge mozilla-inbound to mozilla-central a=merge 2015-11-30 13:19:02 +01:00
.hgtags No bug - Tagging mozilla-central 67a788db9f07822cfef52351bbbe3745dff8bd7f with FIREFOX_AURORA_44_BASE a=release DONTBUILD CLOSED TREE 2015-10-29 07:38:29 -04:00
.lldbinit
.ycm_extra_conf.py
aclocal.m4 Bug 1205012 - Allow rust source code in SpiderMonkey; r=mshal 2015-09-18 13:55:29 -07:00
Android.mk
AUTHORS
build.gradle Bug 1220887 - Make 'base' Gradle project in the srcdir. r=sebastian 2015-11-03 15:04:39 -08:00
client.mk
client.py
CLOBBER Bug 1210165 - ICU update requires a CLOBBER. r=waldo 2015-11-20 11:38:15 +00:00
configure.in merge mozilla-inbound to mozilla-central a=merge 2015-12-03 12:00:42 +01:00
GNUmakefile
gradle.properties Bug 1218370 - Use Gradle daemon in srcdir builds. r=me 2015-10-26 09:28:14 -07:00
gradlew Bug 1123416 - Part 1: Make topsrcdir a valid Gradle project root. r=sebastian 2015-10-21 15:07:55 -07:00
LEGAL
LICENSE
mach
Makefile.in Bug 1229233 - Add a (incomplete) end-to-end build test. r=gps 2015-12-01 13:57:52 +09:00
moz.build Bug 1211765 - Remove remnants from --with-libxul-sdk. r=bsmedberg 2015-10-14 08:02:34 +09:00
mozilla-config.h.in
README.txt
settings.gradle Bug 1228430 - Move build.gradle out of mobile/android/base. r=me 2015-11-26 13:02:00 -08:00
test.mozbuild Bug 1229233 - Add a (incomplete) end-to-end build test. r=gps 2015-12-01 13:57:52 +09:00

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:

    https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/
            - or -
    http://nightly.mozilla.org/