in module/geb-core/src/main/groovy/geb/Browser.groovy [800:823]
public <T> T withNewWindow(Map options, Closure windowOpeningBlock, @DelegatesTo(value = Browser, strategy = DELEGATE_FIRST) Closure<T> block) {
def originalWindow = currentWindow
def originalPage = getPage()
def wait = options.containsKey("wait") ? options.wait : config.withNewWindowConfig.wait
def newWindow = executeNewWindowOpening(windowOpeningBlock, wait)
try {
switchToWindow(newWindow)
if (options.page) {
verifyAtImplicitly(options.page)
}
Closure cloned = block.clone()
cloned.delegate = browser
cloned.resolveStrategy = DELEGATE_FIRST
cloned.call()
} finally {
if ((!options.containsKey(CLOSE_OPTION) && config.withNewWindowConfig.close.orElse(true)) || options.close) {
getDriver().close()
}
switchToWindow(originalWindow)
page originalPage
}
}