@lvce-editor/extension-host-worker 1.7.0 → 1.9.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.
|
@@ -2082,6 +2082,9 @@ const getWebView = id => {
|
|
|
2082
2082
|
const setWebView = (id, webView) => {
|
|
2083
2083
|
webViews[id] = webView;
|
|
2084
2084
|
};
|
|
2085
|
+
const getWebViews = () => {
|
|
2086
|
+
return webViews;
|
|
2087
|
+
};
|
|
2085
2088
|
|
|
2086
2089
|
// TODO if webViewId is provided,
|
|
2087
2090
|
// 1. read file as blob
|
|
@@ -2198,9 +2201,9 @@ const createWebView = async (providerId, port, uri, uid, origin) => {
|
|
|
2198
2201
|
// TODO allow creating multiple webviews per provider
|
|
2199
2202
|
setWebView(providerId, rpc);
|
|
2200
2203
|
};
|
|
2201
|
-
const load = async providerId => {
|
|
2204
|
+
const load = async (providerId, savedState) => {
|
|
2202
2205
|
const rpc = getWebView(providerId);
|
|
2203
|
-
await rpc.provider.create(rpc, rpc.uri);
|
|
2206
|
+
await rpc.provider.create(rpc, rpc.uri, savedState);
|
|
2204
2207
|
};
|
|
2205
2208
|
const disposeWebView = id => {
|
|
2206
2209
|
// TODO race condition
|
|
@@ -3385,11 +3388,33 @@ const handleMessagePort = port => {
|
|
|
3385
3388
|
ipc.send('ready');
|
|
3386
3389
|
};
|
|
3387
3390
|
|
|
3388
|
-
const
|
|
3389
|
-
|
|
3390
|
-
|
|
3391
|
-
|
|
3392
|
-
|
|
3391
|
+
const serializeWebView = async webView => {
|
|
3392
|
+
if (webView && webView.provider && webView.provider.saveState) {
|
|
3393
|
+
const saved = await webView.provider.saveState();
|
|
3394
|
+
return {
|
|
3395
|
+
uri: webView.uri,
|
|
3396
|
+
state: saved
|
|
3397
|
+
};
|
|
3398
|
+
}
|
|
3399
|
+
return undefined;
|
|
3400
|
+
};
|
|
3401
|
+
const serializeWebViews = async webViews => {
|
|
3402
|
+
const serialized = [];
|
|
3403
|
+
for (const [key, value] of Object.entries(webViews)) {
|
|
3404
|
+
const serializedValue = await serializeWebView(value);
|
|
3405
|
+
if (serializedValue) {
|
|
3406
|
+
serialized.push({
|
|
3407
|
+
key,
|
|
3408
|
+
value: serializedValue
|
|
3409
|
+
});
|
|
3410
|
+
}
|
|
3411
|
+
}
|
|
3412
|
+
return serialized;
|
|
3413
|
+
};
|
|
3414
|
+
const saveState = async () => {
|
|
3415
|
+
const webViews = getWebViews();
|
|
3416
|
+
const serialized = await serializeWebViews(webViews);
|
|
3417
|
+
return serialized;
|
|
3393
3418
|
};
|
|
3394
3419
|
|
|
3395
3420
|
const commandMap = {
|
package/package.json
CHANGED