提交 11c45172 编写于 作者: M Matt Bierner

Fix potential race detecting image load

上级 7aff0c42
...@@ -58,7 +58,8 @@ ...@@ -58,7 +58,8 @@
20 20
]; ];
const isMac = getSettings().isMac; const settings = getSettings();
const isMac = settings.isMac;
const vscode = acquireVsCodeApi(); const vscode = acquireVsCodeApi();
...@@ -71,7 +72,7 @@ ...@@ -71,7 +72,7 @@
// Elements // Elements
const container = /** @type {HTMLElement} */(document.querySelector('body')); const container = /** @type {HTMLElement} */(document.querySelector('body'));
const image = document.querySelector('img'); const image = document.createElement('img');
function updateScale(newScale) { function updateScale(newScale) {
if (!image || !image.parentElement) { if (!image || !image.parentElement) {
...@@ -248,6 +249,9 @@ ...@@ -248,6 +249,9 @@
} }
}); });
image.src = decodeURI(settings.src);
document.body.append(image);
window.addEventListener('message', e => { window.addEventListener('message', e => {
switch (e.data.type) { switch (e.data.type) {
case 'setScale': case 'setScale':
......
...@@ -80,7 +80,8 @@ export class Preview extends Disposable { ...@@ -80,7 +80,8 @@ export class Preview extends Disposable {
private getWebiewContents(webviewEditor: vscode.WebviewEditor, resource: vscode.Uri): string { private getWebiewContents(webviewEditor: vscode.WebviewEditor, resource: vscode.Uri): string {
const settings = { const settings = {
isMac: process.platform === 'darwin' isMac: process.platform === 'darwin',
src: encodeURI(webviewEditor.webview.asWebviewUri(resource).toString(true))
}; };
return /* html */`<!DOCTYPE html> return /* html */`<!DOCTYPE html>
...@@ -95,7 +96,6 @@ export class Preview extends Disposable { ...@@ -95,7 +96,6 @@ export class Preview extends Disposable {
<meta id="image-preview-settings" data-settings="${escapeAttribute(JSON.stringify(settings))}"> <meta id="image-preview-settings" data-settings="${escapeAttribute(JSON.stringify(settings))}">
</head> </head>
<body class="container image scale-to-fit"> <body class="container image scale-to-fit">
<img src="${escapeAttribute(webviewEditor.webview.asWebviewUri(resource))}">
<script src="${escapeAttribute(this.extensionResource('/media/main.js'))}"></script> <script src="${escapeAttribute(this.extensionResource('/media/main.js'))}"></script>
</body> </body>
</html>`; </html>`;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册