/* * Copyright (C) 2021-2022 Kristóf Marussy * * This file is part of Sophie. * * Sophie is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . * * SPDX-License-Identifier: AGPL-3.0-only */ import { ipcRenderer, webFrame } from 'electron'; import { ServiceToMainIpcMessage, webSource } from '@sophie/service-shared'; if (webFrame.parent === null) { // Inject CSS to simulate `browserView.setBackgroundColor`. // This is injected before the page loads, so the styles from the website will overwrite it. webFrame.insertCSS('html { background-color: #fff; }'); } const injectSource = webSource.safeParse(ipcRenderer.sendSync(ServiceToMainIpcMessage.ApiExposedInMainWorld)); if (injectSource.success) { webFrame.executeJavaScriptInIsolatedWorld(0, [ injectSource.data, ]).catch((err) => { console.log('Failed to inject source:', err); }); } else { console.log('Invalid source to inject:', injectSource.error); }