示例#1
0
  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.setEnableNativeEvents(enableNativeEvents);
    profile.updateUserPrefs();

    return profile;
  }
示例#2
0
  /**
   * Attempt to add an extension to install into this instance.
   *
   * @param extensionToInstall
   * @throws IOException
   */
  public void addExtension(File extensionToInstall) throws IOException {
    if (!extensionToInstall.isDirectory()
        && !FileHandler.isZipped(extensionToInstall.getAbsolutePath())) {
      throw new IOException("Can only install from a zip file, an XPI or a directory");
    }

    File root = obtainRootDirectory(extensionToInstall);

    String id = readIdFromInstallRdf(root);

    File extensionDirectory = new File(extensionsDir, id);

    if (extensionDirectory.exists() && !FileHandler.delete(extensionDirectory)) {
      throw new IOException("Unable to delete existing extension directory: " + extensionDirectory);
    }

    FileHandler.createDir(extensionDirectory);
    FileHandler.makeWritable(extensionDirectory);
    FileHandler.copy(root, extensionDirectory);
  }