/** * Gets a channel with the name matching the parameter. * * @param name the channel name * @return the Channel enum value matching the parameter */ public static Channel fromString(String name) { final String lcName = name.toLowerCase(); return stream(Channel.values()) .filter(ch -> ch.name.equals(lcName)) .findFirst().orElseThrow(() -> new WebDriverException("Unrecognized channel: " + name)); } }
private void loadChannelPref() { Path channelPrefs = getResource("defaults/pref/channel-prefs.js"); if (Files.exists(channelPrefs)) { try (BufferedReader reader = Files.newBufferedReader(channelPrefs)) { channel = reader.lines() .map(String::trim) .filter(line -> line.startsWith("pref(\"app.update.channel\"")) .findFirst() .map(line -> FirefoxBinary.Channel.fromString( line.substring("pref(\"app.update.channel\", \"".length(), line.length() - "\");".length()))) .orElseThrow(() -> new WebDriverException("Cannot get channel info for Firefox binary " + binary)); } catch (IOException e) { throw new WebDriverException("Cannot get channel info for Firefox binary " + binary, e); } } else { // Pick a sane default channel = FirefoxBinary.Channel.RELEASE; } }