From 302cbc143fb34ceaa50d6e15f6277905f26ae60e Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Mon, 14 May 2018 11:06:05 -0700 Subject: [PATCH] Don't try to revive webviews without a reviver --- .../api/electron-browser/mainThreadWebview.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/vs/workbench/api/electron-browser/mainThreadWebview.ts b/src/vs/workbench/api/electron-browser/mainThreadWebview.ts index 083077eab9e..9950a9e6c3b 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadWebview.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadWebview.ts @@ -134,7 +134,14 @@ export class MainThreadWebviews implements MainThreadWebviewsShape, WebviewReviv this._webviews.set(handle, webview); webview._events = this.createWebviewEventDelegate(handle); - return this._proxy.$deserializeWebviewPanel(handle, webview.state.viewType, webview.getTitle(), JSON.parse(webview.state.state), webview.position, webview.options) + let state; + try { + state = JSON.parse(webview.state.state); + } catch { + state = {}; + } + + return this._proxy.$deserializeWebviewPanel(handle, webview.state.viewType, webview.getTitle(), state, webview.position, webview.options) .then(undefined, () => { webview.html = MainThreadWebviews.getDeserializationFailedContents(viewType); }); @@ -146,7 +153,7 @@ export class MainThreadWebviews implements MainThreadWebviewsShape, WebviewReviv return false; } - return this._revivers.has(webview.viewType) || webview.reviver !== null; + return (this._revivers.has(webview.viewType) || webview.reviver !== null) && webview.state.state; } private _onWillShutdown(): TPromise { -- GitLab