nextcloud/lib/private
Anna Larch 8a0080cbbb fix(theming): fix broken custom images introduced in 32.0.9
PR #58224 introduced a raster→SVG conversion path in ImageManager::getImage()
that breaks display of custom theming images. The root cause is a three-part
bug chain:

1. getImage() attempted to convert raster images (PNG/JPEG) to SVG format,
   which Imagick cannot do meaningfully and produces broken output.
2. getMimeType() returns 'application/octet-stream' for extensionless stored
   files, so the Content-Type response header was wrong.
3. Stale .svg cache files persisted after image replacement, causing
   subsequent requests to serve the wrong format.

Fix by:
- Restricting the Imagick conversion to SVG→PNG only (not raster→SVG)
- Reading the stored MIME type from IAppConfig for extensionless files in
  ThemingController::getImage()
- Deleting .svg cache files in ImageManager::delete()
- Injecting IAppConfig into ImageManager and reading the cachebuster via
  IAppConfig::getAppValueInt() so the URL returned after upload always
  carries the freshly-incremented value (IConfig::getAppValue() can return
  a stale cached value within the same request)
- Updating the FileInputField Vue component to use a reactive cacheKey ref
  that increments on every upload, so the thumbnail refreshes even when the
  MIME type of the new image is the same as the old one

AI-Assisted-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Anna Larch <anna@nextcloud.com>
2026-05-07 19:40:49 +02:00
..
Accounts chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Activity chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
App chore: apply strict rector rules on appstore 2026-05-05 10:41:04 +02:00
AppFramework refactor: split appstore from settings 2026-05-05 10:41:04 +02:00
Archive chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Authentication chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Avatar chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
BackgroundJob chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Blurhash/Listener chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Broadcast/Events chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Cache chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Calendar chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Collaboration chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Command chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Comments chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Config fix: Remove duplicated match values in PresetManager 2026-05-07 12:42:08 +02:00
Console chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Contacts/ContactsMenu refactor: use strict operator 2026-04-30 00:51:29 +02:00
ContextChat chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Dashboard chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
DB chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Diagnostics chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
DirectEditing chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Encryption chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
EventDispatcher chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Federation chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Files Merge pull request #59995 from nextcloud/quota-writestream-fopen 2026-05-04 10:06:18 +02:00
FilesMetadata chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
FullTextSearch chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
GlobalScale feat(rector): Enable SafeDeclareStrictTypesRector 2026-02-09 10:59:31 +01:00
Group chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Hooks chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Http chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
IntegrityCheck chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
KnownUser refactor: Apply second batch of comments 2026-02-06 13:52:51 +01:00
L10N chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
LDAP chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
legacy refactor(appstore): migrate sidebar to Vue 3 and Typescript 2026-05-05 22:16:01 +02:00
Lock chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Lockdown chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Log refactor: use strict operator 2026-04-30 00:51:29 +02:00
Mail chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Memcache chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Migration chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Net fix(net): Add IPv6 zone handling to IpAddressClassifier 2024-10-31 17:06:36 -04:00
Notification chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
OCM chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
OCS chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
OpenMetrics chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Preview fix(previews): use createParameter/setParameter to reuse query in chunk loop 2026-05-06 10:32:54 +02:00
Profile chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Profiler chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Remote chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Repair chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
RichObjectStrings chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Route refactor: split appstore from settings 2026-05-05 10:41:04 +02:00
Search chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Security refactor: use strict operator 2026-04-30 00:51:29 +02:00
Session chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Settings fix(settings): Fix admin delegation for hidden sections 2026-05-07 12:47:54 +02:00
Setup chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
SetupCheck fix: correct typo 'occured' to 'occurred' in SetupCheckManager 2026-05-07 00:27:52 -05:00
Share refactor: Remove old Share backend 2026-03-10 10:09:40 +01:00
Share20 refactor: use strict operator 2026-04-30 00:51:29 +02:00
Snowflake fix(snowflake_ids): allow multiple instance with same temp directory 2026-02-23 11:46:07 +01:00
SpeechToText chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Support chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
SystemTag chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Tagging chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Talk chore: Fix missing Override 2026-05-04 18:29:37 +02:00
TaskProcessing chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Teams chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Template chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
TextProcessing chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
TextToImage chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Translation chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Updater test(Updater): Harden flaky test 2026-02-04 09:44:56 +01:00
User Merge pull request #59932 from nextcloud/carl/copySkeleton 2026-04-29 23:15:38 +02:00
UserStatus chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
AllConfig.php chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
AppConfig.php chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
AppScriptDependency.php chore: apply new CSFixer rules 2025-07-01 16:26:50 +02:00
AppScriptSort.php refactor: Run rector on lib/private 2026-02-06 13:50:18 +01:00
BinaryFinder.php chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
CapabilitiesManager.php refactor: Apply comments 2026-02-06 13:50:46 +01:00
Color.php feat(rector): Enable SafeDeclareStrictTypesRector 2026-02-09 10:59:31 +01:00
Config.php fix: change config-warning to const per @come-nc request in the PR. 2026-04-07 11:47:14 +03:00
ContactsManager.php chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
DatabaseException.php feat(rector): Enable SafeDeclareStrictTypesRector 2026-02-09 10:59:31 +01:00
DatabaseSetupException.php feat(rector): Enable SafeDeclareStrictTypesRector 2026-02-09 10:59:31 +01:00
DateTimeFormatter.php chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
DateTimeZone.php chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
EmojiHelper.php chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
EventSource.php chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
EventSourceFactory.php chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
ForbiddenException.php feat(rector): Enable SafeDeclareStrictTypesRector 2026-02-09 10:59:31 +01:00
HintException.php chore: Add SPDX header 2024-05-24 13:11:22 +02:00
Image.php chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
InitialStateService.php chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Installer.php refactor: use strict operator 2026-04-30 00:51:29 +02:00
LargeFileHelper.php refactor: Run rector on lib/private 2026-02-06 13:50:18 +01:00
Log.php chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
MemoryInfo.php chore(deps): Update nextcloud/coding-standard to v1.3.1 2024-09-19 14:21:20 +02:00
NaturalSort.php refactor: Apply rector changes 2026-04-05 14:47:27 +00:00
NaturalSort_DefaultCollator.php chore: Add SPDX header 2024-05-24 13:11:22 +02:00
NavigationManager.php refactor(appstore): split controllers and use proper root 2026-05-05 10:41:04 +02:00
NeedsUpdateException.php feat(rector): Enable SafeDeclareStrictTypesRector 2026-02-09 10:59:31 +01:00
NotSquareException.php feat(rector): Enable SafeDeclareStrictTypesRector 2026-02-09 10:59:31 +01:00
PhoneNumberUtil.php chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
PreviewManager.php chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
PreviewNotAvailableException.php feat(rector): Enable SafeDeclareStrictTypesRector 2026-02-09 10:59:31 +01:00
RedisFactory.php refactor: Add more typing 2026-02-06 13:55:39 +01:00
Repair.php chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
RepairException.php feat(rector): Enable SafeDeclareStrictTypesRector 2026-02-09 10:59:31 +01:00
Server.php fix(theming): fix broken custom images introduced in 32.0.9 2026-05-07 19:40:49 +02:00
ServerContainer.php chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
ServerNotAvailableException.php feat(rector): Enable SafeDeclareStrictTypesRector 2026-02-09 10:59:31 +01:00
ServiceUnavailableException.php feat(rector): Enable SafeDeclareStrictTypesRector 2026-02-09 10:59:31 +01:00
Setup.php chore: Remove types from const properties for PHP 8.2 compatibility 2026-03-23 16:36:01 +01:00
Streamer.php refactor: Run rector on lib/private 2026-02-06 13:50:18 +01:00
StreamImage.php feat(rector): Enable SafeDeclareStrictTypesRector 2026-02-09 10:59:31 +01:00
SubAdmin.php chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
SystemConfig.php fix(config): correct indentation for Sentry CSP Report URL 2026-03-27 16:11:28 +01:00
TagManager.php chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Tags.php chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
TemplateLayout.php Merge pull request #59952 from nextcloud/fix/public-view-inital-state 2026-04-30 12:42:31 +02:00
TempManager.php chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00
Updater.php fix(upgrade): restore missing apps on upgrade 2026-04-17 11:34:35 +02:00
URLGenerator.php chore: add missing Override attribute to OC 2026-04-28 21:29:27 +02:00