mirror of
				https://github.com/microsoft/playwright.git
				synced 2025-06-26 21:40:17 +00:00 
			
		
		
		
	chore: set default http request timeouts (#17200)
* chore: set default http request timeouts * Update chromium.ts
This commit is contained in:
		
							parent
							
								
									9c996f6cbb
								
							
						
					
					
						commit
						5e56bc413a
					
				| @ -39,11 +39,14 @@ export type HTTPRequestParams = { | ||||
|   timeout?: number, | ||||
| }; | ||||
| 
 | ||||
| export const NET_DEFAULT_TIMEOUT = 30_000; | ||||
| 
 | ||||
| export function httpRequest(params: HTTPRequestParams, onResponse: (r: http.IncomingMessage) => void, onError: (error: Error) => void) { | ||||
|   const parsedUrl = URL.parse(params.url); | ||||
|   let options: https.RequestOptions = { ...parsedUrl }; | ||||
|   options.method = params.method || 'GET'; | ||||
|   options.headers = params.headers; | ||||
|   const timeout = params.timeout ?? NET_DEFAULT_TIMEOUT; | ||||
| 
 | ||||
|   const proxyURL = getProxyForUrl(params.url); | ||||
|   if (proxyURL) { | ||||
| @ -74,16 +77,16 @@ export function httpRequest(params: HTTPRequestParams, onResponse: (r: http.Inco | ||||
|     https.request(options, requestCallback) : | ||||
|     http.request(options, requestCallback); | ||||
|   request.on('error', onError); | ||||
|   if (params.timeout !== undefined) { | ||||
|   if (timeout !== undefined) { | ||||
|     const rejectOnTimeout = () =>  { | ||||
|       onError(new Error(`Request to ${params.url} timed out after ${params.timeout}ms`)); | ||||
|       onError(new Error(`Request to ${params.url} timed out after ${timeout}ms`)); | ||||
|       request.abort(); | ||||
|     }; | ||||
|     if (params.timeout <= 0) { | ||||
|     if (timeout <= 0) { | ||||
|       rejectOnTimeout(); | ||||
|       return; | ||||
|     } | ||||
|     request.setTimeout(params.timeout, rejectOnTimeout); | ||||
|     request.setTimeout(timeout, rejectOnTimeout); | ||||
|   } | ||||
|   request.end(params.data); | ||||
| } | ||||
|  | ||||
| @ -32,6 +32,7 @@ import { Browser } from '../browser'; | ||||
| import type * as types from '../types'; | ||||
| import type * as channels from '../../protocol/channels'; | ||||
| import type { HTTPRequestParams } from '../../common/netUtils'; | ||||
| import { NET_DEFAULT_TIMEOUT } from '../../common/netUtils'; | ||||
| import { fetchData } from '../../common/netUtils'; | ||||
| import { getUserAgent } from '../../common/userAgent'; | ||||
| import { debugMode, headersArrayToObject, streamToString, wrapInASCIIBox } from '../../utils'; | ||||
| @ -365,7 +366,9 @@ async function urlToWSEndpoint(progress: Progress, endpointURL: string) { | ||||
|   const httpURL = endpointURL.endsWith('/') ? `${endpointURL}json/version/` : `${endpointURL}/json/version/`; | ||||
|   const request = endpointURL.startsWith('https') ? https : http; | ||||
|   const json = await new Promise<string>((resolve, reject) => { | ||||
|     request.get(httpURL, resp => { | ||||
|     request.get(httpURL, { | ||||
|       timeout: NET_DEFAULT_TIMEOUT, | ||||
|     }, resp => { | ||||
|       if (resp.statusCode! < 200 || resp.statusCode! >= 400) { | ||||
|         reject(new Error(`Unexpected status ${resp.statusCode} when connecting to ${httpURL}.\n` + | ||||
|         `This does not look like a DevTools server, try connecting via ws://.`)); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Max Schmitt
						Max Schmitt