gecko-dev/image
Timothy Nikkel 1614a73bad Bug 1343341. Rewrite animation state updating to derive new state purely based on SurfaceCache and RasterImage::mAnimationFinished. r=aosmond
If the SurfaceCache discards our frames on another thread, the runnable that notifies us of that discard could race with a decode complete notification. So we can't rely on any ordering of SetDiscarded and NotifyDecodeComplete. Thus we must derive our state purely from the SurfaceCache (and mAnimationFinished from RasterImage).

We also update the image state in RequestRefresh (the main place where we use the state that is updated).

The other main place we use the state is GetCompositedFrame, but we don't update the state there. It should be fine because the only time this might lag behind reality is if the frames are discarded, and it should be fine to continue drawing the composited frame until the discard notification arrives.

The way that we tell that an animated image has all of its frames complete in the surface cache is less than ideal.
2017-03-26 00:04:53 -05:00
..
build
decoders Backed out changeset 619b5b27ce87 (bug 1343499) for CLOSED TREE build bustage r=backout 2017-03-22 11:04:30 -04:00
encoders Bug 1060419 - remove unneeded includes of prprf.h, r=froydnj 2016-12-09 10:00:01 -10:00
test Bug 1341102 - Update stylo reftest expectations; r=orange 2017-03-24 21:54:18 -07:00
AnimationSurfaceProvider.cpp Bug 1341624 - Include shared handle totals in memory reports for images. r=tnikkel 2017-02-22 09:30:22 -05:00
AnimationSurfaceProvider.h Bug 1341624 - Include shared handle totals in memory reports for images. r=tnikkel 2017-02-22 09:30:22 -05:00
BMPHeaders.h
ClippedImage.cpp Bug 1058040, part 12 - Make SVGImageContext's ctor's aViewportSize parameter optional. r=dholbert 2017-01-30 13:25:00 +00:00
ClippedImage.h Bug 1323912 - Part 2. Pass opacity down to imgIContainer::Draw. r=mstange 2017-01-03 13:53:22 +08:00
CopyOnWrite.h
DecodedSurfaceProvider.cpp Bug 1333974, part 2 - Use new API for images. r=tnikkel 2017-01-31 11:34:01 -08:00
DecodedSurfaceProvider.h Bug 1296828 (Part 2) - Store ImageKeys and SurfaceKeys directly on ISurfaceProviders. r=dholbert,edwin 2016-08-26 17:03:17 -07:00
DecodePool.cpp Bug 1339289 - Give names to a lot of common runnables (r=ehsan) 2017-02-15 12:30:01 -08:00
DecodePool.h Bug 1325296. RasterImage::LookupFrame does not return a surface if it was created as a result of a sync decode from with the FLAG_SYNC_DECODE_IF_FAST flag. r=aosmond 2016-12-22 13:15:41 -06:00
Decoder.cpp Bug 1341624 - Include shared handle totals in memory reports for images. r=tnikkel 2017-02-22 09:30:22 -05:00
Decoder.h Bug 1330907 - Rename Telemetry::ID to Telemetry::HistogramID. r=dexter 2017-02-16 00:45:15 +05:30
DecoderFactory.cpp Bug 1339202 - Decode images to shared surfaces for WebRender. r=tnikkel 2017-02-08 15:48:59 -05:00
DecoderFactory.h Bug 1311246 - Remove support for the -moz-samplesize media fragment; r=jrmuizel 2016-11-16 08:18:56 -05:00
DecoderFlags.h
Downscaler.cpp Backed out 5 changesets (bug 1290292, bug 1290293) for gfx assertions 2017-02-13 19:28:45 -08:00
Downscaler.h Backed out 5 changesets (bug 1290292, bug 1290293) for gfx assertions 2017-02-13 19:28:45 -08:00
DownscalingFilter.h Backed out 5 changesets (bug 1290292, bug 1290293) for gfx assertions 2017-02-13 19:28:45 -08:00
DrawResult.h Backed out 5 changesets (bug 1330962) for failures in display-block-baselines-1.html and 315920-17.html 2017-01-27 20:30:07 -08:00
DynamicImage.cpp Backed out changeset 619b5b27ce87 (bug 1343499) for CLOSED TREE build bustage r=backout 2017-03-22 11:04:30 -04:00
DynamicImage.h Backed out changeset 619b5b27ce87 (bug 1343499) for CLOSED TREE build bustage r=backout 2017-03-22 11:04:30 -04:00
FrameAnimator.cpp Bug 1343341. Rewrite animation state updating to derive new state purely based on SurfaceCache and RasterImage::mAnimationFinished. r=aosmond 2017-03-26 00:04:53 -05:00
FrameAnimator.h Bug 1343341. Rewrite animation state updating to derive new state purely based on SurfaceCache and RasterImage::mAnimationFinished. r=aosmond 2017-03-26 00:04:53 -05:00
FrameTimeout.h Backed out changeset 619b5b27ce87 (bug 1343499) for CLOSED TREE build bustage r=backout 2017-03-22 11:04:30 -04:00
FrozenImage.cpp Bug 1323912 - Part 2. Pass opacity down to imgIContainer::Draw. r=mstange 2017-01-03 13:53:22 +08:00
FrozenImage.h Bug 1323912 - Part 2. Pass opacity down to imgIContainer::Draw. r=mstange 2017-01-03 13:53:22 +08:00
ICOFileHeaders.h
IDecodingTask.cpp Bug 1339289 - Give names to a lot of common runnables (r=ehsan) 2017-02-15 12:30:01 -08:00
IDecodingTask.h
Image.cpp Bug 1317552. Send unlocked draw notifications for images async when asked to. r=aosmond 2016-11-17 00:25:53 -06:00
Image.h Bug 1343341. Only set the animation state as discarded if we discarded the animated frames (and not a static frame from a first-frame-only decode). r=aosmond 2017-03-16 03:06:06 -05:00
ImageCacheKey.cpp Bug 1328653 - Merging all the various *OriginAttributes to just one, r=huseby 2017-01-12 17:38:48 +01:00
ImageCacheKey.h Bug 1328653 - Merging all the various *OriginAttributes to just one, r=huseby 2017-01-12 17:38:48 +01:00
ImageFactory.cpp Bug 1311246 - Remove support for the -moz-samplesize media fragment; r=jrmuizel 2016-11-16 08:18:56 -05:00
ImageFactory.h
ImageLogging.h
ImageMetadata.h Backed out changeset 619b5b27ce87 (bug 1343499) for CLOSED TREE build bustage r=backout 2017-03-22 11:04:30 -04:00
ImageOps.cpp Backed out changeset 619b5b27ce87 (bug 1343499) for CLOSED TREE build bustage r=backout 2017-03-22 11:04:30 -04:00
ImageOps.h Backed out changeset 619b5b27ce87 (bug 1343499) for CLOSED TREE build bustage r=backout 2017-03-22 11:04:30 -04:00
ImageRegion.h
ImageURL.h Bug 1299498 - Keep a main thread only pointer to the underlying nsIURI for ImageURL. r=tnikkel 2016-11-28 08:40:42 -05:00
ImageWrapper.cpp Backed out changeset 619b5b27ce87 (bug 1343499) for CLOSED TREE build bustage r=backout 2017-03-22 11:04:30 -04:00
ImageWrapper.h Backed out changeset 619b5b27ce87 (bug 1343499) for CLOSED TREE build bustage r=backout 2017-03-22 11:04:30 -04:00
imgFrame.cpp Bug 1341624 - Include shared handle totals in memory reports for images. r=tnikkel 2017-02-22 09:30:22 -05:00
imgFrame.h Backed out changeset 619b5b27ce87 (bug 1343499) for CLOSED TREE build bustage r=backout 2017-03-22 11:04:30 -04:00
imgICache.idl Bug 1297300 - Add missing checks to GetSpec() calls in image/. r=tnikkel. 2016-08-29 15:34:32 +10:00
imgIContainer.idl Backed out changeset 619b5b27ce87 (bug 1343499) for CLOSED TREE build bustage r=backout 2017-03-22 11:04:30 -04:00
imgIContainerDebug.idl
imgIEncoder.idl
imgILoader.idl
imgINotificationObserver.idl
imgIOnloadBlocker.idl
imgIRequest.idl Bug 1325297. Create a variant of imgIContainer::StartDecoding that returns if the current image frame is complete. r=aosmond 2016-12-23 01:07:45 -06:00
imgIScriptedNotificationObserver.idl
imgITools.idl
imgLoader.cpp Bug 943686 - Add imageLoader.cpp to unified sources. r=tn 2017-03-21 11:09:13 -07:00
imgLoader.h Bug 1275464 - Part 1. Unregister from handling image memory reports when shutting down. r=njn 2016-09-19 13:29:59 -04:00
imgRequest.cpp Bug 943686 - Add imgRequest.cpp to unified sources. r=tn 2017-03-21 11:09:14 -07:00
imgRequest.h Bug 1297300 - Add missing checks to GetSpec() calls in image/. r=tnikkel. 2016-08-29 15:34:32 +10:00
imgRequestProxy.cpp Bug 943686 - Add imgRequestProxy.cpp to unified sources. r=tn 2017-03-21 11:09:15 -07:00
imgRequestProxy.h Bug 1339289 - Give names to a lot of common runnables (r=ehsan) 2017-02-15 12:30:01 -08:00
imgTools.cpp
imgTools.h
IProgressObserver.h Bug 1312319 - Add a NS_INLINE_DECL_PURE_VIRTUAL_REFCOUNTING macro and replace existing pure-virtual AddRef/Release declarations. r=froydnj 2017-01-25 14:51:34 -05:00
ISurfaceProvider.h Bug 1341624 - Include shared handle totals in memory reports for images. r=tnikkel 2017-02-22 09:30:22 -05:00
LookupResult.h
moz.build Backed out changeset 619b5b27ce87 (bug 1343499) for CLOSED TREE build bustage r=backout 2017-03-22 11:04:30 -04:00
MultipartImage.cpp Bug 1321946. Adjust asserts about the progress of an image to deal with how multipart images are handled. r=aosmond 2016-12-03 16:07:10 -06:00
MultipartImage.h
nsIIconURI.idl
Orientation.h
OrientedImage.cpp Backed out changeset 619b5b27ce87 (bug 1343499) for CLOSED TREE build bustage r=backout 2017-03-22 11:04:30 -04:00
OrientedImage.h Backed out changeset 619b5b27ce87 (bug 1343499) for CLOSED TREE build bustage r=backout 2017-03-22 11:04:30 -04:00
PlaybackType.h
ProgressTracker.cpp Bug 1339289 - Give names to a lot of common runnables (r=ehsan) 2017-02-15 12:30:01 -08:00
ProgressTracker.h Bug 1321946. Adjust asserts about the progress of an image to deal with how multipart images are handled. r=aosmond 2016-12-03 16:07:10 -06:00
RasterImage.cpp Bug 1343341. Rewrite animation state updating to derive new state purely based on SurfaceCache and RasterImage::mAnimationFinished. r=aosmond 2017-03-26 00:04:53 -05:00
RasterImage.h Bug 1343341. Only call AnimationState::SetDiscarded on the main thread. r=aosmond 2017-03-25 02:16:21 -05:00
ScriptedNotificationObserver.cpp Back out bug 1323207, part 2 - Assert early if we're painting at various points we enter JS (a=backout) 2017-01-11 13:20:21 -08:00
ScriptedNotificationObserver.h
ShutdownTracker.cpp
ShutdownTracker.h
SourceBuffer.cpp Bug 1284117 - Make RasterImage and SourceBuffer handle input stream read errors. r=edwin 2016-10-13 10:09:35 -04:00
SourceBuffer.h Bug 1312319 - Add a NS_INLINE_DECL_PURE_VIRTUAL_REFCOUNTING macro and replace existing pure-virtual AddRef/Release declarations. r=froydnj 2017-01-25 14:51:34 -05:00
StreamingLexer.h Bug 1338374 - Use alignas/alignof to define Variant's internal raw storage. r=froydnj 2017-01-30 15:56:05 -08:00
SurfaceCache.cpp Bug 1343341. Only set the animation state as discarded if we discarded the animated frames (and not a static frame from a first-frame-only decode). r=aosmond 2017-03-16 03:06:06 -05:00
SurfaceCache.h Bug 1296828 (Part 3) - Update SurfaceCache API to rely on ImageKeys and SurfaceKeys stored on ISurfaceProviders. r=dholbert 2016-08-26 17:03:19 -07:00
SurfaceCacheUtils.cpp
SurfaceCacheUtils.h
SurfaceFilters.h Backed out 5 changesets (bug 1290292, bug 1290293) for gfx assertions 2017-02-13 19:28:45 -08:00
SurfaceFlags.h
SurfacePipe.cpp Backed out 5 changesets (bug 1290292, bug 1290293) for gfx assertions 2017-02-13 19:28:45 -08:00
SurfacePipe.h Backed out 5 changesets (bug 1290292, bug 1290293) for gfx assertions 2017-02-13 19:28:45 -08:00
SurfacePipeFactory.h
SVGDocumentWrapper.cpp Bug 1328832 - Part 2: Rename mozFlushType to mozilla::FlushType and make it an enum class. r=bzbarsky 2017-01-05 15:31:56 +08:00
SVGDocumentWrapper.h Bug 1328832 - Part 2: Rename mozFlushType to mozilla::FlushType and make it an enum class. r=bzbarsky 2017-01-05 15:31:56 +08:00
VectorImage.cpp Backed out changeset 619b5b27ce87 (bug 1343499) for CLOSED TREE build bustage r=backout 2017-03-22 11:04:30 -04:00
VectorImage.h Backed out changeset 619b5b27ce87 (bug 1343499) for CLOSED TREE build bustage r=backout 2017-03-22 11:04:30 -04:00