Fix webview special paths for resources and re-enable test

Fixes #103419
This commit is contained in:
Matt Bierner 2020-07-27 16:37:42 -07:00
parent 9d72fcb0ae
commit 7493065766
3 changed files with 13 additions and 7 deletions

View file

@ -272,12 +272,18 @@ suite('vscode API - webview', () => {
const response = await sendRecieveMessage(webview, { src: imagePath.toString() });
assert.strictEqual(response.value, true);
}
// {
// // #102188. Resource filename containing special characters like '%', '#', '?'.
// const imagePath = webview.webview.asWebviewUri(workspaceFile('image%02.png'));
// const response = await sendRecieveMessage(webview, { src: imagePath.toString() });
// assert.strictEqual(response.value, true);
// }
{
// #102188. Resource filename containing special characters like '%', '#', '?'.
const imagePath = webview.webview.asWebviewUri(workspaceFile('image%02.png'));
const response = await sendRecieveMessage(webview, { src: imagePath.toString() });
assert.strictEqual(response.value, true);
}
{
// #102188. Resource filename containing special characters like '%', '#', '?'.
const imagePath = webview.webview.asWebviewUri(workspaceFile('image%.png'));
const response = await sendRecieveMessage(webview, { src: imagePath.toString() });
assert.strictEqual(response.value, true);
}
{
const imagePath = webview.webview.asWebviewUri(workspaceFile('no-such-image.png'));
const response = await sendRecieveMessage(webview, { src: imagePath.toString() });

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

View file

@ -154,7 +154,7 @@ export class IFrameWebview extends BaseWebview<HTMLIFrameElement> implements Web
authority: extensionLocation.authority,
path: '/vscode-resource',
query: JSON.stringify({
requestResourcePath: uri.path
requestResourcePath: encodeURIComponent(uri.path).replace(/%2F/g, '/').replace(/%25/g, '%')
})
});
}