@@ -98,13 +98,12 @@ async def new_page(
98
98
proxy_info : ProxyInfo | None = None ,
99
99
) -> Page :
100
100
if not self ._browser_context :
101
- self ._browser_context = await self ._create_browser_context (proxy_info )
101
+ self ._browser_context = await self ._create_browser_context (page_options , proxy_info )
102
102
103
103
if not self .has_free_capacity :
104
104
raise ValueError ('Cannot open more pages in this browser.' )
105
105
106
- page_options = dict (page_options ) if page_options else {}
107
- page = await self ._browser_context .new_page (** page_options )
106
+ page = await self ._browser_context .new_page ()
108
107
109
108
# Handle page close event
110
109
page .on (event = 'close' , f = self ._on_page_close )
@@ -130,17 +129,20 @@ def _on_page_close(self, page: Page) -> None:
130
129
"""Handle actions after a page is closed."""
131
130
self ._pages .remove (page )
132
131
133
- async def _create_browser_context (self , proxy_info : ProxyInfo | None = None ) -> BrowserContext :
132
+ async def _create_browser_context (
133
+ self , page_options : Mapping [str , Any ] | None = None , proxy_info : ProxyInfo | None = None
134
+ ) -> BrowserContext :
134
135
"""Create a new browser context with the specified proxy settings."""
135
136
if self ._header_generator :
136
137
common_headers = self ._header_generator .get_common_headers ()
137
138
sec_ch_ua_headers = self ._header_generator .get_sec_ch_ua_headers (browser_type = self .browser_type )
138
139
user_agent_header = self ._header_generator .get_user_agent_header (browser_type = self .browser_type )
139
140
extra_http_headers = dict (common_headers | sec_ch_ua_headers | user_agent_header )
140
- user_agent = user_agent_header .get ('User-Agent' )
141
141
else :
142
142
extra_http_headers = None
143
- user_agent = None
143
+
144
+ page_options = dict (page_options ) if page_options else {}
145
+ page_options ['extra_http_headers' ] = page_options .get ('extra_http_headers' , extra_http_headers )
144
146
145
147
proxy = (
146
148
ProxySettings (
@@ -152,8 +154,4 @@ async def _create_browser_context(self, proxy_info: ProxyInfo | None = None) ->
152
154
else None
153
155
)
154
156
155
- return await self ._browser .new_context (
156
- user_agent = user_agent ,
157
- extra_http_headers = extra_http_headers ,
158
- proxy = proxy ,
159
- )
157
+ return await self ._browser .new_context (proxy = proxy , ** page_options )
0 commit comments