Skip to content

Commit a7d103e

Browse files
committed
Fix embed and vscode extensions for safari
1 parent acb1dc7 commit a7d103e

File tree

2 files changed

+26
-10
lines changed

2 files changed

+26
-10
lines changed

packages/app/src/app/vscode/metadata.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ const MONACO_METADATA = {
3232
paths: {
3333
src: '/public/14/vs/language/typescript',
3434
'npm/dev': '../monaco-typescript/release/dev',
35-
'npm/min': '/public/vscode14/vs/language/typescript',
35+
'npm/min': '/public/14/vs/language/typescript',
3636
esm: '../monaco-typescript/release/esm',
3737
},
3838
},
@@ -43,7 +43,7 @@ const MONACO_METADATA = {
4343
paths: {
4444
src: '/public/14/vs/language/css',
4545
'npm/dev': '../monaco-css/release/dev',
46-
'npm/min': '/public/vscode14/vs/language/css',
46+
'npm/min': '/public/14/vs/language/css',
4747
esm: 'node_modules/monaco-css/release/esm',
4848
},
4949
},
@@ -54,7 +54,7 @@ const MONACO_METADATA = {
5454
paths: {
5555
src: '/public/14/vs/language/json',
5656
'npm/dev': 'node_modules/monaco-json/release/dev',
57-
'npm/min': '/public/vscode14/vs/language/json',
57+
'npm/min': '/public/14/vs/language/json',
5858
esm: 'node_modules/monaco-json/release/esm',
5959
},
6060
},
@@ -66,7 +66,7 @@ const MONACO_METADATA = {
6666
paths: {
6767
src: '/public/14/vs/language/html',
6868
'npm/dev': 'node_modules/monaco-html/release/dev',
69-
'npm/min': '/public/vscode14/vs/language/html',
69+
'npm/min': '/public/14/vs/language/html',
7070
esm: 'node_modules/monaco-html/release/esm',
7171
},
7272
},
@@ -78,7 +78,7 @@ const MONACO_METADATA = {
7878
paths: {
7979
src: '/public/14/vs/basic-languages',
8080
'npm/dev': '../monaco-languages/release/dev',
81-
'npm/min': '/public/vscode14/vs/basic-languages',
81+
'npm/min': '/public/14/vs/basic-languages',
8282
esm: 'node_modules/monaco-languages/release/esm',
8383
},
8484
},

packages/node-services/src/child_process.ts

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ import _debug from 'common/lib/utils/debug';
55

66
const debug = _debug('cs:node:child_process');
77

8+
const isSafari =
9+
typeof navigator !== 'undefined' &&
10+
/^((?!chrome|android).)*safari/i.test(navigator.userAgent);
11+
812
let DefaultWorker: false | (() => Worker);
913
let workerMap: Map<string, false | (() => Worker)> = new Map();
1014

@@ -186,6 +190,8 @@ function handleBroadcast(
186190
}
187191
sentBroadcastsForPath.push(data.$id);
188192
if (
193+
// @ts-ignore This check is for the subworker polyfill, if it has an id it's polyfilled by subworkers and indeed a worker
194+
target.id ||
189195
target.constructor.name === 'Worker' ||
190196
// @ts-ignore Unknown to TS
191197
(typeof DedicatedWorkerGlobalScope !== 'undefined' &&
@@ -262,11 +268,21 @@ function fork(path: string, argv?: string[], processOpts?: IProcessOpts) {
262268
data.execArgv = processOpts.execArgv;
263269
}
264270

265-
worker.postMessage({
266-
$type: 'worker-manager',
267-
$event: 'init',
268-
data,
269-
});
271+
if (isSafari) {
272+
setTimeout(() => {
273+
worker.postMessage({
274+
$type: 'worker-manager',
275+
$event: 'init',
276+
data,
277+
});
278+
}, 500);
279+
} else {
280+
worker.postMessage({
281+
$type: 'worker-manager',
282+
$event: 'init',
283+
data,
284+
});
285+
}
270286

271287
return new ChildProcess(worker);
272288
}

0 commit comments

Comments
 (0)