diff options
author | Frank Borden <frankborden@google.com> | 2022-09-29 17:33:34 +0200 |
---|---|---|
committer | Frank Borden <frankborden@google.com> | 2022-09-29 17:50:00 +0200 |
commit | 3643ae442385ad96c61820514e7bec059bab3ff3 (patch) | |
tree | b4acaf2902dcd886ba0a3b01df2afef3b3b1087c | |
parent | c2d5c1bec371aff30d15d53225001d0c1a75e1b3 (diff) |
Open all links in new tabs in comments and checks
Google-Bug-Id: b/249083604
Release-Notes: skip
Change-Id: I8491cb6b3e4a9f970f04bc30caf82e468bd6da15
-rw-r--r-- | polygerrit-ui/app/elements/shared/gr-formatted-text/gr-formatted-text.ts | 10 | ||||
-rw-r--r-- | polygerrit-ui/app/elements/shared/gr-formatted-text/gr-formatted-text_test.ts | 24 |
2 files changed, 30 insertions, 4 deletions
diff --git a/polygerrit-ui/app/elements/shared/gr-formatted-text/gr-formatted-text.ts b/polygerrit-ui/app/elements/shared/gr-formatted-text/gr-formatted-text.ts index da90b173c5..6ab0ec468e 100644 --- a/polygerrit-ui/app/elements/shared/gr-formatted-text/gr-formatted-text.ts +++ b/polygerrit-ui/app/elements/shared/gr-formatted-text/gr-formatted-text.ts @@ -154,7 +154,17 @@ export class GrFormattedText extends LitElement { // for this. // 4. Rewrite plain text ("text") to apply linking and other config-based // rewrites. Text within code blocks is not passed here. + // 5. Open links in a new tab by rendering with target="_blank" attribute. function customRenderer(renderer: {[type: string]: Function}) { + renderer['link'] = (href: string, title: string, text: string) => + /* HTML */ + `<a + href="${href}" + target="_blank" + ${title ? `title="${title}"` : ''} + rel="noopener" + >${text}</a + >`; renderer['image'] = (href: string, _title: string, text: string) => `![${text}](${href})`; renderer['codespan'] = (text: string) => diff --git a/polygerrit-ui/app/elements/shared/gr-formatted-text/gr-formatted-text_test.ts b/polygerrit-ui/app/elements/shared/gr-formatted-text/gr-formatted-text_test.ts index b405e6b051..6391347896 100644 --- a/polygerrit-ui/app/elements/shared/gr-formatted-text/gr-formatted-text_test.ts +++ b/polygerrit-ui/app/elements/shared/gr-formatted-text/gr-formatted-text_test.ts @@ -332,7 +332,13 @@ suite('gr-formatted-text tests', () => { <div slot="markdown-html"> <p> @ - <a href="mailto:someone@google.com"> someone@google.com </a> + <a + href="mailto:someone@google.com" + rel="noopener" + target="_blank" + > + someone@google.com + </a> </p> </div> </marked-element> @@ -383,7 +389,13 @@ suite('gr-formatted-text tests', () => { <div slot="markdown-html"> <p> <code>@</code> - <a href="mailto:someone@google.com"> someone@google.com </a> + <a + href="mailto:someone@google.com" + rel="noopener" + target="_blank" + > + someone@google.com + </a> </p> </div> </marked-element> @@ -401,7 +413,9 @@ suite('gr-formatted-text tests', () => { <marked-element> <div slot="markdown-html"> <p> - <a href="https://www.google.com">myLink</a> + <a href="https://www.google.com" rel="noopener" target="_blank" + >myLink</a + > </p> </div> </marked-element> @@ -482,7 +496,9 @@ suite('gr-formatted-text tests', () => { <p>block quote ${escapedDiv}</p> </blockquote> <p> - <a href="http://google.com">inline link ${escapedDiv}</a> + <a href="http://google.com" rel="noopener" target="_blank" + >inline link ${escapedDiv}</a + > </p> </div> </marked-element> |