Home Manual Reference Source

src/capabilities/chrome.capabilities.js

import * as fs from "fs";

// Universal chrome options
const chromeOptions = {
  args: [
    "--start-maximized",
    "--disable-infobars",
    "--disable-user-media-security",
    "--use-fake-ui-for-media-stream",
    "--use-fake-device-for-media-stream",
    "--ignore-certificate-errors"
  ],
  prefs: {
    credentials_enable_service: false, // eslint-disable-line camelcase
    "profile.password_manager_enabled": false,
    "profile.default_content_setting_values.notifications": 2,
    profile: {
      // eslint-disable-next-line camelcase
      content_settings: {
        exceptions: {
          // eslint-disable-next-line camelcase
          media_stream_camera: {
            "https://*,*": {
              setting: 1
            }
          },
          // eslint-disable-next-line camelcase
          media_stream_mic: {
            "https://*,*": {
              setting: 1
            }
          }
        }
      }
    }
  },
  extensions: [fs.readFileSync("./lifesize_extension.crx", "base64")]
};

// If sauce, set proper path and capture source
if (process.env.USE_SAUCE) {
  chromeOptions.args.push(
    "--use-file-for-fake-video-capture=/tmp/node/mounted/students.y4m"
  );
  chromeOptions.args.push("--auto-select-desktop-capture-source=Entire screen");
} else {
  // chromeOptions.args.push(
  //   "--use-file-for-fake-video-capture=./y4m_files/students.y4m"
  // );
  chromeOptions.args.push("--auto-select-desktop-capture-source=Entire screen");
}

module.exports = {
  host: process.env.HOST || "localhost",
  port: process.env.PORT || "4444",
  user: process.env.SAUCE_USERNAME,
  key: process.env.SAUCE_ACCESS_KEY,
  path: "/wd/hub",
  logLevel: process.env.LOG_LEVEL || "silent",
  desiredCapabilities: {
    maxInstances: 1,
    browserName: process.env.BROWSER_NAME || "chrome",
    acceptSslCerts: true,
    acceptInsecureCerts: true,
    // chromedriverVersion: process.env.CHROME_DRIVER_VERSION || "2.30",
    // platform: process.env.PLATFORM || "macOS 10.12",
    screenResolution: process.env.SCREEN_RESOLUTION || "1400x1050",
    // version: process.env.VERSION || "61",
    idleTimeout: process.env.IDLE_TIMEOUT || "270", // sauce labs idles
    prerun: {
      executable:
        "https://s3.amazonaws.com/y4mfiles.lifesizecloudbeta.com/getY4m.sh",
      background: "false"
    },
    chromeOptions: chromeOptions
  }
};