расширение vscode iconPath - PullRequest
       6

расширение vscode iconPath

1 голос
/ 13 октября 2019

Я работаю над расширением VSCode, которое использует WebView для отображения дополнительных данных. Я отлично работаю, кроме значка веб-просмотра.

Если ничего не указано, значок:

Default icon

Я читал документацию и заметил, что WebView allow iconPathвариант в следующем формате:

iconPath format

Я попытался добавить значок, используя следующий код:

const onDiskPath = vscode.Uri.file(
    path.join(context.extensionPath, 'resources', 'my-icon.svg')
);

panel.iconPath = panel.webview.asWebviewUri(onDiskPath);

НоЯ получаю сообщение об ошибке:

Отказался загружать изображение 'vscode-resource: // file /// f: /dev/my-extension/resources/my-icon.svg', посколькуон нарушает следующую директиву политики безопасности содержимого: "img-src 'self' https: data: blob: vscode-remote-resource:".

В html веб-просмотра доступна следующая политика содержимого:

<meta http-equiv="Content-Security-Policy" 
        content="default-src 'none'; img-src vscode-resource: https:; script-src 'nonce-${nonce}';">

(я пытался связываться с политиками содержимого, но ничего не изменилось. Появляется та же ошибка)

Есть ли проблема с политикой содержимого или способом перемещения значкагенерируется? (или что-то совсем другое :))

1 Ответ

1 голос
/ 13 октября 2019

Я думаю, вы неправильно понимаете, для чего нужен "URI веб-просмотра" - это для ресурсов, используемых в веб-просмотре. Для iconPath вам нужен обычный URI файла, поэтому он должен быть таким простым:

panel.iconPath = onDiskPath;
...