提交 57e678e4 编写于 作者: R Raymond Zhao

Fix #97564

上级 5f6acfb6
...@@ -424,11 +424,11 @@ export class CodeWindow extends Disposable implements ICodeWindow { ...@@ -424,11 +424,11 @@ export class CodeWindow extends Disposable implements ICodeWindow {
this.dispose(); this.dispose();
}); });
// Prevent loading of svgs // Prevent loading of remote svgs
this._win.webContents.session.webRequest.onBeforeRequest(null!, (details, callback) => { this._win.webContents.session.webRequest.onBeforeRequest((details, callback) => {
if (details.url.indexOf('.svg') > 0) { if (details.url.endsWith('.svg')) {
const uri = URI.parse(details.url); const uri = URI.parse(details.url);
if (uri && !uri.scheme.match(/file/i) && uri.path.endsWith('.svg')) { if (uri && uri.scheme.toLowerCase() !== 'file') {
return callback({ cancel: true }); return callback({ cancel: true });
} }
} }
...@@ -436,12 +436,24 @@ export class CodeWindow extends Disposable implements ICodeWindow { ...@@ -436,12 +436,24 @@ export class CodeWindow extends Disposable implements ICodeWindow {
return callback({}); return callback({});
}); });
this._win.webContents.session.webRequest.onHeadersReceived(null!, (details, callback) => { this._win.webContents.session.webRequest.onHeadersReceived((details, callback) => {
const responseHeaders = details.responseHeaders as Record<string, (string) | (string[])>; const responseHeaders = details.responseHeaders as Record<string, (string) | (string[])>;
const contentType = (responseHeaders['content-type'] || responseHeaders['Content-Type']); const contentType = (responseHeaders['content-type'] || responseHeaders['Content-Type']);
if (contentType && Array.isArray(contentType) && contentType.some(x => x.toLowerCase().indexOf('image/svg') >= 0)) {
return callback({ cancel: true }); if (contentType && Array.isArray(contentType)) {
// https://github.com/microsoft/vscode/issues/97564
// ensure local svg files have Content-Type image/svg+xml
if (details.url.endsWith('.svg')) {
const uri = URI.parse(details.url);
if (uri && uri.scheme.toLowerCase() === 'file') {
responseHeaders['Content-Type'] = ['image/svg+xml'];
return callback({ cancel: false, responseHeaders });
}
}
if (contentType.some(x => x.toLowerCase().includes('image/svg'))) {
return callback({ cancel: true });
}
} }
return callback({ cancel: false }); return callback({ cancel: false });
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册