Socket
Socket
Sign inDemoInstall

puppeteer-core

Package Overview
Dependencies
Maintainers
5
Versions
239
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

puppeteer-core - npm Package Compare versions

Comparing version 3.2.0 to 3.3.0

lib/HTTPResponse.js

5

lib/api.js

@@ -31,3 +31,2 @@ /**

ExecutionContext: require('./ExecutionContext').ExecutionContext,
EventEmitter: require('./EventEmitter').EventEmitter,
FileChooser: require('./FileChooser').FileChooser,

@@ -41,3 +40,3 @@ Frame: require('./FrameManager').Frame,

HTTPRequest: require('./HTTPRequest').HTTPRequest,
Response: require('./Response').Response,
HTTPResponse: require('./HTTPResponse').HTTPResponse,
SecurityDetails: require('./SecurityDetails').SecurityDetails,

@@ -48,3 +47,3 @@ Target: require('./Target').Target,

Tracing: require('./Tracing').Tracing,
Worker: require('./Worker').Worker,
WebWorker: require('./WebWorker').WebWorker,
};

6

lib/Browser.js

@@ -21,5 +21,5 @@ "use strict";

const Target_1 = require("./Target");
const EventEmitter_1 = require("./EventEmitter");
const EventEmitter = require("events");
const Events_1 = require("./Events");
class Browser extends EventEmitter_1.EventEmitter {
class Browser extends EventEmitter {
constructor(connection, contextIds, ignoreHTTPSErrors, defaultViewport, process, closeCallback) {

@@ -192,3 +192,3 @@ super();

exports.Browser = Browser;
class BrowserContext extends EventEmitter_1.EventEmitter {
class BrowserContext extends EventEmitter {
constructor(connection, browser, contextId) {

@@ -195,0 +195,0 @@ super();

@@ -17,41 +17,19 @@ "use strict";

*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.BrowserFetcher = void 0;
const os = __importStar(require("os"));
const fs = __importStar(require("fs"));
const path = __importStar(require("path"));
const util = __importStar(require("util"));
const childProcess = __importStar(require("child_process"));
const https = __importStar(require("https"));
const http = __importStar(require("http"));
const extract_zip_1 = __importDefault(require("extract-zip"));
const debug_1 = __importDefault(require("debug"));
const rimraf_1 = __importDefault(require("rimraf"));
const URL = __importStar(require("url"));
const https_proxy_agent_1 = __importDefault(require("https-proxy-agent"));
const os = require("os");
const fs = require("fs");
const path = require("path");
const util = require("util");
const childProcess = require("child_process");
const https = require("https");
const http = require("http");
const extractZip = require("extract-zip");
const debug = require("debug");
const removeRecursive = require("rimraf");
const URL = require("url");
const ProxyAgent = require("https-proxy-agent");
const proxy_from_env_1 = require("proxy-from-env");
const helper_1 = require("./helper");
const debugFetcher = debug_1.default(`puppeteer:fetcher`);
const debugFetcher = debug(`puppeteer:fetcher`);
const downloadURLs = {

@@ -204,3 +182,3 @@ chrome: {

helper_1.assert(await existsAsync(folderPath), `Failed to remove: revision ${revision} is not downloaded`);
await new Promise((fulfill) => rimraf_1.default(folderPath, fulfill));
await new Promise((fulfill) => removeRecursive(folderPath, fulfill));
}

@@ -313,3 +291,3 @@ revisionInfo(revision) {

if (archivePath.endsWith('.zip'))
return extract_zip_1.default(archivePath, { dir: folderPath });
return extractZip(archivePath, { dir: folderPath });
else if (archivePath.endsWith('.tar.bz2'))

@@ -416,3 +394,3 @@ return extractTar(archivePath, folderPath);

};
options.agent = new https_proxy_agent_1.default(proxyOptions);
options.agent = new ProxyAgent(proxyOptions);
options.rejectUnauthorized = false;

@@ -419,0 +397,0 @@ }

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });

@@ -24,6 +21,6 @@ exports.CDPSession = exports.Connection = void 0;

const Events_1 = require("./Events");
const debug_1 = __importDefault(require("debug"));
const debugProtocol = debug_1.default('puppeteer:protocol');
const EventEmitter_1 = require("./EventEmitter");
class Connection extends EventEmitter_1.EventEmitter {
const debug = require("debug");
const debugProtocol = debug('puppeteer:protocol');
const EventEmitter = require("events");
class Connection extends EventEmitter {
constructor(url, transport, delay = 0) {

@@ -135,3 +132,3 @@ super();

exports.Connection = Connection;
class CDPSession extends EventEmitter_1.EventEmitter {
class CDPSession extends EventEmitter {
constructor(connection, targetType, sessionId) {

@@ -138,0 +135,0 @@ super();

@@ -17,24 +17,5 @@ "use strict";

*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.DOMWorld = void 0;
const fs = __importStar(require("fs"));
const fs = require("fs");
const helper_1 = require("./helper");

@@ -41,0 +22,0 @@ const LifecycleWatcher_1 = require("./LifecycleWatcher");

@@ -19,3 +19,3 @@ "use strict";

exports.Frame = exports.FrameManager = void 0;
const EventEmitter_1 = require("./EventEmitter");
const EventEmitter = require("events");
const helper_1 = require("./helper");

@@ -28,3 +28,3 @@ const Events_1 = require("./Events");

const UTILITY_WORLD_NAME = '__puppeteer_utility_world__';
class FrameManager extends EventEmitter_1.EventEmitter {
class FrameManager extends EventEmitter {
constructor(client, page, ignoreHTTPSErrors, timeoutSettings) {

@@ -31,0 +31,0 @@ super();

"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });

@@ -42,4 +20,4 @@ exports.helper = exports.assert = exports.debugError = void 0;

const Errors_1 = require("./Errors");
const debug_1 = __importDefault(require("debug"));
const fs = __importStar(require("fs"));
const debug = require("debug");
const fs = require("fs");
const util_1 = require("util");

@@ -49,3 +27,3 @@ const openAsync = util_1.promisify(fs.open);

const closeAsync = util_1.promisify(fs.close);
exports.debugError = debug_1.default('puppeteer:error');
exports.debugError = debug('puppeteer:error');
function assert(value, message) {

@@ -52,0 +30,0 @@ if (!value)

"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });

@@ -37,8 +18,8 @@ /**

*/
const os = __importStar(require("os"));
const path = __importStar(require("path"));
const http = __importStar(require("http"));
const https = __importStar(require("https"));
const URL = __importStar(require("url"));
const fs = __importStar(require("fs"));
const os = require("os");
const path = require("path");
const http = require("http");
const https = require("https");
const URL = require("url");
const fs = require("fs");
const BrowserFetcher_1 = require("./BrowserFetcher");

@@ -45,0 +26,0 @@ const Connection_1 = require("./Connection");

@@ -17,29 +17,7 @@ "use strict";

*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.BrowserRunner = void 0;
const debug_1 = __importDefault(require("debug"));
const rimraf_1 = __importDefault(require("rimraf"));
const childProcess = __importStar(require("child_process"));
const debug = require("debug");
const removeFolder = require("rimraf");
const childProcess = require("child_process");
const helper_1 = require("../helper");

@@ -49,6 +27,6 @@ const Connection_1 = require("../Connection");

const PipeTransport_1 = require("../PipeTransport");
const readline = __importStar(require("readline"));
const readline = require("readline");
const Errors_1 = require("../Errors");
const removeFolderAsync = helper_1.helper.promisify(rimraf_1.default);
const debugLauncher = debug_1.default('puppeteer:launcher');
const removeFolderAsync = helper_1.helper.promisify(removeFolder);
const debugLauncher = debug('puppeteer:launcher');
class BrowserRunner {

@@ -146,3 +124,3 @@ constructor(executablePath, processArguments, tempDirectory) {

try {
rimraf_1.default.sync(this._tempDirectory);
removeFolder.sync(this._tempDirectory);
}

@@ -149,0 +127,0 @@ catch (error) { }

@@ -19,8 +19,8 @@ "use strict";

*/
const EventEmitter_1 = require("./EventEmitter");
const EventEmitter = require("events");
const helper_1 = require("./helper");
const Events_1 = require("./Events");
const HTTPRequest_1 = require("./HTTPRequest");
const Response_1 = require("./Response");
class NetworkManager extends EventEmitter_1.EventEmitter {
const HTTPResponse_1 = require("./HTTPResponse");
class NetworkManager extends EventEmitter {
constructor(client, ignoreHTTPSErrors, frameManager) {

@@ -206,3 +206,3 @@ super();

_handleRequestRedirect(request, responsePayload) {
const response = new Response_1.Response(this._client, request, responsePayload);
const response = new HTTPResponse_1.HTTPResponse(this._client, request, responsePayload);
request._response = response;

@@ -221,3 +221,3 @@ request._redirectChain.push(request);

return;
const response = new Response_1.Response(this._client, request, event.response);
const response = new HTTPResponse_1.HTTPResponse(this._client, request, event.response);
request._response = response;

@@ -224,0 +224,0 @@ this.emit(Events_1.Events.NetworkManager.Response, response);

@@ -17,26 +17,7 @@ "use strict";

*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Page = void 0;
const fs = __importStar(require("fs"));
const EventEmitter_1 = require("./EventEmitter");
const mime = __importStar(require("mime"));
const fs = require("fs");
const EventEmitter = require("events");
const mime = require("mime");
const Events_1 = require("./Events");

@@ -51,3 +32,3 @@ const Connection_1 = require("./Connection");

const Coverage_1 = require("./Coverage");
const Worker_1 = require("./Worker");
const WebWorker_1 = require("./WebWorker");
const JSHandle_1 = require("./JSHandle");

@@ -91,3 +72,3 @@ const Accessibility_1 = require("./Accessibility");

}
class Page extends EventEmitter_1.EventEmitter {
class Page extends EventEmitter {
constructor(client, target, ignoreHTTPSErrors) {

@@ -125,3 +106,3 @@ super();

const session = Connection_1.Connection.fromSession(client).session(event.sessionId);
const worker = new Worker_1.Worker(session, event.targetInfo.url, this._addConsoleMessage.bind(this), this._handleException.bind(this));
const worker = new WebWorker_1.WebWorker(session, event.targetInfo.url, this._addConsoleMessage.bind(this), this._handleException.bind(this));
this._workers.set(event.sessionId, worker);

@@ -128,0 +109,0 @@ this.emit(Events_1.Events.Page.WorkerCreated, worker);

"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });

@@ -41,7 +19,7 @@ exports.Puppeteer = void 0;

*/
const Launcher_1 = __importDefault(require("./Launcher"));
const Launcher_1 = require("./Launcher");
const BrowserFetcher_1 = require("./BrowserFetcher");
const Errors_1 = require("./Errors");
const DeviceDescriptors_1 = require("./DeviceDescriptors");
const QueryHandler = __importStar(require("./QueryHandler"));
const QueryHandler = require("./QueryHandler");
class Puppeteer {

@@ -48,0 +26,0 @@ constructor(projectRoot, preferredRevision, isPuppeteerCore, productName) {

@@ -21,3 +21,3 @@ "use strict";

const Page_1 = require("./Page");
const Worker_1 = require("./Worker");
const WebWorker_1 = require("./WebWorker");
class Target {

@@ -33,3 +33,3 @@ constructor(targetInfo, browserContext, sessionFactory, ignoreHTTPSErrors, defaultViewport) {

this._pagePromise = null;
/** @type {?Promise<!PuppeteerWorker>} */
/** @type {?Promise<!WebWorker>} */
this._workerPromise = null;

@@ -73,3 +73,3 @@ this._initializedPromise = new Promise((fulfill) => (this._initializedCallback = fulfill)).then(async (success) => {

// TODO(einbinder): Make workers send their console logs.
this._workerPromise = this._sessionFactory().then((client) => new Worker_1.Worker(client, this._targetInfo.url, () => { } /* consoleAPICalled */, () => { } /* exceptionThrown */));
this._workerPromise = this._sessionFactory().then((client) => new WebWorker_1.WebWorker(client, this._targetInfo.url, () => { } /* consoleAPICalled */, () => { } /* exceptionThrown */));
}

@@ -76,0 +76,0 @@ return this._workerPromise;

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });

@@ -22,3 +19,3 @@ exports.WebSocketTransport = void 0;

*/
const ws_1 = __importDefault(require("ws"));
const NodeWebSocket = require("ws");
class WebSocketTransport {

@@ -42,3 +39,3 @@ constructor(ws) {

return new Promise((resolve, reject) => {
const ws = new ws_1.default(url, [], {
const ws = new NodeWebSocket(url, [], {
perMessageDeflate: false,

@@ -45,0 +42,0 @@ maxPayload: 256 * 1024 * 1024,

{
"name": "puppeteer-core",
"version": "3.2.0",
"version": "3.3.0",
"description": "A high-level API to control headless Chrome over the DevTools Protocol",

@@ -50,3 +50,2 @@ "main": "index.js",

"mime": "^2.0.3",
"mitt": "^2.0.1",
"progress": "^2.0.1",

@@ -53,0 +52,0 @@ "proxy-from-env": "^1.0.0",

@@ -9,3 +9,3 @@ # Puppeteer

###### [API](https://github.com/puppeteer/puppeteer/blob/v3.2.0/docs/api.md) | [FAQ](#faq) | [Contributing](https://github.com/puppeteer/puppeteer/blob/master/CONTRIBUTING.md) | [Troubleshooting](https://github.com/puppeteer/puppeteer/blob/master/docs/troubleshooting.md)
###### [API](https://github.com/puppeteer/puppeteer/blob/v3.3.0/docs/api.md) | [FAQ](#faq) | [Contributing](https://github.com/puppeteer/puppeteer/blob/master/CONTRIBUTING.md) | [Troubleshooting](https://github.com/puppeteer/puppeteer/blob/master/docs/troubleshooting.md)

@@ -41,3 +41,3 @@ > Puppeteer is a Node library which provides a high-level API to control Chrome or Chromium over the [DevTools Protocol](https://chromedevtools.github.io/devtools-protocol/). Puppeteer runs [headless](https://developers.google.com/web/updates/2017/04/headless-chrome) by default, but can be configured to run full (non-headless) Chrome or Chromium.

Note: When you install Puppeteer, it downloads a recent version of Chromium (~170MB Mac, ~282MB Linux, ~280MB Win) that is guaranteed to work with the API. To skip the download, or to download a different browser, see [Environment variables](https://github.com/puppeteer/puppeteer/blob/v3.2.0/docs/api.md#environment-variables).
Note: When you install Puppeteer, it downloads a recent version of Chromium (~170MB Mac, ~282MB Linux, ~280MB Win) that is guaranteed to work with the API. To skip the download, or to download a different browser, see [Environment variables](https://github.com/puppeteer/puppeteer/blob/v3.3.0/docs/api.md#environment-variables).

@@ -68,3 +68,3 @@

Puppeteer will be familiar to people using other browser testing frameworks. You create an instance
of `Browser`, open pages, and then manipulate them with [Puppeteer's API](https://github.com/puppeteer/puppeteer/blob/v3.2.0/docs/api.md#).
of `Browser`, open pages, and then manipulate them with [Puppeteer's API](https://github.com/puppeteer/puppeteer/blob/v3.3.0/docs/api.md#).

@@ -94,3 +94,3 @@ **Example** - navigating to https://example.com and saving a screenshot as *example.png*:

Puppeteer sets an initial page size to 800×600px, which defines the screenshot size. The page size can be customized with [`Page.setViewport()`](https://github.com/puppeteer/puppeteer/blob/v3.2.0/docs/api.md#pagesetviewportviewport).
Puppeteer sets an initial page size to 800×600px, which defines the screenshot size. The page size can be customized with [`Page.setViewport()`](https://github.com/puppeteer/puppeteer/blob/v3.3.0/docs/api.md#pagesetviewportviewport).

@@ -120,3 +120,3 @@ **Example** - create a PDF.

See [`Page.pdf()`](https://github.com/puppeteer/puppeteer/blob/v3.2.0/docs/api.md#pagepdfoptions) for more information about creating pdfs.
See [`Page.pdf()`](https://github.com/puppeteer/puppeteer/blob/v3.3.0/docs/api.md#pagepdfoptions) for more information about creating pdfs.

@@ -156,3 +156,3 @@ **Example** - evaluate script in the context of the page

See [`Page.evaluate()`](https://github.com/puppeteer/puppeteer/blob/v3.2.0/docs/api.md#pageevaluatepagefunction-args) for more information on `evaluate` and related methods like `evaluateOnNewDocument` and `exposeFunction`.
See [`Page.evaluate()`](https://github.com/puppeteer/puppeteer/blob/v3.3.0/docs/api.md#pageevaluatepagefunction-args) for more information on `evaluate` and related methods like `evaluateOnNewDocument` and `exposeFunction`.

@@ -166,3 +166,3 @@ <!-- [END getstarted] -->

Puppeteer launches Chromium in [headless mode](https://developers.google.com/web/updates/2017/04/headless-chrome). To launch a full version of Chromium, set the [`headless` option](https://github.com/puppeteer/puppeteer/blob/v3.2.0/docs/api.md#puppeteerlaunchoptions) when launching a browser:
Puppeteer launches Chromium in [headless mode](https://developers.google.com/web/updates/2017/04/headless-chrome). To launch a full version of Chromium, set the [`headless` option](https://github.com/puppeteer/puppeteer/blob/v3.3.0/docs/api.md#puppeteerlaunchoptions) when launching a browser:

@@ -183,3 +183,3 @@ ```js

You can also use Puppeteer with Firefox Nightly (experimental support). See [`Puppeteer.launch()`](https://github.com/puppeteer/puppeteer/blob/v3.2.0/docs/api.md#puppeteerlaunchoptions) for more information.
You can also use Puppeteer with Firefox Nightly (experimental support). See [`Puppeteer.launch()`](https://github.com/puppeteer/puppeteer/blob/v3.3.0/docs/api.md#puppeteerlaunchoptions) for more information.

@@ -196,3 +196,3 @@ See [`this article`](https://www.howtogeek.com/202825/what%E2%80%99s-the-difference-between-chromium-and-chrome/) for a description of the differences between Chromium and Chrome. [`This article`](https://chromium.googlesource.com/chromium/src/+/master/docs/chromium_browser_vs_google_chrome.md) describes some differences for Linux users.

- [API Documentation](https://github.com/puppeteer/puppeteer/blob/v3.2.0/docs/api.md)
- [API Documentation](https://github.com/puppeteer/puppeteer/blob/v3.3.0/docs/api.md)
- [Examples](https://github.com/puppeteer/puppeteer/tree/master/examples/)

@@ -324,3 +324,3 @@ - [Community list of Puppeteer resources](https://github.com/transitive-bullshit/awesome-puppeteer)

From Puppeteer v2.1.0 onwards you can specify [`puppeteer.launch({product: 'firefox'})`](https://github.com/puppeteer/puppeteer/blob/v3.2.0/docs/api.md#puppeteerlaunchoptions) to run your Puppeteer scripts in Firefox Nightly, without any additional custom patches. While [an older experiment](https://www.npmjs.com/package/puppeteer-firefox) required a patched version of Firefox, [the current approach](https://wiki.mozilla.org/Remote) works with “stock” Firefox.
From Puppeteer v2.1.0 onwards you can specify [`puppeteer.launch({product: 'firefox'})`](https://github.com/puppeteer/puppeteer/blob/v3.3.0/docs/api.md#puppeteerlaunchoptions) to run your Puppeteer scripts in Firefox Nightly, without any additional custom patches. While [an older experiment](https://www.npmjs.com/package/puppeteer-firefox) required a patched version of Firefox, [the current approach](https://wiki.mozilla.org/Remote) works with “stock” Firefox.

@@ -421,3 +421,3 @@ We will continue to collaborate with other browser vendors to bring Puppeteer support to browsers such as Safari.

* Puppeteer is bundled with Chromium — not Chrome — and so by default, it inherits all of [Chromium's media-related limitations](https://www.chromium.org/audio-video). This means that Puppeteer does not support licensed formats such as AAC or H.264. (However, it is possible to force Puppeteer to use a separately-installed version Chrome instead of Chromium via the [`executablePath` option to `puppeteer.launch`](https://github.com/puppeteer/puppeteer/blob/v3.2.0/docs/api.md#puppeteerlaunchoptions). You should only use this configuration if you need an official release of Chrome that supports these media formats.)
* Puppeteer is bundled with Chromium — not Chrome — and so by default, it inherits all of [Chromium's media-related limitations](https://www.chromium.org/audio-video). This means that Puppeteer does not support licensed formats such as AAC or H.264. (However, it is possible to force Puppeteer to use a separately-installed version Chrome instead of Chromium via the [`executablePath` option to `puppeteer.launch`](https://github.com/puppeteer/puppeteer/blob/v3.3.0/docs/api.md#puppeteerlaunchoptions). You should only use this configuration if you need an official release of Chrome that supports these media formats.)
* Since Puppeteer (in all configurations) controls a desktop version of Chromium/Chrome, features that are only supported by the mobile version of Chrome are not supported. This means that Puppeteer [does not support HTTP Live Streaming (HLS)](https://caniuse.com/#feat=http-live-streaming).

@@ -424,0 +424,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc