mirror of
				https://github.com/microsoft/playwright.git
				synced 2025-06-26 21:40:17 +00:00 
			
		
		
		
	fix(webkit): interception should tolerate page close or request abort race (#491)
This commit is contained in:
		
							parent
							
								
									e03f1e4c2c
								
							
						
					
					
						commit
						a4151c9bc2
					
				| @ -17,7 +17,7 @@ | ||||
| 
 | ||||
| import { WKSession } from './wkConnection'; | ||||
| import { Page } from '../page'; | ||||
| import { helper, RegisteredListener, assert } from '../helper'; | ||||
| import { helper, RegisteredListener, assert, debugError } from '../helper'; | ||||
| import { Protocol } from './protocol'; | ||||
| import * as network from '../network'; | ||||
| import * as frames from '../frames'; | ||||
| @ -210,7 +210,11 @@ class InterceptableRequest implements network.RequestDelegate { | ||||
|     const reason = errorReasons[errorCode]; | ||||
|     assert(reason, 'Unknown error code: ' + errorCode); | ||||
|     await this._interceptedPromise; | ||||
|     await this._session.send('Network.interceptAsError', { requestId: this._requestId, reason }); | ||||
|     await this._session.send('Network.interceptAsError', { requestId: this._requestId, reason }).catch(error => { | ||||
|       // In certain cases, protocol will return error if the request was already canceled
 | ||||
|       // or the page was closed. We should tolerate these errors.
 | ||||
|       debugError(error); | ||||
|     }); | ||||
|   } | ||||
| 
 | ||||
|   async fulfill(response: { status: number; headers: network.Headers; contentType: string; body: (string | platform.BufferType); }) { | ||||
| @ -237,6 +241,10 @@ class InterceptableRequest implements network.RequestDelegate { | ||||
|       headers: responseHeaders, | ||||
|       base64Encoded, | ||||
|       content: responseBody | ||||
|     }).catch(error => { | ||||
|       // In certain cases, protocol will return error if the request was already canceled
 | ||||
|       // or the page was closed. We should tolerate these errors.
 | ||||
|       debugError(error); | ||||
|     }); | ||||
|   } | ||||
| 
 | ||||
| @ -245,6 +253,10 @@ class InterceptableRequest implements network.RequestDelegate { | ||||
|     await this._session.send('Network.interceptContinue', { | ||||
|       requestId: this._requestId, | ||||
|       ...overrides | ||||
|     }).catch(error => { | ||||
|       // In certain cases, protocol will return error if the request was already canceled
 | ||||
|       // or the page was closed. We should tolerate these errors.
 | ||||
|       debugError(error); | ||||
|     }); | ||||
|   } | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Dmitry Gozman
						Dmitry Gozman