public void setPreference(String key, String value) { checkPreference(key, value); if (isStringified(value)) { throw new IllegalArgumentException( String.format("Preference values must be plain strings: %s: %s", key, value)); } allPrefs.put(key, value); }
/** * Set a preference for this particular profile. * * @param key The key * @param value The new value. */ public void setPreference(String key, int value) { additionalPrefs.setPreference(key, value); }
private String valueAsPreference(Object value) { if (value instanceof String) { return "\"" + escapeValueAsPreference((String) value) + "\""; } return escapeValueAsPreference(String.valueOf(value)); }
public void updateUserPrefs(File userPrefs) { Preferences prefs = new Preferences(onlyOverrideThisIfYouKnowWhatYouAreDoing()); prefs.setPreference("browser.startup.homepage", "about:blank"); prefs.setPreference("browser.startup.page", 0); prefs = new Preferences(onlyOverrideThisIfYouKnowWhatYouAreDoing(), userPrefs); if (!userPrefs.delete()) { throw new WebDriverException("Cannot delete existing user preferences"); additionalPrefs.addTo(prefs); prefs.setPreference(ACCEPT_UNTRUSTED_CERTS_PREF, acceptUntrustedCerts); prefs.setPreference(ASSUME_UNTRUSTED_ISSUER_PREF, untrustedCertIssuer); Object homePage = prefs.getPreference("browser.startup.homepage"); if (homePage != null && homePage instanceof String) { prefs.setPreference("startup.homepage_welcome_url", ""); if (!"about:blank".equals(prefs.getPreference("browser.startup.homepage"))) { prefs.setPreference("browser.startup.page", 1); prefs.writeTo(writer); } catch (IOException e) { throw new WebDriverException(e);
@VisibleForTesting @Beta protected FirefoxProfile(Reader defaultsReader, File profileDir) { if (defaultsReader == null) { defaultsReader = onlyOverrideThisIfYouKnowWhatYouAreDoing(); } additionalPrefs = new Preferences(defaultsReader); model = profileDir; verifyModel(model); File prefsInModel = new File(model, "user.js"); if (prefsInModel.exists()) { StringReader reader = new StringReader("{\"frozen\": {}, \"mutable\": {}}"); Preferences existingPrefs = new Preferences(reader, prefsInModel); acceptUntrustedCerts = getBooleanPreference(existingPrefs, ACCEPT_UNTRUSTED_CERTS_PREF, true); untrustedCertIssuer = getBooleanPreference(existingPrefs, ASSUME_UNTRUSTED_ISSUER_PREF, true); existingPrefs.addTo(additionalPrefs); } else { acceptUntrustedCerts = true; untrustedCertIssuer = true; } // This is not entirely correct but this is not stored in the profile // so for now will always be set to false. loadNoFocusLib = false; try { defaultsReader.close(); } catch (IOException e) { throw new WebDriverException(e); } }
public Preferences(Reader defaults, File userPrefs) { readDefaultPreferences(defaults); try (FileReader reader = new FileReader(userPrefs)) { readPreferences(reader); } catch (IOException e) { throw new WebDriverException(e); } }
additionalPrefs.addTo(prefs);
public void setPreference(String key, String value) { if (isStringified(value)) { throw new IllegalArgumentException( String.format("Preference values must be plain strings: %s: %s", key, value)); } additionalPrefs.put(key, String.format("\"%s\"", value)); }
public int getIntegerPreference(String key, int defaultValue) { Object preference = additionalPrefs.getPreference(key); if(preference != null && preference instanceof Integer) { return (Integer) preference; } return defaultValue; }
public void setPreference(String key, boolean value) { checkPreference(key, value); allPrefs.put(key, value); }
public Preferences(Reader defaults) { readDefaultPreferences(defaults); }
private void readPreferences(Reader reader) throws IOException { LineReader allLines = new LineReader(reader); String line = allLines.readLine(); while (line != null) { Matcher matcher = PREFERENCE_PATTERN.matcher(line); if (matcher.matches()) { allPrefs.put(matcher.group(1), preferenceAsValue(matcher.group(2))); } line = allLines.readLine(); } }
@VisibleForTesting public Preferences(Reader defaults, Reader reader) { readDefaultPreferences(defaults); try { readPreferences(reader); } catch (IOException e) { throw new WebDriverException(e); } finally { try { Closeables.close(reader, true); } catch (IOException ignored) { } } }
public FirefoxProfile createCopy(int port) { File to = TemporaryFilesystem.createTempDir("webdriver", "profilecopy"); try { FileHandler.copy(profileDir, to); } catch (IOException e) { throw new WebDriverException( "Cannot create copy of profile " + profileDir.getAbsolutePath(), e); } FirefoxProfile profile = new FirefoxProfile(to); additionalPrefs.addTo(profile); profile.setPort(port); profile.updateUserPrefs(); return profile; } }
public boolean getBooleanPreference(String key, boolean defaultValue) { Object preference = additionalPrefs.getPreference(key); if(preference != null && preference instanceof Boolean) { return (Boolean) preference; } return defaultValue; }
public void setPreference(String key, int value) { checkPreference(key, value); allPrefs.put(key, value); }
/** * Set a preference for this particular profile. The value will be properly quoted before use. * Note that if a value looks as if it is a quoted string (that is, starts with a quote character * and ends with one too) an IllegalArgumentException is thrown: Firefox fails to start properly * when some values are set to this. * * @param key The key * @param value The new value. */ public void setPreference(String key, String value) { additionalPrefs.setPreference(key, value); }
public String getStringPreference(String key, String defaultValue) { Object preference = additionalPrefs.getPreference(key); if(preference != null && preference instanceof String) { return (String) preference; } return defaultValue; }
/** * Set a preference for this particular profile. * * @param key The key * @param value The new value. */ public void setPreference(String key, int value) { additionalPrefs.setPreference(key, value); }
private boolean getBooleanPreference(Preferences prefs, String key, boolean defaultValue) { Object value = prefs.getPreference(key); if (value == null) { return defaultValue; } if (value instanceof Boolean) { return (Boolean) value; } throw new WebDriverException("Expected boolean value is not a boolean. It is: " + value); }