diff --git a/polygerrit-ui/app/elements/shared/gr-dropdown/gr-dropdown.js b/polygerrit-ui/app/elements/shared/gr-dropdown/gr-dropdown.js index dcb428f28b..3d9d36b34b 100644 --- a/polygerrit-ui/app/elements/shared/gr-dropdown/gr-dropdown.js +++ b/polygerrit-ui/app/elements/shared/gr-dropdown/gr-dropdown.js @@ -229,7 +229,7 @@ if (typeof link.url === 'undefined') { return ''; } - if (link.target) { + if (link.target || !link.url.startsWith('/')) { return link.url; } return this._computeRelativeURL(link.url); diff --git a/polygerrit-ui/app/elements/shared/gr-dropdown/gr-dropdown_test.html b/polygerrit-ui/app/elements/shared/gr-dropdown/gr-dropdown_test.html index 456f235290..7bb4dce5fe 100644 --- a/polygerrit-ui/app/elements/shared/gr-dropdown/gr-dropdown_test.html +++ b/polygerrit-ui/app/elements/shared/gr-dropdown/gr-dropdown_test.html @@ -72,6 +72,12 @@ limitations under the License. }); test('link URLs', () => { + assert.equal( + element._computeLinkURL({url: 'http://example.com/test'}), + 'http://example.com/test'); + assert.equal( + element._computeLinkURL({url: 'https://example.com/test'}), + 'https://example.com/test'); assert.equal( element._computeLinkURL({url: '/test'}), '//' + window.location.host + '/test');