diff --git a/platform/platform-api/src/com/intellij/ide/browsers/BrowserLauncher.kt b/platform/platform-api/src/com/intellij/ide/browsers/BrowserLauncher.kt index 43df34e95703..b256384316f3 100644 --- a/platform/platform-api/src/com/intellij/ide/browsers/BrowserLauncher.kt +++ b/platform/platform-api/src/com/intellij/ide/browsers/BrowserLauncher.kt @@ -45,9 +45,18 @@ abstract class BrowserLauncher { abstract fun browse(url: String, browser: WebBrowser? = null, project: Project? = null) + fun browseUsingPath(url: String?, + browserPath: String? = null, + browser: WebBrowser? = null, + project: Project? = null, + additionalParameters: Array = ArrayUtil.EMPTY_STRING_ARRAY): Boolean { + return browseUsingPath(url, browserPath, browser, project, false, additionalParameters) + } + abstract fun browseUsingPath(url: String?, browserPath: String? = null, browser: WebBrowser? = null, project: Project? = null, + openInNewWindow: Boolean = false, additionalParameters: Array = ArrayUtil.EMPTY_STRING_ARRAY): Boolean } \ No newline at end of file diff --git a/platform/platform-api/src/com/intellij/ide/browsers/BrowserLauncherAppless.kt b/platform/platform-api/src/com/intellij/ide/browsers/BrowserLauncherAppless.kt index 952668bfcbbb..1fe2a3035c53 100644 --- a/platform/platform-api/src/com/intellij/ide/browsers/BrowserLauncherAppless.kt +++ b/platform/platform-api/src/com/intellij/ide/browsers/BrowserLauncherAppless.kt @@ -188,21 +188,33 @@ open class BrowserLauncherAppless : BrowserLauncher() { } } - override fun browseUsingPath(url: String?, browserPath: String?, browser: WebBrowser?, project: Project?, additionalParameters: Array): Boolean { + override fun browseUsingPath(url: String?, + browserPath: String?, + browser: WebBrowser?, + project: Project?, + openInNewWindow: Boolean, + additionalParameters: Array): Boolean { var browserPathEffective = browserPath var launchTask: (() -> Unit)? = null if (browserPath == null && browser != null) { browserPathEffective = PathUtil.toSystemDependentName(browser.path) - launchTask = { browseUsingPath(url, null, browser, project, additionalParameters) } + launchTask = { browseUsingPath(url, null, browser, project, openInNewWindow, additionalParameters) } } - return doLaunch(url, browserPathEffective, browser, project, additionalParameters, launchTask) + return doLaunch(url, browserPathEffective, browser, project, openInNewWindow, additionalParameters, launchTask) } - private fun doLaunch(url: String?, browserPath: String?, browser: WebBrowser?, project: Project?, additionalParameters: Array, launchTask: (() -> Unit)?): Boolean { + private fun doLaunch(url: String?, + browserPath: String?, + browser: WebBrowser?, + project: Project?, + openInNewWindow: Boolean, + additionalParameters: Array, + launchTask: (() -> Unit)?): Boolean { if (!checkPath(browserPath, browser, project, launchTask)) { return false } - return doLaunch(url, BrowserUtil.getOpenBrowserCommand(browserPath!!, false), browser, project, additionalParameters, launchTask) + return doLaunch(url, BrowserUtil.getOpenBrowserCommand(browserPath!!, openInNewWindow), browser, project, additionalParameters, + launchTask) } @Contract("null, _, _, _ -> false")