Skip to content

Commit cbab473

Browse files
authored
Disable dragging of links in rendered markdown (#198362)
These links don't work properly. Better to disable them for now instead of allowing invalid drags
1 parent d98713b commit cbab473

2 files changed

Lines changed: 7 additions & 5 deletions

File tree

src/vs/base/browser/markdownRenderer.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import { StandardMouseEvent } from 'vs/base/browser/mouseEvent';
1212
import { renderLabelWithIcons } from 'vs/base/browser/ui/iconLabel/iconLabels';
1313
import { onUnexpectedError } from 'vs/base/common/errors';
1414
import { Event } from 'vs/base/common/event';
15-
import { IMarkdownString, escapeDoubleQuotes, parseHrefAndDimensions, removeMarkdownEscapes, MarkdownStringTrustedOptions } from 'vs/base/common/htmlContent';
15+
import { escapeDoubleQuotes, IMarkdownString, MarkdownStringTrustedOptions, parseHrefAndDimensions, removeMarkdownEscapes } from 'vs/base/common/htmlContent';
1616
import { markdownEscapeEscapedIcons } from 'vs/base/common/iconLabels';
1717
import { defaultGenerator } from 'vs/base/common/idGenerator';
1818
import { KeyCode } from 'vs/base/common/keyCodes';
@@ -80,7 +80,8 @@ const defaultMarkedRenderers = Object.freeze({
8080
.replace(/>/g, '>')
8181
.replace(/"/g, '"')
8282
.replace(/'/g, ''');
83-
return `<a href="${href}" title="${title || href}">${text}</a>`;
83+
84+
return `<a href="${href}" title="${title || href}" draggable="false">${text}</a>`;
8485
},
8586
});
8687

@@ -408,6 +409,7 @@ export const allowedMarkdownAttr = [
408409
'controls',
409410
'data-code',
410411
'data-href',
412+
'draggable',
411413
'height',
412414
'href',
413415
'loop',

src/vs/base/test/browser/markdownRenderer.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ suite('MarkdownRenderer', () => {
166166
mds.appendMarkdown(`[$(zap)-link](#link)`);
167167

168168
const result: HTMLElement = store.add(renderMarkdown(mds)).element;
169-
assert.strictEqual(result.innerHTML, `<p><a data-href="#link" href="" title="#link"><span class="codicon codicon-zap"></span>-link</a></p>`);
169+
assert.strictEqual(result.innerHTML, `<p><a data-href="#link" href="" title="#link" draggable="false"><span class="codicon codicon-zap"></span>-link</a></p>`);
170170
});
171171

172172
test('render icon in table', () => {
@@ -186,7 +186,7 @@ suite('MarkdownRenderer', () => {
186186
</thead>
187187
<tbody><tr>
188188
<td><span class="codicon codicon-zap"></span></td>
189-
<td><a data-href="#link" href="" title="#link"><span class="codicon codicon-zap"></span>-link</a></td>
189+
<td><a data-href="#link" href="" title="#link" draggable="false"><span class="codicon codicon-zap"></span>-link</a></td>
190190
</tr>
191191
</tbody></table>
192192
`);
@@ -253,7 +253,7 @@ suite('MarkdownRenderer', () => {
253253
});
254254

255255
const result: HTMLElement = store.add(renderMarkdown(md)).element;
256-
assert.strictEqual(result.innerHTML, `<p><a data-href="command:doFoo" href="" title="command:doFoo">command1</a> <a data-href="command:doFoo" href="">command2</a></p>`);
256+
assert.strictEqual(result.innerHTML, `<p><a data-href="command:doFoo" href="" title="command:doFoo" draggable="false">command1</a> <a data-href="command:doFoo" href="">command2</a></p>`);
257257
});
258258

259259
suite('PlaintextMarkdownRender', () => {

0 commit comments

Comments
 (0)