playwright/src/chromium/features/interception.ts

42 lines
1.3 KiB
TypeScript

// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
import { NetworkManager, toInterceptableRequest } from '../NetworkManager';
import * as network from '../../network';
export class Interception {
private _networkManager: NetworkManager;
constructor(networkManager: NetworkManager) {
this._networkManager = networkManager;
}
async enable() {
await this._networkManager.setRequestInterception(true);
}
async disable() {
await this._networkManager.setRequestInterception(false);
}
async continue(request: network.Request, overrides: { url?: string; method?: string; postData?: string; headers?: {[key: string]: string}; } = {}) {
return toInterceptableRequest(request).continue(overrides);
}
async fulfill(request: network.Request, response: { status: number; headers: {[key: string]: string}; contentType: string; body: (string | Buffer); }) {
return toInterceptableRequest(request).fulfill(response);
}
async abort(request: network.Request, errorCode: string = 'failed') {
return toInterceptableRequest(request).abort(errorCode);
}
setOfflineMode(enabled: boolean) {
return this._networkManager.setOfflineMode(enabled);
}
async authenticate(credentials: { username: string; password: string; } | null) {
return this._networkManager.authenticate(credentials);
}
}