Workaround crash that can happen in Electron/Chromium

Part of microsoft/vscode#189753
This commit is contained in:
Daniel Imms
2023-08-15 06:46:35 -07:00
parent c908eeed5c
commit 2ca0ccbe0c
2 changed files with 10 additions and 4 deletions
+9 -4
View File
@@ -3,6 +3,8 @@
* @license MIT
*/
import { isElectron } from 'common/Platform';
export interface IStyleSheet {
dispose: () => void;
setCss: (value: string) => void;
@@ -37,9 +39,12 @@ const createStyleElement = (parent: HTMLElement): IStyleSheet => {
};
export const createStyle = (parent: HTMLElement): IStyleSheet => {
try {
return createCssStyleSheet(parent.ownerDocument);
} catch {
return createStyleElement(parent);
// The combination of the CSP workaround and the DOM renderer can trigger a crash in electron
// https://github.com/microsoft/vscode/issues/189753
if (!isElectron) {
try {
return createCssStyleSheet(parent.ownerDocument);
} catch { /* Fall through */ }
}
return createStyleElement(parent);
};