puppeteer/lib
Maja Frydrychowicz c5a72e9887 feat(launcher): add option to run Puppeteer with different browsers (#5137)
* feat: Set which browser to launch via PUPPETEER_PRODUCT

This change introduces a PUPPETEER_PRODUCT environment
variable as a first step toward using Puppeteer with
many different browsers. Setting PUPPETEER_PRODUCT=firefox, for
example, enables Firefox-specific Launcher settings.

The state is also exposed as `puppeteer.product` in the API
to support adding other product-specific behaviour as needed.

The bulk of the change is a refactoring in Launcher
to decouple generic browser start-up from product-specific
configuration.

Respecting the puppeteer-core restriction for PUPPETEER_
environment variables, lazily instantiate the Launcher
based on a `product` Puppeteer.launch option, if available.

* test: Distinguish Juggler unit tests from Firefox

The funit script is renamed to fjunit (j for Juggler, which is
used only by the experimental puppeteer-firefox package.

In contrast, the funit script now refers to running Puppeteer
unit tests against the main puppeteer package with Firefox.
To do so with Firefox Nightly, run:

`BINARY=path/to/firefox npm run funit`

A number of changes in this patch make it easier to run
Puppeteer unit tests in Mozilla's CI.
2019-11-26 10:23:19 +01:00
..
.eslintrc.js Introduce Eslint to validate style 2017-06-11 01:32:59 -07:00
Accessibility.js feat(chromium): roll Chromium to r705776 (#5058) 2019-10-23 11:41:44 +02:00
api.js feat(page): introduce file chooser interception (#4653) 2019-07-22 21:30:49 -07:00
Browser.js feat(browser): Add browser.isConnected() (#4403) 2019-05-09 16:24:52 -07:00
BrowserFetcher.js chore: drop Node.js v6 support (#5045) 2019-10-16 17:00:20 +02:00
Connection.js chore: introduce //lib/api.js (#3835) 2019-01-25 23:21:14 -05:00
Coverage.js chore: introduce //lib/api.js (#3835) 2019-01-25 23:21:14 -05:00
DeviceDescriptors.js feat: update DeviceDescriptors to include 6.5 inch iPhone XR and similar (#4846) 2019-08-14 17:19:33 -07:00
Dialog.js chore: introduce //lib/api.js (#3835) 2019-01-25 23:21:14 -05:00
DOMWorld.js feat(api): add element.select and element.evaluate for consistency (#4892) 2019-09-04 15:19:34 -07:00
EmulationManager.js chore: upgrade to TypeScript 3.0.1 (#3024) 2018-08-06 11:31:33 -07:00
Errors.js feat: introduce puppeteer/Errors (#3056) 2018-08-09 16:51:12 -07:00
Events.js refactor: consolidate all events in Events.js (#3772) 2019-01-14 19:57:05 -08:00
ExecutionContext.js feat(chromium): roll Chromium to r705776 (#5058) 2019-10-23 11:41:44 +02:00
externs.d.ts feat(launcher): add option to run Puppeteer with different browsers (#5137) 2019-11-26 10:23:19 +01:00
FrameManager.js refactor: Pass FrameManager to NetworkManager constructor (#4907) 2019-09-04 18:11:58 -07:00
helper.js feat(launcher): add option to run Puppeteer with different browsers (#5137) 2019-11-26 10:23:19 +01:00
Input.js fix: avoid unnecessary zero-delays in input code (#4934) 2019-10-21 08:29:56 +02:00
JSHandle.js feat(api): add element.select and element.evaluate for consistency (#4892) 2019-09-04 15:19:34 -07:00
Launcher.js feat(launcher): add option to run Puppeteer with different browsers (#5137) 2019-11-26 10:23:19 +01:00
LifecycleWatcher.js chore: use map instead of plain object (#5068) 2019-10-23 13:12:33 +02:00
Multimap.js chore: upgrade to TypeScript 3.0.1 (#3024) 2018-08-06 11:31:33 -07:00
NetworkManager.js refactor: Pass FrameManager to NetworkManager constructor (#4907) 2019-09-04 18:11:58 -07:00
Page.js docs(api.md): improve page.waitFor docs for the options object (#5021) 2019-10-24 11:22:21 +02:00
PipeTransport.js fix(pipe): handle 'error' events on pipes to avoid crashing (#4705) 2019-07-15 17:53:27 -07:00
Puppeteer.js feat(launcher): add option to run Puppeteer with different browsers (#5137) 2019-11-26 10:23:19 +01:00
Target.js feat(chromium): roll Chromium to r686378 (#4841) 2019-08-14 21:43:18 -07:00
TaskQueue.js chore(types): Upgrade TypeScript to 3.2.2 (#3754) 2019-01-10 22:56:39 -08:00
TimeoutSettings.js feat(page): introduce page.setDefaultTimeout (#3854) 2019-01-28 17:16:12 -08:00
Tracing.js feat(page): move page.pdf to protocol streams (#4587) 2019-06-14 22:36:06 -07:00
USKeyboardLayout.js feat(keyboard): feature phone buttons (#4694) 2019-07-12 15:41:01 -07:00
WebSocketTransport.js fix(connection): bump websocket max received message size to 256Mb (#4571) 2019-06-14 01:05:09 -07:00
Worker.js chore: introduce //lib/api.js (#3835) 2019-01-25 23:21:14 -05:00