Skip to content

Commit 3b8fd6e

Browse files
authored
remote: fix first half of svg icons not loading (microsoft#185711)
For microsoft#184858 Svg's won't display if their response doesn't have the right content-type. Requires adoption in vscode.dev.
1 parent 2138622 commit 3b8fd6e

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

src/vs/workbench/browser/web.api.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -826,5 +826,5 @@ export interface IRemoteResourceRequest {
826826
/**
827827
* A method called by the editor to issue a response to the request.
828828
*/
829-
respondWith(statusCode: number, body: Uint8Array): void;
829+
respondWith(statusCode: number, body: Uint8Array, headers: Record<string, string>): void;
830830
}

src/vs/workbench/services/remote/browser/browserRemoteResourceHandler.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import { VSBuffer } from 'vs/base/common/buffer';
77
import { Disposable } from 'vs/base/common/lifecycle';
8+
import { getMediaOrTextMime } from 'vs/base/common/mime';
89
import { URI, UriComponents } from 'vs/base/common/uri';
910
import { FileOperationError, FileOperationResult, IFileContent, IFileService } from 'vs/platform/files/common/files';
1011
import { IRemoteResourceProvider, IResourceUriProvider } from 'vs/workbench/browser/web.api';
@@ -21,7 +22,7 @@ export class BrowserRemoteResourceLoader extends Disposable {
2122
try {
2223
uri = JSON.parse(decodeURIComponent(request.uri.query));
2324
} catch {
24-
return request.respondWith(404, new Uint8Array());
25+
return request.respondWith(404, new Uint8Array(), {});
2526
}
2627

2728
let content: IFileContent;
@@ -30,13 +31,14 @@ export class BrowserRemoteResourceLoader extends Disposable {
3031
} catch (e) {
3132
const str = VSBuffer.fromString(e.message).buffer;
3233
if (e instanceof FileOperationError && e.fileOperationResult === FileOperationResult.FILE_NOT_FOUND) {
33-
return request.respondWith(404, str);
34+
return request.respondWith(404, str, {});
3435
} else {
35-
return request.respondWith(500, str);
36+
return request.respondWith(500, str, {});
3637
}
3738
}
3839

39-
request.respondWith(200, content.value.buffer);
40+
const mime = uri.path && getMediaOrTextMime(uri.path);
41+
request.respondWith(200, content.value.buffer, mime ? { 'content-type': mime } : {});
4042
}));
4143
}
4244

0 commit comments

Comments
 (0)