gecko-dev/image
Nika Layzell f07fc1f61f Bug 1687391 - Avoid using a spinlock in ThreadSafeWeakReference, r=glandium,mccr8,Gankra,sg
This new approach to weak references is roughly modeled after the approach used
by Rust's Arc<T>, and uses an atomic compare-and-swap loop to perform weak to
strong reference upgrades. This approach ends up moving the strong reference
count out of the tracked object and into the weak reference object, as the
strong reference count atomic needs to outlife the object itself.

Rust's Arc Weak::upgrade implementation:
d98d2f57d9/library/alloc/src/sync.rs (L1806-L1837)

Differential Revision: https://phabricator.services.mozilla.com/D102245
2021-02-03 17:00:04 +00:00
..
build Bug 1660470 - Add missing include directives/forward declarations. r=nika 2020-11-23 16:21:38 +00:00
decoders Bug 1684688 - Fix alpha support in nsAVIFDecoder. r=aosmond 2021-01-26 00:24:57 +00:00
encoders Bug 1654103: Standardize on Black for Python code in `mozilla-central`. 2020-10-26 18:34:53 +00:00
test Bug 1684688 - Fix alpha support in nsAVIFDecoder. r=aosmond 2021-01-26 00:24:57 +00:00
AnimationFrameBuffer.cpp Bug 1612589 - Improve image memory reporting even further. r=tnikkel 2020-02-05 22:22:13 +00:00
AnimationFrameBuffer.h
AnimationParams.h
AnimationSurfaceProvider.cpp Bug 1651587 - Make image::Image released efficient on main thread r=aosmond 2020-07-10 14:34:01 +00:00
AnimationSurfaceProvider.h
BMPHeaders.h Backed out changeset 40784ea31188 (bug 651482) for Reftest failures in bmp-corrupted/wrapper.html?invalid-compression-BITFIELDS.bmp. CLOSED TREE 2020-05-22 12:21:32 +03:00
ClippedImage.cpp Bug 1660470 - Add missing include directives/forward declarations. r=nika 2020-11-23 16:21:38 +00:00
ClippedImage.h Bug 1143478 - Rename mozilla::Pair to CompactPair. r=froydnj 2020-03-17 12:42:12 +00:00
CopyOnWrite.h
DecodePool.cpp Bug 1660470 - Add missing include directives/forward declarations. r=nika 2020-11-23 16:21:38 +00:00
DecodePool.h Bug 1672597 - Part 2: Use TaskController's thread pool for image decoding. r=aosmond 2020-10-27 15:29:26 +00:00
DecodedSurfaceProvider.cpp Bug 1651587 - Make image::Image released efficient on main thread r=aosmond 2020-07-10 14:34:01 +00:00
DecodedSurfaceProvider.h
Decoder.cpp Bug 1683557 - Make `image` buildable outside of `unified-build` environment. r=aosmond 2021-01-04 14:20:22 +00:00
Decoder.h Bug 1620600 - Add flags to allow image decoders to produce sRGB output. r=tnikkel 2020-04-10 16:26:33 +00:00
DecoderFactory.cpp Backed out changeset 6c865ed1f998 (bug 1641389) for perma failures on test_animation_operators.html. CLOSED TREE 2020-05-28 05:43:40 +03:00
DecoderFactory.h Bug 1625363 - AVIF (AV1 Image File Format): experimental support. r=aosmond,necko-reviewers,valentin 2020-05-01 22:56:04 +00:00
DecoderFlags.h
Downscaler.cpp
Downscaler.h
DownscalingFilter.h Bug 1594425 - Part 2. Switch image decoders to use SurfaceFormat::OS_RGBA. r=tnikkel 2019-11-12 18:22:33 +00:00
DynamicImage.cpp Bug 1660470 - Add missing include directives/forward declarations. r=nika 2020-11-23 16:21:38 +00:00
DynamicImage.h
FrameAnimator.cpp Bug 1683557 - Make `image` buildable outside of `unified-build` environment. r=aosmond 2021-01-04 14:20:22 +00:00
FrameAnimator.h Bug 1629490. The composited frame is now invalid for animated images that have finished. r=aosmond 2020-04-20 03:38:27 +00:00
FrameTimeout.h
FrozenImage.cpp Bug 1631365. img.decode never fulfills or rejects if the image is too big to fit into the surface cache. r=aosmond 2020-04-20 21:04:45 +00:00
FrozenImage.h Bug 1631365. img.decode never fulfills or rejects if the image is too big to fit into the surface cache. r=aosmond 2020-04-20 21:04:45 +00:00
ICOFileHeaders.h
IDecodingTask.cpp Bug 1616411 - Part 3: Make RasterImage deal with and apply image orientation. r=tnikkel 2020-04-17 02:57:30 +00:00
IDecodingTask.h Bug 1609815 - Remove Web Replay C++ implementation. r=jgilbert,jandem,gbrown 2020-02-27 17:39:15 +00:00
IProgressObserver.h Bug 1653011 - Simplify and make WeakPtr<Derived> usable and compact. r=froydnj,sg,geckoview-reviewers,jgilbert,kvark,snorp 2020-07-23 14:51:46 +00:00
ISurfaceProvider.h Bug 1660470 - Add missing include directives/forward declarations. r=nika 2020-11-23 16:21:38 +00:00
Image.cpp Bug 1687391 - Avoid using a spinlock in ThreadSafeWeakReference, r=glandium,mccr8,Gankra,sg 2021-02-03 17:00:04 +00:00
Image.h Bug 1660470 - Add missing include directives/forward declarations. r=nika 2020-11-23 16:21:38 +00:00
ImageBlocker.cpp Bug 1685900 - Split internal and external contentPolicyType. r=ckerschb,smaug 2021-01-15 12:07:16 +00:00
ImageBlocker.h Bug 1357107 - Move the handling of the permissions.default.image pref to ImageBlocker.cpp. Original patch by ehsan. r=bzbarsky 2020-01-22 10:45:15 +00:00
ImageCacheKey.cpp Bug 1654649 - Deny requestStorageAccess for sites with denied cookie permission. r=timhuang 2020-12-16 16:45:18 +00:00
ImageCacheKey.h Bug 1665343 - Remove blob specialness in image cache. r=tnikkel 2020-09-22 22:02:42 +00:00
ImageFactory.cpp Bug 1683557 - Make `image` buildable outside of `unified-build` environment. r=aosmond 2021-01-04 14:20:22 +00:00
ImageFactory.h
ImageLogging.h
ImageMemoryReporter.cpp Bug 1660470 - Add missing include directives/forward declarations. r=nika 2020-11-23 16:21:38 +00:00
ImageMemoryReporter.h Bug 1552317 - Fix codespell errors for image/. r=tnikkel 2019-09-12 09:00:52 +00:00
ImageMetadata.h Bug 1626570 - Improve handling of copying arrays in image/. r=tnikkel 2020-05-06 11:54:32 +00:00
ImageOps.cpp Bug 1616411 - Part 4: Make nsLayoutUtils::OrientImage undo any automatic RasterImage orientation when required. r=tnikkel 2020-04-17 02:57:32 +00:00
ImageOps.h Bug 1616411 - Part 4: Make nsLayoutUtils::OrientImage undo any automatic RasterImage orientation when required. r=tnikkel 2020-04-17 02:57:32 +00:00
ImageRegion.h Bug 1683557 - Make `image` buildable outside of `unified-build` environment. r=aosmond 2021-01-04 14:20:22 +00:00
ImageWrapper.cpp Bug 1656114 - Part 4: Accumulate page use counters in the parent process. r=emilio,nika 2020-10-11 22:03:43 +00:00
ImageWrapper.h
ImgDrawResult.h Bug 1685796 - Return BAD_IMAGE when sync-decoding an incomplete, errored image. r=tnikkel 2021-01-12 02:28:00 +00:00
LookupResult.h Bug 1631365. img.decode never fulfills or rejects if the image is too big to fit into the surface cache. r=aosmond 2020-04-20 21:04:45 +00:00
MultipartImage.cpp
MultipartImage.h
Orientation.h Bug 1616411 - Part 4: Make nsLayoutUtils::OrientImage undo any automatic RasterImage orientation when required. r=tnikkel 2020-04-17 02:57:32 +00:00
OrientedImage.cpp Bug 1660470 - Add missing include directives/forward declarations. r=nika 2020-11-23 16:21:38 +00:00
OrientedImage.h Bug 1616411 - Part 2: Don't bother passing in the size to OrientedImage::OrientSurface. r=tnikkel 2020-04-17 02:57:22 +00:00
PlaybackType.h
ProgressTracker.cpp Bug 1620594 - Part 5: Use GetMainThreadSerialEventTarget instead of SystemGroup::EventTargetFor. r=nika 2020-04-07 15:17:07 +00:00
ProgressTracker.h Bug 1653011 - Simplify and make WeakPtr<Derived> usable and compact. r=froydnj,sg,geckoview-reviewers,jgilbert,kvark,snorp 2020-07-23 14:51:46 +00:00
RasterImage.cpp Bug 1681546 - rename MOZ_ATOMIC_BITFIELDS methods to Load/Store. r=valentin,necko-reviewers 2020-12-09 18:14:55 +00:00
RasterImage.h Bug 1681546 - rename MOZ_ATOMIC_BITFIELDS methods to Load/Store. r=valentin,necko-reviewers 2020-12-09 18:14:55 +00:00
SVGDocumentWrapper.cpp Bug 1683557 - Make `image` buildable outside of `unified-build` environment. r=aosmond 2021-01-04 14:20:22 +00:00
SVGDocumentWrapper.h
SVGDrawingParameters.h Bug 1652254 - Remove svg from some moz.build local includes r=dholbert 2020-07-12 16:38:26 +00:00
ScriptedNotificationObserver.cpp Bug 1621835. Make imgINotificationObserver::Notify a void method, since no one examines its return value anyway. r=emilio 2020-03-12 04:25:34 +00:00
ScriptedNotificationObserver.h
ShutdownTracker.cpp
ShutdownTracker.h
SourceBuffer.cpp Bug 1642989 - Use RemoveLastElements instead of RemoveElementsAt where possible. r=froydnj 2020-06-08 08:50:15 +00:00
SourceBuffer.h Bug 1609996 - Reorder some includes affected by the previous patches. r=froydnj 2020-01-20 16:19:48 +00:00
StreamingLexer.h Bug 1609996 - Reorder some includes affected by the previous patches. r=froydnj 2020-01-20 16:19:48 +00:00
SurfaceCache.cpp Bug 1683557 - Make `image` buildable outside of `unified-build` environment. r=aosmond 2021-01-04 14:20:22 +00:00
SurfaceCache.h Bug 1651587 - Make image::Image released efficient on main thread r=aosmond 2020-07-10 14:34:01 +00:00
SurfaceCacheUtils.cpp
SurfaceCacheUtils.h
SurfaceFilters.h Bug 1609996 - Remove mozilla::Swap in favor of std::swap. r=froydnj 2020-01-20 16:17:06 +00:00
SurfaceFlags.h Bug 1620600 - Add flags to allow image decoders to produce sRGB output. r=tnikkel 2020-04-10 16:26:33 +00:00
SurfacePipe.cpp Bug 1551088 - Part 5. Expose SurfaceFilter input row directly to avoid copy if possible. r=tnikkel 2019-10-02 13:37:28 +00:00
SurfacePipe.h Bug 1609996 - Reorder some includes affected by the previous patches. r=froydnj 2020-01-20 16:19:48 +00:00
SurfacePipeFactory.h Bug 1594425 - Part 2. Switch image decoders to use SurfaceFormat::OS_RGBA. r=tnikkel 2019-11-12 18:22:33 +00:00
VectorImage.cpp Bug 1683557 - Make `image` buildable outside of `unified-build` environment. r=aosmond 2021-01-04 14:20:22 +00:00
VectorImage.h Bug 1683557 - Make `image` buildable outside of `unified-build` environment. r=aosmond 2021-01-04 14:20:22 +00:00
imgFrame.cpp Bug 1683557 - Make `image` buildable outside of `unified-build` environment. r=aosmond 2021-01-04 14:20:22 +00:00
imgFrame.h Bug 1641594 - Remove the wrapper around recycled surfaces. r=tnikkel 2020-06-11 17:49:13 +00:00
imgICache.idl
imgIContainer.idl Bug 1678062 - Remove unnecessary includes. r=andi 2020-11-23 16:12:02 +00:00
imgIContainerDebug.idl
imgIEncoder.idl
imgILoader.idl Bug 1628727 - Stop using nsISupports as argument type in some functions of imgLoader; r=tnikkel 2020-04-10 21:14:49 +00:00
imgINotificationObserver.idl Bug 1621835. Make imgINotificationObserver::Notify a void method, since no one examines its return value anyway. r=emilio 2020-03-12 04:25:34 +00:00
imgIRequest.idl Bug 1631365. img.decode never fulfills or rejects if the image is too big to fit into the surface cache. r=aosmond 2020-04-20 21:04:45 +00:00
imgIScriptedNotificationObserver.idl
imgITools.idl Bug 1530402 - Provide imgTools.decodeFromChannelAsync. r=aosmond,snorp 2019-11-18 16:48:53 +00:00
imgLoader.cpp Bug 1660470 - Add missing include directives/forward declarations. r=nika 2020-11-23 16:21:38 +00:00
imgLoader.h Bug 1673931 - Avoid including Document.h from header files. r=emilio 2020-11-23 16:07:43 +00:00
imgRequest.cpp Bug 1660470 - Add missing include directives/forward declarations. r=nika 2020-11-23 16:21:38 +00:00
imgRequest.h Bug 1519636 - Reformat with clang-format-11 to the Google coding style r=andi,sg,geckoview-reviewers,snorp 2020-11-18 09:05:59 +00:00
imgRequestProxy.cpp Bug 1683557 - Make `image` buildable outside of `unified-build` environment. r=aosmond 2021-01-04 14:20:22 +00:00
imgRequestProxy.h Bug 1678560 - Avoid including nsILoadGroup.h in header files. r=tnikkel 2020-11-23 16:12:44 +00:00
imgTools.cpp Bug 1674777 part 3 - Change Get*LengthAndData outparam from uint32_t to size_t. r=sfink,aosmond 2021-01-31 08:35:40 +00:00
imgTools.h
moz.build Bug 1654103: Standardize on Black for Python code in `mozilla-central`. 2020-10-26 18:34:53 +00:00
nsIIconURI.idl