Skip to content

Add user settings to control loading external content#3566

Open
wofferl wants to merge 1 commit intonextcloud:masterfrom
wofferl:feat_privacy_settings
Open

Add user settings to control loading external content#3566
wofferl wants to merge 1 commit intonextcloud:masterfrom
wofferl:feat_privacy_settings

Conversation

@wofferl
Copy link
Collaborator

@wofferl wofferl commented Feb 15, 2026

Summary

This PR adds settings to the web frontend to control loading external media.

It generally sets preload="none" on video and audio found in the article body.
Images are controlled with the settings and this can be show always, replace media with consent button or remove it at all.

Note:
This PR also added support for MRSS images, which are currently not shown. There can be redundancy with images from body or thumbnails and I disabled them generally if fulltext is enabled for the feed.
Thumbnails are now only displayed when media:content is audio or unknown mime type.
The default for theses images could also be set to 'never', so there is no change to the current state and users need to enable MRSS images by themselves.

Here an example of the consent buttons. It contains the domain and when an alt or title attribute is given a description. The type of media (img, iframe, etc) is shown in the button title.

grafik

These are the user settings:

grafik

Checklist

@wofferl wofferl self-assigned this Feb 15, 2026
@wofferl wofferl added enhancement frontend impact Javascript/Frontend code labels Feb 15, 2026
@wofferl wofferl requested a review from Copilot February 15, 2026 10:43
@codecov
Copy link

codecov bot commented Feb 15, 2026

Codecov Report

❌ Patch coverage is 93.67816% with 11 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/components/feed-display/FeedItemDisplay.vue 90.98% 0 Missing and 11 partials ⚠️

📢 Thoughts on this report? Let us know!

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces user-configurable frontend settings to control whether external media (enclosure thumbnails/images and images/iframes inside article bodies) is loaded automatically, shown behind a consent button, or removed.

Changes:

  • Add new media-related enums and a mediaOptions state/getter/mutation, initialized from server-provided initial state.
  • Extend the settings dialog with new radio groups to configure media loading behavior.
  • Update feed item rendering to (a) gate images/iframes behind consent UI and (b) set preload="none" for audio/video.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 12 comments.

Show a summary per file
File Description
tests/javascript/unit/components/routes/Explore.spec.ts Mock loadState for stable explore route unit tests.
tests/javascript/unit/components/modals/AppSettings.spec.ts Add unit tests for new media settings controls.
tests/javascript/unit/components/feed-display/FeedItemDisplay.spec.ts Add extensive unit tests for media gating/consent behavior and sanitization.
src/store/app.ts Add mediaOptions to app state and initialize from initial state.
src/enums/index.ts Introduce SHOW_MEDIA and MEDIA_TYPE enums.
src/components/modals/AppSettingsDialog.vue Add “Media” settings section and persistence via mediaOptions.
src/components/feed-display/FeedItemDisplay.vue Implement consent gating + sanitization of body HTML and enclosure rendering changes.
src/components/ContentTemplate.vue Force FeedItemDisplay remount on item index changes (reset consent state).
lib/Controller/PageController.php Provide initial state for mediaOptions from user config with defaults.
CHANGELOG.md Add unreleased entries for the new settings and Media RSS image support.

@wofferl wofferl force-pushed the feat_privacy_settings branch 4 times, most recently from dfcda4c to a620185 Compare February 15, 2026 17:48
Signed-off-by: Wolfgang <github@linux-dude.de>
@wofferl wofferl force-pushed the feat_privacy_settings branch from a620185 to fd2ebed Compare February 15, 2026 17:49
@wofferl wofferl marked this pull request as ready for review February 15, 2026 18:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

3. to review enhancement frontend impact Javascript/Frontend code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant