Skip to content

Commit 302cbc1

Browse files
committed
Don't try to revive webviews without a reviver
1 parent 21ee81c commit 302cbc1

1 file changed

Lines changed: 9 additions & 2 deletions

File tree

src/vs/workbench/api/electron-browser/mainThreadWebview.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,14 @@ export class MainThreadWebviews implements MainThreadWebviewsShape, WebviewReviv
134134
this._webviews.set(handle, webview);
135135
webview._events = this.createWebviewEventDelegate(handle);
136136

137-
return this._proxy.$deserializeWebviewPanel(handle, webview.state.viewType, webview.getTitle(), JSON.parse(webview.state.state), webview.position, webview.options)
137+
let state;
138+
try {
139+
state = JSON.parse(webview.state.state);
140+
} catch {
141+
state = {};
142+
}
143+
144+
return this._proxy.$deserializeWebviewPanel(handle, webview.state.viewType, webview.getTitle(), state, webview.position, webview.options)
138145
.then(undefined, () => {
139146
webview.html = MainThreadWebviews.getDeserializationFailedContents(viewType);
140147
});
@@ -146,7 +153,7 @@ export class MainThreadWebviews implements MainThreadWebviewsShape, WebviewReviv
146153
return false;
147154
}
148155

149-
return this._revivers.has(webview.viewType) || webview.reviver !== null;
156+
return (this._revivers.has(webview.viewType) || webview.reviver !== null) && webview.state.state;
150157
}
151158

152159
private _onWillShutdown(): TPromise<boolean> {

0 commit comments

Comments
 (0)