summaryrefslogtreecommitdiffstats
path: root/remote/test/puppeteer/packages/puppeteer-core/src/bidi/HTTPResponse.ts
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 01:14:29 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 01:14:29 +0000
commitfbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8 (patch)
tree4c1ccaf5486d4f2009f9a338a98a83e886e29c97 /remote/test/puppeteer/packages/puppeteer-core/src/bidi/HTTPResponse.ts
parentReleasing progress-linux version 124.0.1-1~progress7.99u1. (diff)
downloadfirefox-fbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8.tar.xz
firefox-fbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8.zip
Merging upstream version 125.0.1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'remote/test/puppeteer/packages/puppeteer-core/src/bidi/HTTPResponse.ts')
-rw-r--r--remote/test/puppeteer/packages/puppeteer-core/src/bidi/HTTPResponse.ts84
1 files changed, 42 insertions, 42 deletions
diff --git a/remote/test/puppeteer/packages/puppeteer-core/src/bidi/HTTPResponse.ts b/remote/test/puppeteer/packages/puppeteer-core/src/bidi/HTTPResponse.ts
index ce28820a65..bad44ff089 100644
--- a/remote/test/puppeteer/packages/puppeteer-core/src/bidi/HTTPResponse.ts
+++ b/remote/test/puppeteer/packages/puppeteer-core/src/bidi/HTTPResponse.ts
@@ -7,11 +7,10 @@ import type * as Bidi from 'chromium-bidi/lib/cjs/protocol/protocol.js';
import type Protocol from 'devtools-protocol';
import type {Frame} from '../api/Frame.js';
-import {
- HTTPResponse as HTTPResponse,
- type RemoteAddress,
-} from '../api/HTTPResponse.js';
+import {HTTPResponse, type RemoteAddress} from '../api/HTTPResponse.js';
+import {PageEvent} from '../api/Page.js';
import {UnsupportedOperation} from '../common/Errors.js';
+import {invokeAtMostOnceForArguments} from '../util/decorators.js';
import type {BidiHTTPRequest} from './HTTPRequest.js';
@@ -19,62 +18,62 @@ import type {BidiHTTPRequest} from './HTTPRequest.js';
* @internal
*/
export class BidiHTTPResponse extends HTTPResponse {
+ static from(
+ data: Bidi.Network.ResponseData,
+ request: BidiHTTPRequest
+ ): BidiHTTPResponse {
+ const response = new BidiHTTPResponse(data, request);
+ response.#initialize();
+ return response;
+ }
+
+ #data: Bidi.Network.ResponseData;
#request: BidiHTTPRequest;
- #remoteAddress: RemoteAddress;
- #status: number;
- #statusText: string;
- #url: string;
- #fromCache: boolean;
- #headers: Record<string, string> = {};
- #timings: Record<string, string> | null;
-
- constructor(
- request: BidiHTTPRequest,
- {response}: Bidi.Network.ResponseCompletedParameters
+
+ private constructor(
+ data: Bidi.Network.ResponseData,
+ request: BidiHTTPRequest
) {
super();
+ this.#data = data;
this.#request = request;
+ }
- this.#remoteAddress = {
- ip: '',
- port: -1,
- };
-
- this.#url = response.url;
- this.#fromCache = response.fromCache;
- this.#status = response.status;
- this.#statusText = response.statusText;
- // TODO: File and issue with BiDi spec
- this.#timings = null;
-
- // TODO: Removed once the Firefox implementation is compliant with https://w3c.github.io/webdriver-bidi/#get-the-response-data.
- for (const header of response.headers || []) {
- // TODO: How to handle Binary Headers
- // https://w3c.github.io/webdriver-bidi/#type-network-Header
- if (header.value.type === 'string') {
- this.#headers[header.name.toLowerCase()] = header.value.value;
- }
- }
+ #initialize() {
+ this.#request.frame()?.page().trustedEmitter.emit(PageEvent.Response, this);
}
+ @invokeAtMostOnceForArguments
override remoteAddress(): RemoteAddress {
- return this.#remoteAddress;
+ return {
+ ip: '',
+ port: -1,
+ };
}
override url(): string {
- return this.#url;
+ return this.#data.url;
}
override status(): number {
- return this.#status;
+ return this.#data.status;
}
override statusText(): string {
- return this.#statusText;
+ return this.#data.statusText;
}
override headers(): Record<string, string> {
- return this.#headers;
+ const headers: Record<string, string> = {};
+ // TODO: Remove once the Firefox implementation is compliant with https://w3c.github.io/webdriver-bidi/#get-the-response-data.
+ for (const header of this.#data.headers || []) {
+ // TODO: How to handle Binary Headers
+ // https://w3c.github.io/webdriver-bidi/#type-network-Header
+ if (header.value.type === 'string') {
+ headers[header.name.toLowerCase()] = header.value.value;
+ }
+ }
+ return headers;
}
override request(): BidiHTTPRequest {
@@ -82,11 +81,12 @@ export class BidiHTTPResponse extends HTTPResponse {
}
override fromCache(): boolean {
- return this.#fromCache;
+ return this.#data.fromCache;
}
override timing(): Protocol.Network.ResourceTiming | null {
- return this.#timings as any;
+ // TODO: File and issue with BiDi spec
+ throw new UnsupportedOperation();
}
override frame(): Frame | null {