Skip to content
This repository has been archived by the owner on Sep 11, 2024. It is now read-only.

Fetch homeUrl from .well-known #7790

Merged
merged 6 commits into from
May 30, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions src/utils/WellKnownUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ const E2EE_WK_KEY = "io.element.e2ee";
const E2EE_WK_KEY_DEPRECATED = "im.vector.riot.e2ee";
export const TILE_SERVER_WK_KEY = new UnstableValue(
"m.tile_server", "org.matrix.msc3488.tile_server");
const EMBEDDED_PAGES_WK_PROPERTY = "io.element.embedded_pages";

/* eslint-disable camelcase */
export interface ICallBehaviourWellKnown {
Expand All @@ -39,6 +40,10 @@ export interface IE2EEWellKnown {
export interface ITileServerWellKnown {
map_style_url?: string;
}

export interface IEmbeddedPagesWellKnown {
home_url?: string;
}
/* eslint-enable camelcase */

export function getCallBehaviourWellKnown(): ICallBehaviourWellKnown {
Expand Down Expand Up @@ -70,6 +75,16 @@ export function tileServerFromWellKnown(
);
}

export function getEmbeddedPagesWellKnown(): IEmbeddedPagesWellKnown | undefined {
return embeddedPagesFromWellKnown(MatrixClientPeg.get()?.getClientWellKnown());
}

export function embeddedPagesFromWellKnown(
clientWellKnown?: IClientWellKnown,
): IEmbeddedPagesWellKnown {
return (clientWellKnown?.[EMBEDDED_PAGES_WK_PROPERTY]);
}

export function isSecureBackupRequired(): boolean {
const wellKnown = getE2EEWellKnown();
return wellKnown && wellKnown["secure_backup_required"] === true;
Expand Down
5 changes: 5 additions & 0 deletions src/utils/pages.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ limitations under the License.
import { logger } from "matrix-js-sdk/src/logger";

import { IConfigOptions } from "../IConfigOptions";
import { getEmbeddedPagesWellKnown } from '../utils/WellKnownUtils';
import { SnakedObject } from "./SnakedObject";

export function getHomePageUrl(appConfig: IConfigOptions): string | null {
Expand All @@ -38,6 +39,10 @@ export function getHomePageUrl(appConfig: IConfigOptions): string | null {
}
}

if (!pageUrl) {
pageUrl = getEmbeddedPagesWellKnown()?.home_url;
}

return pageUrl;
}

Expand Down