107 Commits
Author SHA1 Message Date
Moonchild 28c47723b2 Fix comment (nit) 2026-07-25 16:12:08 +02:00
Moonchild 775588b75d [image] Make sure the image was fully and cleanly decoded before finalizing its animation state as complete. 2026-07-25 10:01:55 +02:00
Moonchild 17b7e131b4 Issue #3030 - Improve image cache entry handling.
This:
- increases max image cache entry size and adjusts related parameters.
- makes the cache entry timeout configurable for advanced tweaking.
- adds a mechanism to keep commonly-used, small image sizes in cache
  longer.
2026-05-09 08:26:44 +02:00
Moonchild 1842de878f [image] Don't do unnecessary work if the image is being destroyed. 2026-04-26 11:48:42 +02:00
Moonchild 58f6eb679b [image] Hold a strong ref on mInnerImage when requesting a refresh. 2026-04-26 10:23:39 +02:00
Moonchild 6f74b59900 [image] Hold a strong ref on error. 2026-04-24 10:37:01 +02:00
Moonchild a00f48f894 Merge pull request 'Solve imgLoader crashes' (#2929) from imgLoader-crash-work into master
Reviewed-on: https://repo.palemoon.org/MoonchildProductions/UXP/pulls/2929
2026-02-07 08:31:08 +00:00
mittorn c6bc9d5a8c Issue #2932 - Ensure that imgRequestProxy::CancelAndForgetObserver removes itself from the cache validator
https://hg-edge.mozilla.org/releases/mozilla-beta/rev/af82d0c33427
2026-02-06 23:14:54 +00:00
Moonchild 4344b62a3a Issue #2928 - Improve imgLoader cache queue handling.
- Convert the imgCacheQueue to nsTArray from Vector
- Avoid marking the queue dirty when element operations are performed
that don't upset the sort order. This should improve performance as well.
2026-02-04 09:40:22 +01:00
Moonchild 3267ae2ef7 Issue #2928 - Avoid searching the image cache queue for an entry after we just popped it off the queue. 2026-02-04 09:07:23 +01:00
Moonchild 1eb24b9f9c Issue #2928 - Always refresh dirty queue. 2026-02-03 10:17:19 +01:00
Moonchild a9e11bdca7 Issue #2928 - Re-order imgLoader::RemoveFromCache
Remove from tracker first before removing from cache, and if the cache
queue is dirty, refresh it (causes a re-heap) before manipulating further.
2026-02-03 08:51:06 +01:00
Moonchild 02fb8a4ca3 Issue #2928 - Check mCacheQueue size before removing entries.
Resolves #2928
2026-02-03 08:10:37 +01:00
Moonchild d62f6b37bf Revert "Issue #2928 - Check mCacheQueue size before removing entries."
This reverts commit aaae14d111.
2026-02-03 07:52:14 +01:00
Moonchild aaae14d111 Issue #2928 - Check mCacheQueue size before removing entries.
Resolves #2928
2026-02-02 18:43:28 +01:00
trav90 fe7ca5276f Issue #1636 - Part 1 - Decouple Gio from GConf and always build it with GTK
Also removes the ancient and unused --enable-gnomeui option.
2026-01-09 10:30:54 -06:00
Moonchild e518f846b3 [image] Use the TriggeringPrincipal if we have one, not the SystemPrincipal 2025-12-15 18:00:45 +01:00
Moonchild 32be60a48f Revert "Issue #2258 - Part 2: Move XCTO:nosniff check into sniffers."
This reverts commit 51e1650d42.
2025-09-23 18:17:45 +02:00
Moonchild fd232c1468 Revert "Issue #2258 - Part 3: Allow sniffing with XCTO:nosniff + empty MIME type."
This reverts commit a56f978f70.
2025-09-23 18:17:39 +02:00
Moonchild 5568acf108 Issue #2739 - Default-enable libjxl and image/jxl format
This removes the build option and pref, supporting JPEG-XL as an
ubiquitous format for all UXP applications.
Resolves #2739
2025-05-15 21:21:52 +02:00
Moonchild 7b537e0b8c Issue #2736 - Part 3: Use TriggeringPrincipal for image loads.
The imgLoader code consistently uses the term `loadingPrincipal` for
the principal that is called the `triggeringPrincipal` everywhere else.
This aligns the naming to avoid confusion in later changes.
2025-04-28 10:04:07 +02:00
Moonchild ace69a4d32 Issue #2736 - Part 1: Provide more consistent principals to CSP.
We're currently fairly vague and inconsistent about the values we provide to
content policy implementations for requestOrigin and requestPrincipal. In some
cases they're the triggering principal, sometimes the loading principal,
sometimes the channel principal.

Our existing content policy implementations which require or expect a
loading principal currently retrieve it from the context node.
Since no current callers require the principal to be the loading
principal, and some already expect it to be the triggering principal
(which there's currently no other way to retrieve), a choice was made
to pass the triggering principal whenever possible, but use the loading
principal to determine the origin URL.
2025-04-26 20:07:16 +02:00
Moonchild 32dd996cf2 Issue #2657 - Remove -moz-samplesize resize-decoding for low-vram mobiles
Resolves #2657
2024-11-20 14:10:10 +01:00
FranklinDM 7d330b89c8 Issue #2112 - Part 1: Remove Stylo tests 2024-03-26 01:24:23 +08:00
Moonchild 734f0957fb Issue #2343 - replace MOZ_FALLTHROUGH with [[fallthrough]]
Basically a S&R. Removed the macro and adjusts IDL codegen accordingly.
2023-11-11 14:27:03 +01:00
Moonchild 8e81d25f5d Issue #2342: Use [[nodiscard]] in /hal /image and /intl 2023-11-08 13:46:01 +01:00
Moonchild 8666ce68fc No issue - Limit JPEG decoder memory allocation to surface cache size.
This means that for trivial images whose header specifies large
dimensions but with no image data, we don't waste a lot of memory.
See BZ bug 1277397
2023-05-10 22:50:22 +02:00
Moonchild ce594b49ca Issue #1656 - Remove more vim control lines.
Vim control lines were re-introduced or not entirely cleaned up.
This nukes them again.
Removing from the rest of js, caps, chrome, config, devtools, docshell,
image, intl. More to come.
2023-05-03 22:09:21 +02:00
Moonchild 78156cd0ca Merge pull request 'Follow-up: Use internal Move instead of std::move for consistency in SurfaceCache' (#2220) from FranklinDM/UXP-contrib:work_image-followup-move into master
Reviewed-on: https://repo.palemoon.org/MoonchildProductions/UXP/pulls/2220
2023-04-30 10:51:48 +00:00
FranklinDM e821844e24 Issue #2073 - Follow-up: Use internal Move instead of std::move for consistency 2023-04-30 18:21:06 +08:00
FranklinDM 7251ed27ff Issue #2218 - Part 2: Make SurfaceCache free ImageSurfaceCache objects outside of the lock
Based on https://bugzilla.mozilla.org/show_bug.cgi?id=1389479
2023-04-30 18:17:29 +08:00
Moonchild f3c063a868 Issue #2131 - Remove image.webp.enabled preference 2023-02-27 19:27:19 +01:00
FranklinDM 8d980914af Issue #1382 - Fix invalid assert for decoder type if JXL is not built on debug builds 2023-02-20 17:22:16 +08:00
Martok 61dccf9933 Issue #2073 - m-c 1454149: Do not advance animated images which are not displayed 2023-01-04 00:50:26 +01:00
Martok cbcf9b9d8e Issue #2073 - m-c 1546500: Avoid dispatching synchronous thread shutdown runnables 2023-01-04 00:50:17 +01:00
Martok d28497f2cf Issue #2073 - m-c 1651587: Make image::Image release efficient on main thread 2023-01-04 00:50:03 +01:00
Martok 919a966dc2 Issue #2073 - m-c 1383404: make SourceBuffer::Compact more efficient (squashed)
The first part also means that Compact no longer needs the SurfaceCache lock (used to be via CreateChunk->CanHold),
which avoids potential deadlocks during shutdown that m-c 523950 would otherwise cause
2023-01-04 00:49:05 +01:00
Martok b618b3fb76 Issue #2073 - m-c 523950: Discard decoded frames of very large GIF animations (squashed)
Controlled by image.animated.decode-on-demand.threshold-kb, default 256MB

Includes squashed bugfixes/regressions:
 - m-c 1444537: Shutting down the decode pool should make animated decoders bail early
 - m-c 1628606: Make sure to mark the surface cache entry available before sending the frame complete notification
 - m-c 1502275: Skip recreating the decoder after redecode errors if an animated image is reset
 - m-c 1443232: Don't insert frames into our AnimationFrameBuffer that we consider in error and unusable
2023-01-04 00:49:04 +01:00
Martok e7fd4ba61b Issue #2073 - m-c 1343341: Infrastructure necessary to allow discarding of animated images (squashed)
Includes squashed changes of:
 - m-c 1317907: Refactor FrameAnimator::GetCompositedFrame to be a bit simpler
 - m-c 1351434: bugfix
 - m-c 686905: Enable the pref image.mem.animated.discardable to allow discarding of animated images
2023-01-03 02:01:10 +01:00
Martok 608ecc9549 Issue #2073 - m-c 1382683: Accelerate GIF decoding to SurfacePipe
1. Implement SurfacePipe::WritePixelBlocks for faster writing of pixels
2. Switch nsGIFDecoder2 to write pixels in blocks instead of individually
2023-01-03 02:01:10 +01:00
Job Bautista b9d00e8c27 Issue #2057 - Use gfxPackedPixel + WritePixels instead of WriteBuffer.
This means we no longer need the workarounds intended for #2033 and #2040!
2022-12-19 13:58:32 +08:00
lexx9999 6343937b2c Issue #2041 follow-up - fix macro condition 2022-12-11 05:26:37 +01:00
Job Bautista 925b33158b Issue #2041 Follow-up - Remove opacity check from original patch.
Per Issue #2033 we don't support expanding RGB to RGBA yet, so this opacity
 check will always return RGBX, which makes images with transparent backgrounds
 show up with a black background instead. Feel free to readd once we backport
 Mozilla bug 1551088.
2022-12-02 14:17:10 +08:00
Job Bautista daf859d84c Issue #2048 - Add progressive decoding for JPEG-XL.
Based on Mozilla phab D122159, intended for bug 1709815.
Also moved the temporary RGBA and premultiplication fixes to a macro, since
 progressive decoding also needs these fixes.
2022-12-02 13:28:34 +08:00
Job Bautista b66e0ffdc4 Issue #2041 - Add animation support for JPEG-XL.
Based on Mozilla phab D122158, intended for bug 1709818.
2022-12-02 11:15:05 +08:00
Moonchild 2e888727e0 Issue #2040 - Pre-multiply the alpha values in our JXL decode buffer.
Using selective calculation (only if not opaque) and fast integer
math here should optimize well in compilers.
2022-11-30 14:28:09 +00:00
Moonchild 6efb151520 [no issue] fix whitespace. 2022-11-24 15:06:28 +00:00
Moonchild 4b9789888f Issue #2033 - Temporary fix of R<->B channel swap.
We have a BGR/RGB channel ordering mismatch here. to at least
provide proper display, a quick&dirty byte swap on the output
buffer will fix this for now, but we should look into seeing where
the surface mismatch is caused.
std::swap() should optimize pretty well in any of the used
compilers, but if necessary, a full buffer ASM routine can be
slotted in (although on current hardware I doubt this will be
even noticeable as it is)
2022-11-24 12:37:28 +00:00
Moonchild d19fb35c6a Merge branch 'master' into 1769-take2 2022-11-07 13:49:11 +00:00
Moonchild 1139e11f3a [No issue] Hold some strong references on nsRefreshDriver 2022-10-26 08:05:04 +00:00