@@ -315,63 +315,58 @@ async def continue_(
315315 headers : Dict [str , str ] = None ,
316316 postData : Union [str , bytes ] = None ,
317317 ) -> None :
318+ overrides = cast (FallbackOverrideParameters , locals_to_params (locals ()))
318319 # FIXME: This is getting triggered when it shouldn't be
319320 # self._check_not_handled()
320- overrides : FallbackOverrideParameters = {}
321- if url :
322- overrides ["url" ] = url
323- if method :
324- overrides ["method" ] = method
325- if headers :
326- overrides ["headers" ] = headers
327- if postData :
328- overrides ["postData" ] = postData
329-
330- # 1. request.url et. al. may be called after contine by user and it should reflect the overrides
331- # 2. existing overrides should be used when continueing
332321 self .request ._apply_fallback_overrides (overrides )
333-
334- post_data_for_wire : Optional [str ] = None
335- post_data_from_overrides = self .request ._fallback_overrides .get ("postData" )
336- if post_data_from_overrides is not None :
337- post_data_for_wire = (
338- base64 .b64encode (post_data_from_overrides .encode ()).decode ()
339- if isinstance (post_data_from_overrides , str )
340- else base64 .b64encode (post_data_from_overrides ).decode ()
341- )
342- await self ._race_with_page_close (
343- self ._channel .send (
344- "continue" ,
345- cast (
346- Any ,
347- locals_to_params (
348- {
349- "url" : self .request ._fallback_overrides .get ("url" ),
350- "method" : self .request ._fallback_overrides .get ("method" ),
351- "headers" : serialize_headers (
352- cast (
353- Dict [str , str ],
354- self .request ._fallback_overrides ["headers" ],
355- )
356- )
357- if self .request ._fallback_overrides .get ("headers" )
358- else None ,
359- "postData" : post_data_for_wire ,
360- }
361- ),
362- ),
363- )
364- )
322+ await self ._internal_continue ()
365323 self ._report_handled (True )
366324
367- def _internal_continue (self ) -> None :
325+ def _internal_continue (
326+ self , is_internal : bool = False
327+ ) -> Coroutine [Any , Any , None ]:
368328 async def continue_route () -> None :
369329 try :
370- await self .continue_ ()
371- except Exception :
372- pass
373-
374- asyncio .create_task (continue_route ())
330+ post_data_for_wire : Optional [str ] = None
331+ post_data_from_overrides = self .request ._fallback_overrides .get (
332+ "postData"
333+ )
334+ if post_data_from_overrides is not None :
335+ post_data_for_wire = (
336+ base64 .b64encode (post_data_from_overrides .encode ()).decode ()
337+ if isinstance (post_data_from_overrides , str )
338+ else base64 .b64encode (post_data_from_overrides ).decode ()
339+ )
340+ await self ._race_with_page_close (
341+ self ._channel .send (
342+ "continue" ,
343+ cast (
344+ Any ,
345+ locals_to_params (
346+ {
347+ "url" : self .request ._fallback_overrides .get ("url" ),
348+ "method" : self .request ._fallback_overrides .get (
349+ "method"
350+ ),
351+ "headers" : serialize_headers (
352+ cast (
353+ Dict [str , str ],
354+ self .request ._fallback_overrides ["headers" ],
355+ )
356+ )
357+ if self .request ._fallback_overrides .get ("headers" )
358+ else None ,
359+ "postData" : post_data_for_wire ,
360+ }
361+ ),
362+ ),
363+ )
364+ )
365+ except Exception as e :
366+ if not is_internal :
367+ raise e
368+
369+ return continue_route ()
375370
376371 # FIXME: Port corresponding tests, and call this method
377372 async def _redirected_navigation_request (self , url : str ) -> None :
0 commit comments