Skip to content

Commit d33b2d2

Browse files
committed
Fix web view sometimes not loading correctly
Fixes #929.
1 parent 830ccfe commit d33b2d2

File tree

2 files changed

+12
-16
lines changed

2 files changed

+12
-16
lines changed

scripts/vscode.patch

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1109,20 +1109,20 @@ index 0d2d53003b..03489411bb 100644
11091109
group: '5_update',
11101110
command: {
11111111
diff --git a/src/vs/workbench/contrib/webview/browser/pre/index.html b/src/vs/workbench/contrib/webview/browser/pre/index.html
1112-
index ac53ce590e..69dbbd859c 100644
1112+
index ac53ce590e..5411601483 100644
11131113
--- a/src/vs/workbench/contrib/webview/browser/pre/index.html
11141114
+++ b/src/vs/workbench/contrib/webview/browser/pre/index.html
11151115
@@ -4,7 +4,7 @@
11161116
<head>
11171117
<meta charset="UTF-8">
11181118
<meta http-equiv="Content-Security-Policy"
11191119
- content="default-src 'none'; script-src 'self'; frame-src 'self'; style-src 'unsafe-inline'; worker-src 'self';" />
1120-
+ content="default-src 'none'; script-src 'self' 'unsafe-inline'; frame-src 'self'; style-src 'self' 'unsafe-inline'; worker-src 'self'; img-src https: data:; font-src 'self';" />
1120+
+ content="default-src 'none'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; frame-src 'self'; style-src 'self' 'unsafe-inline'; worker-src 'self'; img-src https: data:; font-src 'self';" />
11211121

11221122
<meta name="viewport" content="width=device-width, initial-scale=1.0">
11231123
<meta http-equiv="X-UA-Compatible" content="ie=edge">
11241124
diff --git a/src/vs/workbench/contrib/webview/browser/pre/main.js b/src/vs/workbench/contrib/webview/browser/pre/main.js
1125-
index 63585fc25c..f49b63e024 100644
1125+
index 63585fc25c..16102b89f1 100644
11261126
--- a/src/vs/workbench/contrib/webview/browser/pre/main.js
11271127
+++ b/src/vs/workbench/contrib/webview/browser/pre/main.js
11281128
@@ -256,7 +256,7 @@
@@ -1134,19 +1134,15 @@ index 63585fc25c..f49b63e024 100644
11341134
const newDocument = new DOMParser().parseFromString(text, 'text/html');
11351135

11361136
newDocument.querySelectorAll('a').forEach(a => {
1137-
@@ -265,6 +265,12 @@
1138-
}
1139-
});
1137+
@@ -379,7 +379,7 @@
11401138

1141-
+ // REVIEW: Why is it required for scripts to be loaded at the end?
1142-
+ // Without this the document in the iframe appears to simply truncate.
1143-
+ newDocument.querySelectorAll('script').forEach(script => {
1144-
+ newDocument.body.appendChild(script);
1145-
+ });
1146-
+
1147-
// apply default script
1148-
if (options.allowScripts) {
1149-
const defaultScript = newDocument.createElement('script');
1139+
newFrame.contentWindow.addEventListener('keydown', handleInnerKeydown);
1140+
1141+
- newFrame.contentWindow.addEventListener('DOMContentLoaded', e => {
1142+
+ newFrame.contentWindow.addEventListener('load', e => {
1143+
if (host.fakeLoad) {
1144+
newFrame.contentDocument.open();
1145+
newFrame.contentDocument.write(newDocument);
11501146
diff --git a/src/vs/workbench/contrib/welcome/walkThrough/browser/editor/editorWalkThrough.ts b/src/vs/workbench/contrib/welcome/walkThrough/browser/editor/editorWalkThrough.ts
11511147
index 7a95ffda9e..fdb14da4ee 100644
11521148
--- a/src/vs/workbench/contrib/welcome/walkThrough/browser/editor/editorWalkThrough.ts

src/util.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ export const getMediaMime = (filePath?: string): string => {
6666
return filePath && (vsGetMediaMime(filePath) || (<{[index: string]: string}>{
6767
".css": "text/css",
6868
".html": "text/html",
69-
".js": "text/javascript",
69+
".js": "application/javascript",
7070
".json": "application/json",
7171
})[extname(filePath)]) || "text/plain";
7272
};

0 commit comments

Comments
 (0)