Closed connorjclark closed 1 month ago
bringing fatal promise over to the session is awesome. works great. let's go with that
OK
I realized the Driver shouldn't be the thing handling this crash promise. I just moved it to ProtocolSession, dropped all the wiring being used to get it there, and added a session.onCrashPromise()
for use by navigation's wait-for-conditions.
Oh, this new approach also means we handle crashes in all sessions, not just the root.
11840 added a specific error code when the chrome target crashes, but it only applied to navigations within the waitFor condition check. Any other runner, or during teardown in navigation, and a crash would still result in a PROTOCOL_TIMEOUT.
This PR adds the crash promise to ProtocolSession, and checks during any sendCommand that there was not a crash.
Alternatively, we can introduce a wrapper around gatherFn and check if the Driver is in a crash state. This PR has both approaches (thus Draft).