Use isolated IPC API

This adjusts to match changes on the desktop side where we now use Electron's
context isolation feature to expose only the IPC channels and methods we
actually expect to use.
This commit is contained in:
J. Ryan Stinnett 2021-01-13 15:39:18 +00:00
parent 66080b5751
commit 58eca1aa7d
3 changed files with 40 additions and 22 deletions

View file

@ -1,5 +1,5 @@
/*
Copyright 2020 New Vector Ltd
Copyright 2020, 2021 New Vector Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@ -17,13 +17,32 @@ limitations under the License.
import "matrix-react-sdk/src/@types/global"; // load matrix-react-sdk's type extensions first
import type {Renderer} from "react-dom";
type ElectronChannel =
"app_onAction" |
"before-quit" |
"check_updates" |
"install_update" |
"ipcCall" |
"ipcReply" |
"loudNotification" |
"preferences" |
"seshat" |
"seshatReply" |
"setBadgeCount" |
"update-downloaded" |
"userDownloadCompleted" |
"userDownloadOpen";
declare global {
interface Window {
mxSendRageshake: (text: string, withLogs?: boolean) => void;
matrixChat: ReturnType<Renderer>;
// electron-only
ipcRenderer: any;
electron: {
on(channel: ElectronChannel, listener: (event: Event, ...args: any[]) => void): void;
send(channel: ElectronChannel, ...args: any[]): void;
}
// opera-only
opera: any;