gecko-dev/image
Timothy Nikkel 7d6982559e Bug 1443232. Don't insert frames into our AnimationFrameBuffer that we consider in error and unusable. r=aosmond
After decoding the first frame we allocate the second frame, but before it finishes we encounter an error, Decoder::PostError is called it aborts the second frame and decrements the frame count. But AnimationSurfaceProvider::CheckForFrameAtTerminalState just asks for the current frame ref from the decoder (which it never cleared) and inserts that.

The condition that we use from the decoder to decide to report a new frame is mFinishedNewFrame (via TakeCompleteFrameCount), however this doesn't directly correspond to mFrameCount. So we create a new bool on the Decoder to track when there is a frame that we can take.

This didn't cause any problems before but now we have tighter coupling between the list of frames the AnimationSurfaceProvider has and what FrameAnimator expects.

Another possible fix would be to clear the current frame ref in PostError, but the only place we clear the current frame is when we allocate the new frame and we have the mImageData pointer still around that decoders could theorhetically use to do final processing on the last partial frame.
2018-03-08 17:33:04 -06:00
..
build
decoders Bug 1441688 - Remove nsIIPCSerializableURI.Deserialize r=mayhemer 2018-03-05 04:14:44 +01:00
encoders
test Bug 1443232. Don't insert frames into our AnimationFrameBuffer that we consider in error and unusable. r=aosmond 2018-03-08 17:33:04 -06:00
AnimationFrameBuffer.cpp Bug 523950 - Part 7. Add AnimatedFrameBuffer to manage storage and decoding of frames in an animation. r=tnikkel 2018-02-28 13:34:52 -05:00
AnimationFrameBuffer.h Bug 523950 - Part 7. Add AnimatedFrameBuffer to manage storage and decoding of frames in an animation. r=tnikkel 2018-02-28 13:34:52 -05:00
AnimationSurfaceProvider.cpp Bug 1443232. Don't insert frames into our AnimationFrameBuffer that we consider in error and unusable. r=aosmond 2018-03-08 17:33:04 -06:00
AnimationSurfaceProvider.h Bug 523950 - Part 9. Integrate AnimationSurfaceProvider with AnimationFrameBuffer. r=tnikkel 2018-02-28 13:34:53 -05:00
BMPHeaders.h
ClippedImage.cpp Bug 1436902 part 3. Replace usage of NS_IMPL_ISUPPORTS_INHERITED0 with NS_INLINE_DECL_REFCOUNTING_INHERITED when possible. r=mccr8 2018-02-12 15:44:40 -05:00
ClippedImage.h Bug 1436902 part 3. Replace usage of NS_IMPL_ISUPPORTS_INHERITED0 with NS_INLINE_DECL_REFCOUNTING_INHERITED when possible. r=mccr8 2018-02-12 15:44:40 -05:00
CopyOnWrite.h
DecodePool.cpp Bug 1443932 - part 2 - lower the default stack size for image decoder threads; r=tnikkel 2018-03-07 20:33:17 -05:00
DecodePool.h Backed out 4 changesets (bug 1436247) for c2 failures in dom/events/test/test_DataTransferItemList.html on a CLOSED TREE 2018-02-13 19:56:26 +02:00
DecodedSurfaceProvider.cpp Bug 1432678. Convert to size_t in DecodedSurfaceProvider::LogicalSizeInBytes so multiplication doesn't overflow. r=aosmond 2018-02-07 17:00:04 -06:00
DecodedSurfaceProvider.h
Decoder.cpp Bug 1443232. Don't insert frames into our AnimationFrameBuffer that we consider in error and unusable. r=aosmond 2018-03-08 17:33:04 -06:00
Decoder.h Bug 1443232. Don't insert frames into our AnimationFrameBuffer that we consider in error and unusable. r=aosmond 2018-03-08 17:33:04 -06:00
DecoderFactory.cpp Bug 1442037 - Fix an incorrect assert in DecoderFactory::CloneAnimationDecoder. r=tnikkel 2018-03-01 19:38:58 -05:00
DecoderFactory.h Bug 523950 - Part 6. Add DecoderFactory::CloneAnimationDecoder to clone an existing image decoder. r=tnikkel 2018-02-28 13:34:52 -05:00
DecoderFlags.h Bug 1370412 - Part 8a. Add "substitutable" flag to ISurfaceProvider state to indicate when the caller won't accept substitutes. r=tnikkel 2017-09-05 07:58:45 -04:00
Downscaler.cpp Bug 1435456 - Remove asserts checking that downscale-on-decode is enabled. r=tnikkel 2018-02-09 06:27:55 -05:00
Downscaler.h Bug 1423567: Use BaseRect access methods instead of member variables in image/ r=aosmond 2017-12-20 16:46:28 -05:00
DownscalingFilter.h Bug 1435456 - Remove asserts checking that downscale-on-decode is enabled. r=tnikkel 2018-02-09 06:27:55 -05:00
DynamicImage.cpp Bug 1351447 - Rename imagelib's DrawResult to ImgDrawResult r+tnikkel r=tnikkel 2017-12-11 15:37:59 +00:00
DynamicImage.h Bug 1370412 - Part 0. Add imgIContainer::GetNativeSizesLength to determine a ceiling on the maximum number of expected, unique surfaces. r=tnikkel 2017-09-05 07:58:44 -04:00
FrameAnimator.cpp Bug 523950 - Part 4. Expose new surface provider APIs that will help drive animation decoding. r=tnikkel 2018-02-28 13:34:52 -05:00
FrameAnimator.h Bug 523950 - Part 4. Expose new surface provider APIs that will help drive animation decoding. r=tnikkel 2018-02-28 13:34:52 -05:00
FrameTimeout.h
FrozenImage.cpp Bug 1436902 part 3. Replace usage of NS_IMPL_ISUPPORTS_INHERITED0 with NS_INLINE_DECL_REFCOUNTING_INHERITED when possible. r=mccr8 2018-02-12 15:44:40 -05:00
FrozenImage.h Bug 1436902 part 3. Replace usage of NS_IMPL_ISUPPORTS_INHERITED0 with NS_INLINE_DECL_REFCOUNTING_INHERITED when possible. r=mccr8 2018-02-12 15:44:40 -05:00
ICOFileHeaders.h
IDecodingTask.cpp
IDecodingTask.h Bug 1417021 - Fix various non-unified build errors in imagelib. r=aosmond 2017-10-24 23:22:55 +01:00
IProgressObserver.h Bug 1383682 - Part 2. Rename IProgressObserver::SetNotificationsDeferred to make purpose clear. r=tnikkel 2018-02-07 07:27:27 -05:00
ISurfaceProvider.h Bug 523950 - Part 4. Expose new surface provider APIs that will help drive animation decoding. r=tnikkel 2018-02-28 13:34:52 -05:00
Image.cpp Bug 1351447 - Rename imagelib's DrawResult to ImgDrawResult r+tnikkel r=tnikkel 2017-12-11 15:37:59 +00:00
Image.h Bug 1427639 - Part 2. Fix misleading image memory reporting on Android. r=tnikkel 2018-02-22 14:26:29 -05:00
ImageCacheKey.cpp Bug 1430139 P3 Remove workers namespace from service worker code. r=asuth 2018-01-26 13:08:59 -08:00
ImageCacheKey.h Bug 1417021 - Fix various non-unified build errors in imagelib. r=aosmond 2017-10-24 23:22:55 +01:00
ImageFactory.cpp Bug 1382783 - Retarget non-HTTP image URIs (chrome, blob) to the image IO thread if not an SVG. r=tnikkel 2017-09-25 11:44:49 -04:00
ImageFactory.h Bug 1391803 - Use nsStringFwd.h for forward declaring string classes. r=froydnj 2017-08-16 16:48:52 -07:00
ImageLogging.h
ImageMetadata.h Bug 1417021 - Fix various non-unified build errors in imagelib. r=aosmond 2017-10-24 23:22:55 +01:00
ImageOps.cpp Bug 1436247 - Part 3. Fix image/DecodePool.h inclusions. r=tnikkel 2018-02-13 06:43:31 -05:00
ImageOps.h Bug 1409327 - NS_NewBufferedInputStream should take the ownership of the inputStream, r=smaug 2017-10-19 11:39:30 +02:00
ImageRegion.h
ImageURL.h
ImageWrapper.cpp Bug 1351447 - Rename imagelib's DrawResult to ImgDrawResult r+tnikkel r=tnikkel 2017-12-11 15:37:59 +00:00
ImageWrapper.h Bug 1370412 - Part 0. Add imgIContainer::GetNativeSizesLength to determine a ceiling on the maximum number of expected, unique surfaces. r=tnikkel 2017-09-05 07:58:44 -04:00
ImgDrawResult.h Bug 1351447 - Rename imagelib's DrawResult to ImgDrawResult r+tnikkel r=tnikkel 2017-12-11 15:37:59 +00:00
LookupResult.h Bug 1368776 - Part 16. Ensure we more consistently pass the suggested size from SurfaceCache::LookupBestMatch. r=tnikkel 2017-11-17 06:45:28 -05:00
MultipartImage.cpp Bug 1383682 - Part 2. Rename IProgressObserver::SetNotificationsDeferred to make purpose clear. r=tnikkel 2018-02-07 07:27:27 -05:00
MultipartImage.h Bug 1436902 part 3. Replace usage of NS_IMPL_ISUPPORTS_INHERITED0 with NS_INLINE_DECL_REFCOUNTING_INHERITED when possible. r=mccr8 2018-02-12 15:44:40 -05:00
Orientation.h
OrientedImage.cpp Bug 1436902 part 3. Replace usage of NS_IMPL_ISUPPORTS_INHERITED0 with NS_INLINE_DECL_REFCOUNTING_INHERITED when possible. r=mccr8 2018-02-12 15:44:40 -05:00
OrientedImage.h Bug 1436902 part 3. Replace usage of NS_IMPL_ISUPPORTS_INHERITED0 with NS_INLINE_DECL_REFCOUNTING_INHERITED when possible. r=mccr8 2018-02-12 15:44:40 -05:00
PlaybackType.h
ProgressTracker.cpp Bug 1383682 - Part 2. Rename IProgressObserver::SetNotificationsDeferred to make purpose clear. r=tnikkel 2018-02-07 07:27:27 -05:00
ProgressTracker.h Bug 1404422 - Part 4. Remove imgIOnloadBlocker and related from tree as redundant. r=tnikkel 2017-11-01 06:59:10 -04:00
RasterImage.cpp Bug 523950 - Part 5. Pass the currently displayed frame of an animation to its decoder. r=tnikkel 2018-02-28 13:34:52 -05:00
RasterImage.h Bug 1436247 - Part 3. Fix image/DecodePool.h inclusions. r=tnikkel 2018-02-13 06:43:31 -05:00
SVGDocumentWrapper.cpp Bug 1435138 part 4. Remove nsIDOMSVGLength. r=qdot 2018-02-02 08:21:33 -05:00
SVGDocumentWrapper.h
SVGDrawingParameters.h
ScriptedNotificationObserver.cpp
ScriptedNotificationObserver.h
ShutdownTracker.cpp
ShutdownTracker.h
SourceBuffer.cpp Bug 1411506 - SourceBuffer::AppendFromInputStream must check if the stream has been already closed, r=aosmond 2017-10-25 16:58:45 +02:00
SourceBuffer.h
StreamingLexer.h Bug 1417021 - Fix various non-unified build errors in imagelib. r=aosmond 2017-10-24 23:22:55 +01:00
SurfaceCache.cpp Bug 1427639 - Part 2. Fix misleading image memory reporting on Android. r=tnikkel 2018-02-22 14:26:29 -05:00
SurfaceCache.h Bug 1419608. Make SurfaceKey::SVGContext return a reference instead of a copy. r=decoder 2017-11-22 01:41:35 +01:00
SurfaceCacheUtils.cpp
SurfaceCacheUtils.h
SurfaceFilters.h Bug 1423567: Use BaseRect access methods instead of member variables in image/ r=aosmond 2017-12-20 16:46:28 -05:00
SurfaceFlags.h
SurfacePipe.cpp Bug 1387514: Upgrade BaseRect (derived classes) width and height direct member variable use to instead use Width()/SetWidth() and Height()/SetHeight() in image/*. r=aosmond 2017-08-14 08:29:56 -04:00
SurfacePipe.h Bug 1436263 - Part 2: Replace `override final` virtual function specifiers with just `final`. r=froydnj 2018-02-05 22:50:00 -08:00
SurfacePipeFactory.h
VectorImage.cpp Bug 1435477 - Make the SVG dom code use the WebIDL constants from the bindings r=jwatt 2018-02-18 15:53:13 +00:00
VectorImage.h Bug 1351447 - Rename imagelib's DrawResult to ImgDrawResult r+tnikkel r=tnikkel 2017-12-11 15:37:59 +00:00
imgFrame.cpp Bug 1427639 - Part 2. Fix misleading image memory reporting on Android. r=tnikkel 2018-02-22 14:26:29 -05:00
imgFrame.h Bug 1427639 - Part 2. Fix misleading image memory reporting on Android. r=tnikkel 2018-02-22 14:26:29 -05:00
imgICache.idl
imgIContainer.idl Bug 1351447 - Rename imagelib's DrawResult to ImgDrawResult r+tnikkel r=tnikkel 2017-12-11 15:37:59 +00:00
imgIContainerDebug.idl
imgIEncoder.idl
imgILoader.idl
imgINotificationObserver.idl
imgIRequest.idl Bug 1406253 - Part 1: Rename imgIRequest.currentURI to finalURI to prevent confusion. r=bz 2017-11-13 16:31:24 +08:00
imgIScriptedNotificationObserver.idl
imgITools.idl Bug 1421655 - Renaming imgITools::decodeImageBuffer to imgITools::decodeImageFromBuffer, r=aosmond 2017-11-30 14:48:47 +01:00
imgLoader.cpp Bug 1427639 - Part 2. Fix misleading image memory reporting on Android. r=tnikkel 2018-02-22 14:26:29 -05:00
imgLoader.h Bug 1383682 - Part 1. Split off imgRequestProxy notification deferrals for validation. r=tnikkel 2018-02-07 07:27:27 -05:00
imgRequest.cpp Bug 1435733 - Upgrade mixed display content pref. r=baku,ckerschb,francois,mayhemer 2018-02-05 15:37:27 +00:00
imgRequest.h Bug 1423773 - Part 1: Remove usage of nsStringGlue.h. r=glandium 2017-12-06 16:52:51 -08:00
imgRequestProxy.cpp Bug 523950 - Part 1. Do some unified build accounting, missing headers and namespaces. r=tnikkel 2018-02-28 13:34:51 -05:00
imgRequestProxy.h Bug 1383682 - Part 2. Rename IProgressObserver::SetNotificationsDeferred to make purpose clear. r=tnikkel 2018-02-07 07:27:27 -05:00
imgTools.cpp Bug 1421655 - Renaming imgITools::decodeImageBuffer to imgITools::decodeImageFromBuffer, r=aosmond 2017-11-30 14:48:47 +01:00
imgTools.h
moz.build Bug 523950 - Part 7. Add AnimatedFrameBuffer to manage storage and decoding of frames in an animation. r=tnikkel 2018-02-28 13:34:52 -05:00
nsIIconURI.idl Bug 1432620 - Make nsIMozIconURI attributes readonly r=mayhemer 2018-01-23 22:25:18 +01:00