@lvce-editor/renderer-process 8.5.0 → 8.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1051,7 +1051,7 @@ const state$9 = {
1051
1051
  */
1052
1052
  ipc: undefined
1053
1053
  };
1054
- const hydrate$1 = async () => {
1054
+ const hydrate$4 = async () => {
1055
1055
  const ipc = await launchRendererWorker();
1056
1056
  handleIpc(ipc);
1057
1057
  // @ts-expect-error
@@ -1083,7 +1083,7 @@ const invokeAndTransfer = (method, ...params) => {
1083
1083
  const RendererWorker = {
1084
1084
  __proto__: null,
1085
1085
  dispose: dispose$j,
1086
- hydrate: hydrate$1,
1086
+ hydrate: hydrate$4,
1087
1087
  invoke: invoke$1,
1088
1088
  invokeAndTransfer,
1089
1089
  send,
@@ -1454,6 +1454,64 @@ const handleUnhandledError = (message, filename, lineno, colno, error) => {
1454
1454
  handleError$8(error, Boolean(error), '[renderer-process] Unhandled Error: ');
1455
1455
  };
1456
1456
 
1457
+ const editorWorkerUrl = `${assetDir}/packages/renderer-worker/node_modules/@lvce-editor/editor-worker/dist/editorWorkerMain.js`;
1458
+
1459
+ const launchEditorWorker = async () => {
1460
+ return launchWorker({
1461
+ name: 'Editor Worker',
1462
+ url: editorWorkerUrl
1463
+ });
1464
+ };
1465
+
1466
+ const hydrate$3 = async () => {
1467
+ // TODO only launch port and send to renderer worker
1468
+ await launchEditorWorker();
1469
+ };
1470
+
1471
+ const extensionHostWorkerUrl = `${assetDir}/packages/extension-host-worker/src/extensionHostWorkerMain.ts`;
1472
+
1473
+ const launchExtensionHostWorker = async () => {
1474
+ return launchWorker({
1475
+ name: 'Extension Host Worker',
1476
+ url: extensionHostWorkerUrl
1477
+ });
1478
+ };
1479
+
1480
+ const hydrate$2 = async () => {
1481
+ // TODO only launch port and send to renderer worker
1482
+ await launchExtensionHostWorker();
1483
+ };
1484
+
1485
+ const hasFlag = key => {
1486
+ if (typeof location === 'undefined') {
1487
+ return false;
1488
+ }
1489
+ const params = new URLSearchParams(location.search);
1490
+ return params.has(key);
1491
+ };
1492
+
1493
+ const syntaxHighlightingWorkerUrl = `${assetDir}/packages/renderer-worker/node_modules/@lvce-editor/syntax-highlighting-worker/dist/syntaxHighlightingWorkerMain.js`;
1494
+
1495
+ const launchSyntaxHighlightingWorker = async () => {
1496
+ return launchWorker({
1497
+ name: 'Syntax Highlighting Worker',
1498
+ url: syntaxHighlightingWorkerUrl
1499
+ });
1500
+ };
1501
+
1502
+ const hydrate$1 = async () => {
1503
+ // TODO only launch port and send to renderer worker
1504
+ await launchSyntaxHighlightingWorker();
1505
+ };
1506
+
1507
+ const launchMultipleWorkers = hasFlag('prelaunchWorkers');
1508
+ const launchWorkers = () => {
1509
+ if (launchMultipleWorkers) {
1510
+ return Promise.all([hydrate$4(), hydrate$3(), hydrate$1(), hydrate$2()]);
1511
+ }
1512
+ return hydrate$4();
1513
+ };
1514
+
1457
1515
  const Alert = 'alert';
1458
1516
  const Application = 'application';
1459
1517
  const Code = 'code';
@@ -2509,7 +2567,7 @@ const main = async () => {
2509
2567
  window.onbeforeinstallprompt = handleBeforeInstallPrompt;
2510
2568
  }
2511
2569
  // TODO this is discovered very late
2512
- await hydrate$1();
2570
+ await launchWorkers();
2513
2571
  setIpc(RendererWorker);
2514
2572
  };
2515
2573
 
@@ -11172,14 +11230,36 @@ const ViewletWebViewEvents = {
11172
11230
  returnValue
11173
11231
  };
11174
11232
 
11233
+ const setIframeCredentialless = ($Iframe, credentialless) => {
11234
+ if (credentialless) {
11235
+ // @ts-ignore
11236
+ $Iframe.credentialless = credentialless;
11237
+ }
11238
+ };
11239
+
11240
+ const setIframeCsp = ($Iframe, csp) => {
11241
+ if (csp) {
11242
+ // @ts-ignore
11243
+ $Iframe.csp = csp;
11244
+ }
11245
+ };
11246
+
11175
11247
  const setIframeSandBox = ($Iframe, sandbox) => {
11176
11248
  for (const element of sandbox) {
11177
11249
  $Iframe.sandbox.add(element);
11178
11250
  }
11179
11251
  };
11180
11252
 
11253
+ const setIframeSrc = ($Iframe, src, srcDoc) => {
11254
+ if (src) {
11255
+ $Iframe.src = src;
11256
+ } else if (srcDoc) {
11257
+ $Iframe.srcdoc = srcDoc;
11258
+ }
11259
+ };
11260
+
11181
11261
  // TODO could use browser view when running in electron
11182
- const setIframe = (state, src, sandbox = [], srcDoc = '', csp = '') => {
11262
+ const setIframe = (state, src, sandbox = [], srcDoc = '', csp = '', credentialless = true) => {
11183
11263
  if (!src && !srcDoc) {
11184
11264
  return;
11185
11265
  }
@@ -11191,17 +11271,11 @@ const setIframe = (state, src, sandbox = [], srcDoc = '', csp = '') => {
11191
11271
  throw new Error('webview wrapper not found');
11192
11272
  }
11193
11273
  const $Iframe = document.createElement('iframe');
11194
- if (csp) {
11195
- // @ts-ignore
11196
- $Iframe.csp = csp;
11197
- }
11274
+ setIframeCredentialless($Iframe, credentialless);
11275
+ setIframeCsp($Iframe, csp);
11198
11276
  setIframeSandBox($Iframe, sandbox);
11277
+ setIframeSrc($Iframe, src, srcDoc);
11199
11278
  $Iframe.className = 'E2eTestIframe WebViewIframe';
11200
- if (src) {
11201
- $Iframe.src = src;
11202
- } else if (srcDoc) {
11203
- $Iframe.srcdoc = srcDoc;
11204
- }
11205
11279
  $Parent.append($Iframe);
11206
11280
  state.frame = $Iframe;
11207
11281
  set$1(1, $Iframe);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/renderer-process",
3
- "version": "8.5.0",
3
+ "version": "8.7.0",
4
4
  "description": "",
5
5
  "main": "dist/diffWorkerMain.js",
6
6
  "type": "module",