gecko-dev/dom
Brian Birtles 99a1a632e3 Bug 1260572 - Use 50% switch behavior if StyleAnimationValue::Interpolate fails; r=heycam
In KeyframeEffectReadOnly::ComposeStyle we call StyleAnimationValue::Interpolate
but assume that it always passes. That was true when that code was only used for
CSS animations and CSS transitions since they check that their animation values
can be interpolated before setting up segments.

However, when we set up animations using the Web Animations API we don't perform
that check so it is possible for this call to fail.

In that case, we could just bail, but, according to CSS Transitions we should
apply a 50% switch in this case:

  https://drafts.csswg.org/css-transitions/#step-types

(In Web Animations, specifying this is an open issue. See:
https://w3c.github.io/web-animations/#specific-animation-behaviors).

Bug 1064937 tracks doing this in general (we'll likely need to mark various
properties as being no longer unanimatable but instead as supporting discrete
animation) but we can start to introduce it now.

Later in bug 1245748, CSS animations and transitions will likely start using
the same code path as the Web Animations API for setting up keyframes.
As a result, unless we take care to add checks that the values we set are
interpolable, the 50% switch behavior will begin to apply to CSS animations and
transitions too at that point.

Some concerns have been raised about possible web compatibility issues around
the 50% switch behavior (see [1] and [2]). For CSS animations, Chrome already
supports this behavior so it should be ok at least for CSS animations.
When we switch CSS transitions over to the same code path, however, we will need
to be careful to add checks that the transition endpoints are interpolable
(we can investigate introducing this behavior to transitions as a separate bug
that can be easily backed out / preffed off).

Regarding the naming of the test added here, going forward we would like to
restructure the tests under web-platform-tests to better match the structure of
the Web Animations since that seems to be the convention there.

However, this doesn't *quite* match the structure of the spec since there are
upcoming changes to the spec in this area (e.g. renaming animation behaviors to
animation types). However, it should be close enough that we don't have to move
it around too much in future.

[1] https://drafts.csswg.org/css-transitions/#step-types
[2] https://bugzilla.mozilla.org/show_bug.cgi?id=1064937#c0

MozReview-Commit-ID: KcxILrckJg9
2016-03-30 08:59:08 +09:00
..
activities
alarm
animation Bug 1260572 - Use 50% switch behavior if StyleAnimationValue::Interpolate fails; r=heycam 2016-03-30 08:59:08 +09:00
apps Bug 1259590 - Remove B2G ACL code. r=khuey 2016-04-07 09:50:01 -07:00
archivereader
asmjscache Bug 1259294: Part 2 - Use MOZ_ALWAYS_SUCCEEDS. r=froydnj 2016-03-28 10:28:15 -07:00
audiochannel
base Backed out changeset 64542516354c (bug 1263405) for bustage. 2016-04-09 23:14:15 -04:00
battery Bug 1250109 - Change DOMEventTargetHelper subclasses to not assume that GetOwner() is non-null, since it can be nulled out by navigation. r=bzbarsky 2016-03-04 13:37:50 -08:00
bindings Bug 1261428: Migrate the useless setTimeout error message to the bindings infrastructure. r=bz 2016-04-06 14:20:30 -07:00
bluetooth Merge 2016-04-04 12:08:53 +02:00
broadcastchannel Bug 1259290: Part 5 - Remove the cx from WorkerFeature::Notify. r=bz 2016-03-28 10:28:14 -07:00
browser-element Bug 1242051 - Add inter-directory test support file dependencies to ini manifests. r=gps 2016-04-04 14:56:52 -07:00
cache bug 1252687 - make Migration's ctor constexpr r=bz 2016-03-02 13:37:00 -05:00
camera
canvas Bug 1252348 - Re-enable the dom/canvas tests on OSX debug e10s. 2016-04-10 16:57:41 -04:00
cellbroadcast
contacts
crypto Bug 842818 - Inline CloneData() and clean up ImportKeyTask::SetKeyData() r=rbarnes 2016-03-17 11:02:11 +01:00
datastore Bug 1260441 - Never pass a null js context to OpenCursor() r=bz 2016-03-30 13:03:03 +02:00
devicestorage
downloads
encoding Bug 1262324 (part 2) - Introduce nsUConvProp. r=emk. 2016-04-06 13:31:38 +10:00
engineeringmode
events Bug 1256952, send a dragexit at remote process when leaving the remote frame, r=smaug 2016-04-06 10:35:39 -04:00
fetch Bug 1250048 - CSP manifest-src doesn't override default-src. r=ckerschb,bkelly,ehsan 2016-04-07 14:13:09 -07:00
filehandle Bug 1259294: Part 2 - Use MOZ_ALWAYS_SUCCEEDS. r=froydnj 2016-03-28 10:28:15 -07:00
filesystem Bug 1258221 - patch 3 - Rename FileSystemTaskBase to FileSystemTaskChildBase, r=smaug 2016-04-09 19:17:28 +01:00
fmradio
gamepad
geolocation Bug 1255198 - [Telemetry] Add geolocation Telemetry probes to record fulfilled requests according to document.isVisible. r=jdm, data-review=bsmedberg 2016-03-21 15:42:18 -07:00
html Bug 1262358 - Part 1: Split autoplay condition into statements. r=cpearce 2016-04-06 17:30:06 +10:00
icc
identity
imptests Bug 1254683 - Enable editing/conformancetest/test_runtest.html on e10s; r=mrbkap 2016-03-08 16:19:02 -05:00
indexedDB Bug 1256049: Correctly handle databases currently performing maintenance when a new transaction is started. r=janv 2016-04-05 20:21:25 -07:00
inputmethod Bug 1260713 - Fix RefCounted.h:106:50: error: no member named 'typeSize' in 'mozilla::KeyboardInfo' 0:22.21 uint32_t size = static_cast<const T*>(this)->typeSize(). r=smaug 2016-03-30 22:07:07 +08:00
inputport
interfaces Bug 1255576 - Propagate privacy status for removed content preferences to observers. r=adw 2016-04-04 15:25:58 -04:00
ipc Bug 1258221 - patch 2 - Port FileSystem API and DeviceStorage API to PBackground, r=smaug 2016-04-09 19:17:02 +01:00
json
jsurl
locales Bug 1220757 - Add report to console when service worker register fails due to mismatching scope path.r=bkelly 2016-03-31 23:08:45 -07:00
manifest Bug 1262739 - Remove support for splash_screens member in Manifest Processor r=mconley 2016-04-07 14:18:27 -07:00
mathml
media Merge m-c to inbound. a=merge 2016-04-09 10:08:57 -04:00
messagechannel Bug 1259294: Part 2 - Use MOZ_ALWAYS_SUCCEEDS. r=froydnj 2016-03-28 10:28:15 -07:00
messages Bug 1238160 - Add assertions in non-desktop code paths. r=bz,fabrice 2016-03-02 10:35:56 -06:00
mobileconnection
mobileid
mobilemessage Bug 1255817 part 2. Get rid of AutoJSAPI::OwnsErrorReporting and AutoJSAPI::TakeOwnershipOfErrorReporting. r=bholley 2016-03-23 11:44:54 -04:00
network Bug 1217677: increase UDP socket receive buffer for <= Win7. r=jesup,mcmanus 2016-03-01 21:46:50 -08:00
newapps
nfc Merge mozilla-central to mozilla-inbound 2016-04-05 16:54:06 +02:00
notification Bug 1250109 - Change DOMEventTargetHelper subclasses to not assume that GetOwner() is non-null, since it can be nulled out by navigation. r=bzbarsky 2016-03-04 13:37:50 -08:00
offline
payment Bug 1238160 - Rename OriginAttributes.mInBrowser and associated methods. r=bz,mayhemer 2016-03-02 10:35:56 -06:00
permission Bug 1197461 - Tests for Permissions.revoke. r=poiru,baku 2016-03-02 21:09:56 +00:00
phonenumberutils
plugins Bug 1263235, part 4 - Make PBrowserStream::Write's data argument last. r=jimm 2016-04-09 06:50:59 -07:00
power
presentation Backed out changeset f74a43d0b9eb (bug 1234492) for test failures in presentation tests on a CLOSED TREE 2016-03-30 12:32:04 +02:00
promise Bug 1262069: Wrap promise resolution values before storing. r=bz 2016-04-07 13:33:50 -07:00
push Backed out changeset 6733c0861332 (bug 1258595) for m3 test failures 2016-04-07 14:22:33 +02:00
quota Bug 1238160 - Rename OriginAttributes.mInBrowser and associated methods. r=bz,mayhemer 2016-03-02 10:35:56 -06:00
requestsync Bug 1238160 - Rename nsILoadContext::GetIsInBrowserElement. r=smaug,mayhemer 2016-03-02 10:35:56 -06:00
res
resourcestats
secureelement
security Bug 1242051 - Add inter-directory test support file dependencies to ini manifests. r=gps 2016-04-04 14:56:52 -07:00
settings
simplepush
smil Bug 1260871 - Remove do_GetAtom() and rename NS_NewAtom() as NS_Atomize(). r=erahm. 2016-03-29 10:09:43 +11:00
speakermanager
storage Bug 1238160 - Rename OriginAttributes.mInBrowser and associated methods. r=bz,mayhemer 2016-03-02 10:35:56 -06:00
svg Bug 1158500 - make writing-mode a mapped CSS property. r=cam 2016-04-01 22:08:04 +01:00
system Bug 1222098 - Devicemotion event timestamp should return values from Android sensor API and not Gecko. r:smaug 2016-04-04 12:22:59 -05:00
telephony
tests Bug 471139 - Re-enable test_HTMLDocument12.html. r=sicking 2016-04-09 09:54:12 -04:00
tethering
time
tv Bug 1250109 - Change DOMEventTargetHelper subclasses to not assume that GetOwner() is non-null, since it can be nulled out by navigation. r=bzbarsky 2016-03-04 13:37:50 -08:00
u2f
voicemail
vr
wappush
webidl Bug 1259590 - Remove B2G ACL code. r=khuey 2016-04-07 09:50:01 -07:00
wifi
workers Bug 1260591 Move ServiceWorkerInfo and ServiceWorkerRegistrationInfo into separate files. r=jdm 2016-04-08 17:28:25 -07:00
xbl Bug 1260871 - Remove do_GetAtom() and rename NS_NewAtom() as NS_Atomize(). r=erahm. 2016-03-29 10:09:43 +11:00
xml Bug 1260871 - Remove do_GetAtom() and rename NS_NewAtom() as NS_Atomize(). r=erahm. 2016-03-29 10:09:43 +11:00
xslt Bug 1260871 - Remove do_GetAtom() and rename NS_NewAtom() as NS_Atomize(). r=erahm. 2016-03-29 10:09:43 +11:00
xul Bug 1242644 - HTML swapFrameLoaders. r=bz 2016-03-31 19:47:44 -05:00
jar.mn
moz.build