Skip to content

fix: add rel=noopener to target=_blank links#1880

Merged
pedrolamas merged 1 commit into
fluidd-core:developfrom
pedrolamas:pedrolamas/rel-noopener
Jun 16, 2026
Merged

fix: add rel=noopener to target=_blank links#1880
pedrolamas merged 1 commit into
fluidd-core:developfrom
pedrolamas:pedrolamas/rel-noopener

Conversation

@pedrolamas

Copy link
Copy Markdown
Member

Adds rel="noopener noreferrer" to all target="_blank" links across the app, preventing reverse-tabnabbing and blocking new tabs from accessing window.opener.

Follow-up to the same fix made for linkExternalUrls in #1879

Signed-off-by: Pedro Lamas <pedrolamas@gmail.com>
@pedrolamas pedrolamas added this to the 1.37.2 milestone Jun 16, 2026
@pedrolamas pedrolamas requested a review from Copilot June 16, 2026 10:38
@pedrolamas pedrolamas added the GH - Bug Something isn't working label Jun 16, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Adds rel="noopener noreferrer" wherever the app opens links in a new tab/window (target="_blank"), mitigating reverse-tabnabbing and preventing access to window.opener.

Changes:

  • Adds rel="noopener noreferrer" to various <a>, <app-btn>, and <v-btn> links using target="_blank".
  • Ensures Markdown preview links rendered via marked also include rel="noopener noreferrer".
  • Documents the target="_blank" + rel="noopener noreferrer" requirement in AGENTS.md.

Reviewed changes

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

Show a summary per file
File Description
src/components/widgets/spoolman/SpoolSelectionDialog.vue Adds rel="noopener noreferrer" to the Spoolman manage link opened in a new tab.
src/components/widgets/filesystem/FilePreviewDialog.vue Updates Markdown link rendering to include rel="noopener noreferrer" alongside target="_blank".
src/components/widgets/filesystem/FileEditorDialog.vue Adds rel="noopener noreferrer" to the external config map link.
src/components/widgets/camera/CameraItem.vue Adds rel="noopener noreferrer" to the raw camera URL link opened in a new tab.
src/components/widgets/afc/dialogs/AfcSettingsDialog.vue Adds rel="noopener noreferrer" to the external AFC help link.
src/components/settings/VersionSettings.vue Adds rel="noopener noreferrer" to remote URL links opened in a new tab.
src/components/settings/VersionInformationDialog.vue Adds rel="noopener noreferrer" to commit/branch links opened in a new tab.
src/components/layout/AppNotificationMenu.vue Adds rel="noopener noreferrer" to notification action links opened in a new tab.
src/components/common/Login.vue Adds rel="noopener noreferrer" to docs links opened in a new tab.
AGENTS.md Documents the project convention requiring rel="noopener noreferrer" with target="_blank".

@pedrolamas pedrolamas merged commit f80d943 into fluidd-core:develop Jun 16, 2026
4 checks passed
@pedrolamas pedrolamas deleted the pedrolamas/rel-noopener branch June 16, 2026 10:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

GH - Bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants