diff --git a/packages/main/src/Link.js b/packages/main/src/Link.js index 9bf41e7d23dd..7c0483e05301 100644 --- a/packages/main/src/Link.js +++ b/packages/main/src/Link.js @@ -246,11 +246,11 @@ class Link extends UI5Element { } onBeforeRendering() { - const needsNoReferrer = this.target === "_blank" + const needsNoReferrer = this.target !== "_self" && this.href && this._isCrossOrigin(); - this._rel = needsNoReferrer ? "noreferrer" : undefined; + this._rel = needsNoReferrer ? "noreferrer noopener" : undefined; } _isCrossOrigin() { diff --git a/packages/main/test/pages/Link.html b/packages/main/test/pages/Link.html index 507bf20e4522..5c02c0cb76f2 100644 --- a/packages/main/test/pages/Link.html +++ b/packages/main/test/pages/Link.html @@ -27,7 +27,7 @@
- Standard Link + Standard Link Subtle link Disabled Emphasized diff --git a/packages/main/test/specs/Link.spec.js b/packages/main/test/specs/Link.spec.js index 1fbfd681041b..0811866920b0 100644 --- a/packages/main/test/specs/Link.spec.js +++ b/packages/main/test/specs/Link.spec.js @@ -22,6 +22,12 @@ describe("General API", () => { assert.strictEqual(await link.getAttribute("href"), HREF_ATTRIBUTE, "The href attribute is changed."); }); + it("tests rel attribute", async () => { + const anchor = await browser.$("#target-blank-link"); + + assert.strictEqual(await anchor.shadow$("a").getAttribute("rel"), "noreferrer noopener", "The rel attribute is properly set."); + }); + it("tests target attributes", async () => { const link = await browser.$("#empty-link-2"); const TARGET_ATTRIBUTE = "_blank";