Closed Bug 1313338 Opened 9 years ago Closed 8 years ago

Marionette hangs when last opened tab gets closed

Categories

(Remote Protocol :: Marionette, defect)

Version 3
defect
Not set
major

Tracking

(Not tracked)

RESOLVED WORKSFORME

People

(Reporter: whimboo, Assigned: ato)

References

(Blocks 1 open bug)

Details

Not sure what the expected behavior should be but I assume it should not be a hang of Marionette. By simply closing the last open tab, Marionette immediately hangs and runs into an IOError. class Test(MarionetteTestCase): def test_close(self): self.marionette.close() Andreas, what should be the exact behavior? I assume closing the window should be discarded and Marionette should continue as usual?
Flags: needinfo?(ato)
The expected WebDriver behaviour is for the session to end when the last top-level browsing context is discarded. Currently `marionette.close()` causes the GeckoDriver#tearDownSession to be called which would explain the hang, but it doesn’t communicate back to the client that the session has ended. WebDriver says we should do this by returning the list of window handles from the Close Window command so that the client can check its length to determine whether the session ended. Fortunately, you’re in luck, because I’ve been working on this over the last couple of days. I expect to have a patch which fixes at least the server-side issue soon. The way I imagine fixing it is to not have any commands in the _Marionette protocol_ (not WebDriver) implicitly cause the session or connection to end, but to make this an option in the proxy (geckodriver) or in the client (Python client).
Flags: needinfo?(ato)
Assignee: nobody → ato
Status: NEW → ASSIGNED
OS: Unspecified → All
Hardware: Unspecified → All
Blocks: webdriver
I have a patch that mostly works for this, but I believe we need to fix the window handle issue when a remoteness change occurs before it can pass all tests. We need to start using permanentKey.
I cannot reproduce this issue anymore. It seems to work just fine.
Status: ASSIGNED → RESOLVED
Closed: 8 years ago
Resolution: --- → WORKSFORME
Product: Testing → Remote Protocol
You need to log in before you can comment on or make changes to this bug.