Skip to content

Commit d223a75

Browse files
authored
Merge pull request #616 from CodinGame/fix-webviews
Move webview html next to service worker
2 parents 54def9a + d8744ce commit d223a75

File tree

3 files changed

+23
-14
lines changed

3 files changed

+23
-14
lines changed

src/assets/webview/index.html renamed to src/override/vs/workbench/contrib/webview/browser/pre/index.html

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<meta charset="UTF-8">
66

77
<meta http-equiv="Content-Security-Policy"
8-
content="default-src 'none'; script-src 'sha256-arx+BFQ6Ai8KfBjyq5yCRLgjx4ziWirnD8/yRHgGrVc=' 'self'; frame-src 'self'; style-src 'unsafe-inline';">
8+
content="default-src 'none'; script-src 'sha256-pTZgf/zU+f1azdy9x9B5BfoQYdrPJWvIfvvlF2+dasY=' 'self'; frame-src 'self'; style-src 'unsafe-inline';">
99

1010
<!-- Disable pinch zooming -->
1111
<meta name="viewport"
@@ -771,13 +771,27 @@
771771

772772

773773
function handleInnerDragEvent(/** @type {DragEvent} */ e) {
774+
/**
775+
* To ensure that the drop event always fires as expected, you should always include a preventDefault() call in the part of your code which handles the dragover event.
776+
* source: https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/drop_event
777+
**/
778+
e.preventDefault();
779+
774780
if (!e.dataTransfer) {
775781
return;
776782
}
777783

778-
hostMessaging.postMessage('drag', {
779-
shiftKey: e.shiftKey
780-
});
784+
785+
// Only handle drags from outside editor for now
786+
if (e.dataTransfer.items.length && Array.prototype.every.call(e.dataTransfer.items, item => item.kind === 'file')) {
787+
hostMessaging.postMessage('drag', {
788+
shiftKey: e.shiftKey
789+
});
790+
}
791+
}
792+
793+
function handleInnerDropEvent(/**@type {DragEvent} */e) {
794+
e.preventDefault();
781795
}
782796

783797
/**
@@ -872,6 +886,7 @@
872886
window.addEventListener('dragenter', handleInnerDragStartEvent);
873887
window.addEventListener('dragover', handleInnerDragEvent);
874888
window.addEventListener('drag', handleInnerDragEvent);
889+
window.addEventListener('drop', handleInnerDropEvent);
875890

876891
onDomReady(() => {
877892
if (!document.body) {

src/service-override/viewCommon.ts

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -74,28 +74,22 @@ let webviewIframeAlternateDomains: string | undefined
7474
registerAssets({
7575
'vs/workbench/contrib/webview/browser/pre/service-worker.js': () =>
7676
changeUrlDomain(
77-
new URL(
78-
'../../vscode/src/vs/workbench/contrib/webview/browser/pre/service-worker.js',
79-
import.meta.url
80-
).href,
77+
new URL('vs/workbench/contrib/webview/browser/pre/service-worker.js', import.meta.url).href,
8178
webviewIframeAlternateDomains
8279
),
8380
'vs/workbench/contrib/webview/browser/pre/index.html': () =>
8481
changeUrlDomain(
85-
new URL('../assets/webview/index.html', import.meta.url).href,
82+
new URL('vs/workbench/contrib/webview/browser/pre/index.html', import.meta.url).href,
8683
webviewIframeAlternateDomains
8784
),
8885
'vs/workbench/contrib/webview/browser/pre/index-no-csp.html': () =>
8986
changeUrlDomain(
90-
new URL('../assets/webview/index-no-csp.html', import.meta.url).href,
87+
new URL('vs/workbench/contrib/webview/browser/pre/index-no-csp.html', import.meta.url).href,
9188
webviewIframeAlternateDomains
9289
),
9390
'vs/workbench/contrib/webview/browser/pre/fake.html': () =>
9491
changeUrlDomain(
95-
new URL(
96-
'../../vscode/src/vs/workbench/contrib/webview/browser/pre/fake.html',
97-
import.meta.url
98-
).href,
92+
new URL('vs/workbench/contrib/webview/browser/pre/fake.html', import.meta.url).href,
9993
webviewIframeAlternateDomains
10094
)
10195
})

0 commit comments

Comments
 (0)