You've already forked matrix-js-sdk
mirror of
https://github.com/matrix-org/matrix-js-sdk.git
synced 2025-11-25 05:23:13 +03:00
Specify /preview_url requests as low priority (#3609)
* Specify /preview_url requests as low priority * Update src/@types/global.d.ts Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com> * Simplify interface --------- Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
fed9910fa1
commit
43b2404865
16
src/@types/global.d.ts
vendored
16
src/@types/global.d.ts
vendored
@@ -96,4 +96,20 @@ declare global {
|
|||||||
// but we still need this for MatrixCall::getRidOfRTXCodecs()
|
// but we still need this for MatrixCall::getRidOfRTXCodecs()
|
||||||
setCodecPreferences(codecs: RTCRtpCodecCapability[]): void;
|
setCodecPreferences(codecs: RTCRtpCodecCapability[]): void;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface RequestInit {
|
||||||
|
/**
|
||||||
|
* Specifies the priority of the fetch request relative to other requests of the same type.
|
||||||
|
* Must be one of the following strings:
|
||||||
|
* high: A high priority fetch request relative to other requests of the same type.
|
||||||
|
* low: A low priority fetch request relative to other requests of the same type.
|
||||||
|
* auto: Automatically determine the priority of the fetch request relative to other requests of the same type (default).
|
||||||
|
*
|
||||||
|
* @see https://html.spec.whatwg.org/multipage/urls-and-fetching.html#fetch-priority-attribute
|
||||||
|
* @see https://github.com/microsoft/TypeScript/issues/54472
|
||||||
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API#browser_compatibility
|
||||||
|
* Not yet supported in Safari or Firefox
|
||||||
|
*/
|
||||||
|
priority?: "high" | "low" | "auto";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5128,6 +5128,7 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
|
|||||||
undefined,
|
undefined,
|
||||||
{
|
{
|
||||||
prefix: MediaPrefix.R0,
|
prefix: MediaPrefix.R0,
|
||||||
|
priority: "low",
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
// TODO: Expire the URL preview cache sometimes
|
// TODO: Expire the URL preview cache sometimes
|
||||||
|
|||||||
@@ -222,7 +222,7 @@ export class FetchHttpApi<O extends IHttpOpts> {
|
|||||||
method: Method,
|
method: Method,
|
||||||
url: URL | string,
|
url: URL | string,
|
||||||
body?: Body,
|
body?: Body,
|
||||||
opts: Pick<IRequestOpts, "headers" | "json" | "localTimeoutMs" | "keepAlive" | "abortSignal"> = {},
|
opts: Pick<IRequestOpts, "headers" | "json" | "localTimeoutMs" | "keepAlive" | "abortSignal" | "priority"> = {},
|
||||||
): Promise<ResponseType<T, O>> {
|
): Promise<ResponseType<T, O>> {
|
||||||
const urlForLogs = this.sanitizeUrlForLogs(url);
|
const urlForLogs = this.sanitizeUrlForLogs(url);
|
||||||
logger.debug(`FetchHttpApi: --> ${method} ${urlForLogs}`);
|
logger.debug(`FetchHttpApi: --> ${method} ${urlForLogs}`);
|
||||||
@@ -276,6 +276,7 @@ export class FetchHttpApi<O extends IHttpOpts> {
|
|||||||
cache: "no-cache",
|
cache: "no-cache",
|
||||||
credentials: "omit", // we send credentials via headers
|
credentials: "omit", // we send credentials via headers
|
||||||
keepalive: keepAlive,
|
keepalive: keepAlive,
|
||||||
|
priority: opts.priority,
|
||||||
});
|
});
|
||||||
|
|
||||||
logger.debug(`FetchHttpApi: <-- ${method} ${urlForLogs} [${Date.now() - start}ms ${res.status}]`);
|
logger.debug(`FetchHttpApi: <-- ${method} ${urlForLogs} [${Date.now() - start}ms ${res.status}]`);
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ export interface IHttpOpts {
|
|||||||
localTimeoutMs?: number;
|
localTimeoutMs?: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IRequestOpts {
|
export interface IRequestOpts extends Pick<RequestInit, "priority"> {
|
||||||
/**
|
/**
|
||||||
* The alternative base url to use.
|
* The alternative base url to use.
|
||||||
* If not specified, uses this.opts.baseUrl
|
* If not specified, uses this.opts.baseUrl
|
||||||
|
|||||||
Reference in New Issue
Block a user