diff --git a/platform/platform-api/src/com/intellij/ide/BrowserUtil.java b/platform/platform-api/src/com/intellij/ide/BrowserUtil.java index b1dec17078fa..81231d2f0054 100644 --- a/platform/platform-api/src/com/intellij/ide/BrowserUtil.java +++ b/platform/platform-api/src/com/intellij/ide/BrowserUtil.java @@ -97,12 +97,7 @@ public class BrowserUtil { else { commandLine = new String[command.length + 1]; System.arraycopy(command, 0, commandLine, 0, command.length); - if (SystemInfo.isWindows) { - commandLine[commandLine.length - 1] = "\"" + urlString + "\""; - } - else { - commandLine[commandLine.length - 1] = urlString.replaceAll(" ", "%20"); - } + commandLine[commandLine.length - 1] = escapeUrl(urlString); } Runtime.getRuntime().exec(commandLine); } @@ -207,6 +202,16 @@ public class BrowserUtil { } } + @NotNull + public static String escapeUrl(@NotNull @NonNls String url) { + if (SystemInfo.isWindows) { + return "\"" + url + "\""; + } + else { + return url.replaceAll(" ", "%20"); + } + } + private static String extractFiles(String url) { try { int sharpPos = url.indexOf('#'); diff --git a/xml/impl/src/com/intellij/ide/browsers/BrowsersConfiguration.java b/xml/impl/src/com/intellij/ide/browsers/BrowsersConfiguration.java index d2c18926f00f..15c3a3b38eb6 100644 --- a/xml/impl/src/com/intellij/ide/browsers/BrowsersConfiguration.java +++ b/xml/impl/src/com/intellij/ide/browsers/BrowsersConfiguration.java @@ -1,5 +1,6 @@ package com.intellij.ide.browsers; +import com.intellij.ide.BrowserUtil; import com.intellij.ide.browsers.firefox.FirefoxSettings; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.components.ApplicationComponent; @@ -172,10 +173,11 @@ public class BrowsersConfiguration implements ApplicationComponent, PersistentSt getInstance()._launchBrowser(family, url); } - private void _launchBrowser(final BrowserFamily family, @NotNull final String url) { + private void _launchBrowser(final BrowserFamily family, @NotNull String url) { final WebBrowserSettings settings = getBrowserSettings(family); final String path = settings.getPath(); if (path != null && path.length() > 0) { + url = BrowserUtil.escapeUrl(url); try { final BrowserSpecificSettings specificSettings = settings.getBrowserSpecificSettings(); String[] parameters;