@@ -128,8 +128,9 @@ async def _create_page(self, request: Request) -> Page:
128
128
context = await self ._create_browser_context (context_name , context_kwargs )
129
129
self .contexts [context_name ] = context
130
130
page = await context .new_page ()
131
- page .on ("request" , _make_request_logger (context_name ))
132
131
page .on ("response" , _make_response_logger (context_name ))
132
+ page .on ("request" , _make_request_logger (context_name ))
133
+ page .on ("request" , self ._increment_request_stats )
133
134
self .stats .inc_value ("playwright/page_count" )
134
135
if self .default_navigation_timeout :
135
136
page .set_default_navigation_timeout (self .default_navigation_timeout )
@@ -227,6 +228,14 @@ async def _download_request_with_page(self, request: Request, page: Page) -> Res
227
228
flags = ["playwright" ],
228
229
)
229
230
231
+ def _increment_request_stats (self , request : PlaywrightRequest ) -> None :
232
+ stats_prefix = "playwright/request_count"
233
+ self .stats .inc_value (stats_prefix )
234
+ self .stats .inc_value (f"{ stats_prefix } /resource_type/{ request .resource_type } " )
235
+ self .stats .inc_value (f"{ stats_prefix } /method/{ request .method } " )
236
+ if request .is_navigation_request ():
237
+ self .stats .inc_value (f"{ stats_prefix } /navigation" )
238
+
230
239
def _make_close_browser_context_callback (self , name : str ) -> Callable :
231
240
def close_browser_context_callback () -> None :
232
241
logger .debug ("Browser context closed: '%s'" , name )
@@ -254,12 +263,5 @@ def request_handler(route: Route, pw_request: PlaywrightRequest) -> None:
254
263
if headers .get ("user-agent" ):
255
264
overrides ["headers" ]["user-agent" ] = headers ["user-agent" ]
256
265
asyncio .create_task (route .continue_ (** overrides ))
257
- # increment stats
258
- self .stats .inc_value ("playwright/request_count" )
259
- resource_type = pw_request .resource_type
260
- self .stats .inc_value (f"playwright/request_count/resource_type/{ resource_type } " )
261
- self .stats .inc_value (f"playwright/request_count/method/{ pw_request .method } " )
262
- if pw_request .is_navigation_request ():
263
- self .stats .inc_value ("playwright/request_count/navigation" )
264
266
265
267
return request_handler
0 commit comments