Add Electron IPC APIs for authenticated media
This commit is contained in:
parent
4ffc77dfef
commit
8e03b273ae
2 changed files with 17 additions and 1 deletions
4
src/@types/global.d.ts
vendored
4
src/@types/global.d.ts
vendored
|
@ -33,7 +33,9 @@ type ElectronChannel =
|
||||||
| "update-downloaded"
|
| "update-downloaded"
|
||||||
| "userDownloadCompleted"
|
| "userDownloadCompleted"
|
||||||
| "userDownloadAction"
|
| "userDownloadAction"
|
||||||
| "openDesktopCapturerSourcePicker";
|
| "openDesktopCapturerSourcePicker"
|
||||||
|
| "userAccessToken"
|
||||||
|
| "serverSupportedVersions";
|
||||||
|
|
||||||
declare global {
|
declare global {
|
||||||
interface Window {
|
interface Window {
|
||||||
|
|
|
@ -44,6 +44,7 @@ import { UPDATE_EVENT } from "matrix-react-sdk/src/stores/AsyncStore";
|
||||||
import { avatarUrlForRoom, getInitialLetter } from "matrix-react-sdk/src/Avatar";
|
import { avatarUrlForRoom, getInitialLetter } from "matrix-react-sdk/src/Avatar";
|
||||||
import DesktopCapturerSourcePicker from "matrix-react-sdk/src/components/views/elements/DesktopCapturerSourcePicker";
|
import DesktopCapturerSourcePicker from "matrix-react-sdk/src/components/views/elements/DesktopCapturerSourcePicker";
|
||||||
import { OidcRegistrationClientMetadata } from "matrix-js-sdk/src/matrix";
|
import { OidcRegistrationClientMetadata } from "matrix-js-sdk/src/matrix";
|
||||||
|
import { MatrixClientPeg } from "matrix-react-sdk/src/MatrixClientPeg";
|
||||||
|
|
||||||
import VectorBasePlatform from "./VectorBasePlatform";
|
import VectorBasePlatform from "./VectorBasePlatform";
|
||||||
import { SeshatIndexManager } from "./SeshatIndexManager";
|
import { SeshatIndexManager } from "./SeshatIndexManager";
|
||||||
|
@ -127,6 +128,19 @@ export default class ElectronPlatform extends VectorBasePlatform {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// `userAccessToken` (IPC) is requested by the main process when appending authentication
|
||||||
|
// to media downloads. A reply is sent over the same channel.
|
||||||
|
window.electron.on("userAccessToken", () => {
|
||||||
|
window.electron!.send("userAccessToken", MatrixClientPeg.get()?.getAccessToken());
|
||||||
|
});
|
||||||
|
|
||||||
|
// `serverSupportedVersions` is requested by the main process when it needs to know if the
|
||||||
|
// server supports a particular version. This is primarily used to detect authenticated media
|
||||||
|
// support. A reply is sent over the same channel.
|
||||||
|
window.electron.on("serverSupportedVersions", async () => {
|
||||||
|
window.electron!.send("serverSupportedVersions", await MatrixClientPeg.get()?.getVersions());
|
||||||
|
});
|
||||||
|
|
||||||
// try to flush the rageshake logs to indexeddb before quit.
|
// try to flush the rageshake logs to indexeddb before quit.
|
||||||
window.electron.on("before-quit", function () {
|
window.electron.on("before-quit", function () {
|
||||||
logger.log("element-desktop closing");
|
logger.log("element-desktop closing");
|
||||||
|
|
Loading…
Reference in a new issue