public function open(callable $callback)
    {
        $sessionHandleList = $this->getSessionWindowHandles();
        $callback($this->driver);
        for ($i = 0; $i < 10; $i++) {
            $handle = $this->getNewWindow($sessionHandleList);
            if ($handle === null) {
                sleep(1);
            } else {
                $this->setWindowHandle($handle);
                return $this;
            }
        }
        throw new WebDriver_Exception("The expected window didn't open.");
    }