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

Commit

Permalink
Fetch homeUrl from .well-known (#7790)
Browse files Browse the repository at this point in the history
* Fetch homeUrl from .well-known

* homeUrl: prefer config.json over .well-known

* homeUrl: prefer deprecated config.json variant over .well-known

* Apply suggestions from code review

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>

Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
Co-authored-by: Travis Ralston <travisr@matrix.org>
  • Loading branch information
3 people committed May 30, 2022
1 parent e87ef3b commit b776cc8
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 0 deletions.
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

0 comments on commit b776cc8

Please sign in to comment.