Skip to content

Commit 3058517

Browse files
authored
chore: follow-ups for #1897 connection changes (#1906)
1 parent 7405d65 commit 3058517

File tree

3 files changed

+11
-15
lines changed

3 files changed

+11
-15
lines changed

playwright/_impl/_browser_type.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ async def connect(
219219

220220
timeout_future = throw_on_timeout(timeout, Error("Connection timed out"))
221221
done, pending = await asyncio.wait(
222-
{playwright_future, timeout_future},
222+
{transport.on_error_future, playwright_future, timeout_future},
223223
return_when=asyncio.FIRST_COMPLETED,
224224
)
225225
if not playwright_future.done():
@@ -235,13 +235,13 @@ async def connect(
235235
self._did_launch_browser(browser)
236236
browser._should_close_connection_on_close = True
237237

238-
def handle_transport_close(transport_exception: str) -> None:
238+
def handle_transport_close() -> None:
239239
for context in browser.contexts:
240240
for page in context.pages:
241241
page._on_close()
242242
context._on_close()
243243
browser._on_close()
244-
connection.cleanup(transport_exception or BROWSER_CLOSED_ERROR)
244+
connection.cleanup(BROWSER_CLOSED_ERROR)
245245

246246
transport.once("close", handle_transport_close)
247247

playwright/_impl/_connection.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -290,8 +290,6 @@ def cleanup(self, error_message: str = None) -> None:
290290
ws_connection._transport.dispose()
291291
for callback in self._callbacks.values():
292292
callback.future.set_exception(Error(error_message))
293-
# Prevent 'Task exception was never retrieved'
294-
callback.future.exception()
295293
self._callbacks.clear()
296294
self.emit("close")
297295

playwright/_impl/_json_pipe.py

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@
1313
# limitations under the License.
1414

1515
import asyncio
16-
from typing import Dict, Optional, cast
16+
from typing import Dict, cast
1717

1818
from pyee.asyncio import AsyncIOEventEmitter
1919

2020
from playwright._impl._connection import Channel
21-
from playwright._impl._helper import ParsedMessagePayload
21+
from playwright._impl._helper import Error, ParsedMessagePayload
2222
from playwright._impl._transport import Transport
2323

2424

@@ -48,17 +48,13 @@ async def wait_until_stopped(self) -> None:
4848
async def connect(self) -> None:
4949
self._stopped_future: asyncio.Future = asyncio.Future()
5050

51-
close_error: Optional[str] = None
52-
5351
def handle_message(message: Dict) -> None:
54-
try:
55-
self.on_message(cast(ParsedMessagePayload, message))
56-
except Exception as e:
57-
nonlocal close_error
58-
close_error = str(e)
52+
if self._stop_requested:
53+
return
54+
self.on_message(cast(ParsedMessagePayload, message))
5955

6056
def handle_closed() -> None:
61-
self.emit("close", close_error)
57+
self.emit("close")
6258
self._stopped_future.set_result(None)
6359

6460
self._pipe_channel.on(
@@ -74,4 +70,6 @@ async def run(self) -> None:
7470
await self._stopped_future
7571

7672
def send(self, message: Dict) -> None:
73+
if self._stop_requested:
74+
raise Error("Playwright connection closed")
7775
self._pipe_channel.send_no_reply("send", {"message": message})

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy