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)