Commit Graph

59 Commits

Author SHA1 Message Date
Eric Bidelman
5d6d3e0a81 cleanup: Use ES6 default params (#447) 2017-08-21 16:32:39 -07:00
Andrey Lushnikov
271fd09379 Launcher: add timeout to chrome launching (#434)
This patch:
- adds a 'timeout' launcher option that constrains the time for chromium to launch.
- adds a 'handleSIGINT' launcher option that is `true` by default and that closes chrome instance

Fixes #363.
2017-08-21 15:43:36 -07:00
Andrey Lushnikov
c1731dd5d7 Fail gracefully when chromium failed to download (#430)
Fail gracefully when chromium failed to download

This patch changes both install.js and Launcher.js to inform how
chromium could be downloaded manually.
2017-08-21 13:34:10 -07:00
Andrey Lushnikov
fcb8ab9cd7 Add troubleshooting.md (#428)
This patch adds troubleshooting.md and starts referring to it if puppeteer 
fails to launch chromium.
2017-08-20 19:46:13 -07:00
Andrey Lushnikov
ae14c1eee4 Use randomized folder names for user profile directories (#364)
This will make it much harder for puppeteer browsers to collide
on profile directories.

Fixes #360
2017-08-17 23:18:08 -07:00
JoelEinbinder
1ca7849017 Mute audio in headless, closes #350 (#355)
This patch adds the `--mute-audio` flag if chromium is launched in headless
mode.
2017-08-17 20:54:16 -07:00
Andrey Lushnikov
0a190ebec9 Rename 'remoteDebuggingURL' into 'browserWSEndpoint' (#272) 2017-08-16 01:10:55 -07:00
Andrey Lushnikov
a424f5613a Introduce Puppeteer.connect method (#264)
This patch:
- refactors Connection to use a single remote debugging URL instead of a
  pair of port and browserTargetId
- introduces Puppeteer.connect() method to attach to already running
  browser instance.

Fixes #238.
2017-08-15 14:29:42 -07:00
Andrey Lushnikov
13e8580a34 Use puppeteer.launch instead of browser constructor (#255)
This patch:
- split browser launching logic from Browser into `lib/Launcher.js`
- introduce `puppeteer` namespace which currently has a single `launch`
  method to start a browser

With this patch, the browser is no longer created with the `new
Browser(..)` command. Instead, it should be "launched" via the
`puppeteer.launch` method:

```js
const puppeteer = require('puppeteer');
puppeteer.launch().then(async browser => {
  ...
});
```

With this approach browser instance lifetime matches the lifetime of
actual browser process. This helps us:
- remove proxy streams, e.g. browser.stderr and browser.stdout
- cleanup browser class and make it possible to connect to remote
  browser
- introduce events on the browser instance, e.g. 'page' event. In case
  of lazy-launching browser, we should've launch browser when an event
  listener is added, which is unneded comlpexity.
2017-08-14 18:08:06 -07:00