diff --git a/src/vs/workbench/api/electron-browser/mainThreadWebview.ts b/src/vs/workbench/api/electron-browser/mainThreadWebview.ts index 4b616c0bc6ce0..941021d0ee809 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadWebview.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadWebview.ts @@ -134,11 +134,13 @@ export class MainThreadWebviews implements MainThreadWebviewsShape, WebviewReviv this._webviews.set(handle, webview); webview._events = this.createWebviewEventDelegate(handle); - let state; - try { - state = JSON.parse(webview.state.state); - } catch { - state = {}; + let state = undefined; + if (webview.state.state) { + try { + state = JSON.parse(webview.state.state); + } catch { + // noop + } } return this._proxy.$deserializeWebviewPanel(handle, webview.state.viewType, webview.getTitle(), state, webview.position, webview.options) diff --git a/src/vs/workbench/parts/webview/electron-browser/webviewEditorInputFactory.ts b/src/vs/workbench/parts/webview/electron-browser/webviewEditorInputFactory.ts index 8038b5ba4cfe8..094c71d62a290 100644 --- a/src/vs/workbench/parts/webview/electron-browser/webviewEditorInputFactory.ts +++ b/src/vs/workbench/parts/webview/electron-browser/webviewEditorInputFactory.ts @@ -33,7 +33,7 @@ export class WebviewEditorInputFactory implements IEditorInputFactory { input: WebviewEditorInput ): string { // Has no state, don't revive - if (!input.state || !input.webviewState) { + if (!input.state) { return null; }