Currently we have code like this:
return self.wait.until(
expected.new_browser_window_is_opened(
self.selenium, handles_before),
Problem is that each consumer of the expected method would have to retrieve the handles before.
I propose that we get rid of this expected method, and replace it with whether a context manager, or having a callback. In both situations the wait will happen totally transparent to the consumer.