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

Commit b776cc8

Browse files
johannes-krudet3chguyturt2live
authored
Fetch homeUrl from .well-known (#7790)
* 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 <[email protected]> Co-authored-by: Michael Telatynski <[email protected]> Co-authored-by: Travis Ralston <[email protected]>
1 parent e87ef3b commit b776cc8

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

src/utils/WellKnownUtils.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ const E2EE_WK_KEY = "io.element.e2ee";
2424
const E2EE_WK_KEY_DEPRECATED = "im.vector.riot.e2ee";
2525
export const TILE_SERVER_WK_KEY = new UnstableValue(
2626
"m.tile_server", "org.matrix.msc3488.tile_server");
27+
const EMBEDDED_PAGES_WK_PROPERTY = "io.element.embedded_pages";
2728

2829
/* eslint-disable camelcase */
2930
export interface ICallBehaviourWellKnown {
@@ -39,6 +40,10 @@ export interface IE2EEWellKnown {
3940
export interface ITileServerWellKnown {
4041
map_style_url?: string;
4142
}
43+
44+
export interface IEmbeddedPagesWellKnown {
45+
home_url?: string;
46+
}
4247
/* eslint-enable camelcase */
4348

4449
export function getCallBehaviourWellKnown(): ICallBehaviourWellKnown {
@@ -70,6 +75,16 @@ export function tileServerFromWellKnown(
7075
);
7176
}
7277

78+
export function getEmbeddedPagesWellKnown(): IEmbeddedPagesWellKnown | undefined {
79+
return embeddedPagesFromWellKnown(MatrixClientPeg.get()?.getClientWellKnown());
80+
}
81+
82+
export function embeddedPagesFromWellKnown(
83+
clientWellKnown?: IClientWellKnown,
84+
): IEmbeddedPagesWellKnown {
85+
return (clientWellKnown?.[EMBEDDED_PAGES_WK_PROPERTY]);
86+
}
87+
7388
export function isSecureBackupRequired(): boolean {
7489
const wellKnown = getE2EEWellKnown();
7590
return wellKnown && wellKnown["secure_backup_required"] === true;

src/utils/pages.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ limitations under the License.
1717
import { logger } from "matrix-js-sdk/src/logger";
1818

1919
import { IConfigOptions } from "../IConfigOptions";
20+
import { getEmbeddedPagesWellKnown } from '../utils/WellKnownUtils';
2021
import { SnakedObject } from "./SnakedObject";
2122

2223
export function getHomePageUrl(appConfig: IConfigOptions): string | null {
@@ -38,6 +39,10 @@ export function getHomePageUrl(appConfig: IConfigOptions): string | null {
3839
}
3940
}
4041

42+
if (!pageUrl) {
43+
pageUrl = getEmbeddedPagesWellKnown()?.home_url;
44+
}
45+
4146
return pageUrl;
4247
}
4348

0 commit comments

Comments
 (0)