public BrowserInstallation findBrowserLocation() {
    final BrowserInstallation defaultPath;

    LOGGER.debug("Discovering " + browserName() + "...");
    defaultPath = findAtADefaultLocation();
    if (null != defaultPath) {
      return defaultPath;
    }

    return findInPath();
  }
  protected BrowserInstallation retrieveValidInstallationPath(File launcher) {
    if (null == launcher) {
      return null;
    }
    LOGGER.debug(
        "Checking whether " + browserName() + " launcher at :'" + launcher + "' is valid...");
    if (!launcher.exists()) {
      return null;
    }

    if (LauncherUtils.isScriptFile(launcher)) {
      LOGGER.warn(
          "Caution: '"
              + launcher.getAbsolutePath()
              + "': file is a script file, not a real executable.  The browser environment is no longer fully under RC control");
    }

    LOGGER.debug("Discovered valid " + browserName() + " launcher  : '" + launcher + "'");

    return new BrowserInstallation(launcher.getAbsolutePath(), computeLibraryPath(launcher));
  }