Commit Graph

522 Commits

Author SHA1 Message Date
Andrey Lushnikov
c46c41d89c fix(Launcher): Launcher should handle chrome process errors (#863)
Fixes #750
2017-09-29 12:21:24 -07:00
Andrey Lushnikov
cb280c526d fix(Launcher): Terminate chrome gracefully on Windows (#876)
This patch starts using taskkill program on windows to gracefully
terminate chrome.

Note: this slows down chrome shutdown on Windows in case of using
custom userDataDir. This is because chrome takes some time to shutdown
its operations and leave profile directory in a consistent state.

Fixes #839.
2017-09-29 11:41:11 -07:00
Andrey Lushnikov
f6255029bd feat(Console): Introduce ConsoleMessage type (#909)
This patch introduces ConsoleMessage type and starts dispatching
it for the 'console' event.

BREAKING CHANGE: this breaks the api of the 'console' event.

Fixes #744.
2017-09-29 11:27:22 -07:00
Andrey Lushnikov
cfece3451d fix(Network): Do not attempt to normalize malformed URLs. (#875)
This patch avoids throwing 'url malformed' error during generating
request hash for request interception.

Fixes #869.
2017-09-29 08:29:19 +09:00
Eric Bidelman
ec760ab5e3 chore: update yarn lock (#889) 2017-09-27 19:33:16 +09:00
Andrey Lushnikov
72161c475d [roll] Roll chromium to r503964 (#878)
This patch rolls chromium to r503964.

Note: since the plznavigate is not supported by puppeteer right now, the
patch also starts passing the `--disable-browser-side-navigation` flag.
This is a temporary work around for us.

References #877.
2017-09-27 10:37:31 +09:00
Jake Ginnivan
0164b7cc4e Added info on how to find the browserWSEndpoint (#780) 2017-09-26 07:04:09 -07:00
Andrey Lushnikov
9b0a06216e [docs] clarify env variables usage with npmrc 2017-09-26 11:15:18 +09:00
gordomium
2babcb0021 [feat] Support PUPPETEER_SKIP_CHROMIUM_DOWNLOAD in npmrc
This patch adds support for PUPPETEER_SKIP_CHROMIUM_DOWNLOAD
variable in npm config.

This aligns the variable with the rest of supported environment variables.
2017-09-26 11:10:46 +09:00
Alix Axel
45f264024b [api] Introduce Page.select method (#779)
This patch adds `Page.select` method to select
values in a `select` tag.
2017-09-25 18:23:34 +09:00
Vse Mozhet Byt
acdb588964 doc: fix a link (#856) 2017-09-22 16:16:52 -07:00
Eric Bidelman
ccf8fb1681 readme: add try-puppeteer link (#849) 2017-09-21 18:01:48 -07:00
Eric Bidelman
c2b3fe91ed Remove --no-sandbox from Docker example (#838)
* Remove --no-sandbox from Docker example

* Update troubleshooting.md
2017-09-21 09:18:35 -07:00
Andrey Lushnikov
bc4aefaf9f Bump version to 0.12.0-alpha 2017-09-21 15:08:39 +09:00
Andrey Lushnikov
433b17b5d2 Mark version 0.11.0 2017-09-21 14:43:21 +09:00
Vse Mozhet Byt
715296443c Document headless mode restriction for PDF (#836)
Fixes: https://github.com/GoogleChrome/puppeteer/issues/830
2017-09-20 16:51:25 -07:00
Adi Prasetyo
611f51bda5 [doc] Fix thal link (#806)
This patch adds missing protocol to the link in example's README.md
2017-09-18 06:53:36 -07:00
cohesively
aa58f25bc1 doc: add await to browser.close in usage examples (#797)
browser.close returns a promise after f398e69, so it should be awaited.
2017-09-15 21:27:14 -07:00
JoelEinbinder
e2cad568d6 page.waitFor should send ...args to page.waitForFunction (#775)
This lets the user pass `...args` into `page.waitFor`. It also clarifies that the docs that `options` is not optional if `...args` are specified.

Fixes #770
2017-09-15 14:28:15 -07:00
Andrey Lushnikov
d562db3140 Assert that all extra HTTP header values are strings (#781)
Since protocol ignores all HTTP headers that don't have string
value, this patch starts validating header key-values before
sending them over the protocol.

Fixes #713.
2017-09-14 19:08:48 -07:00
Andrey Lushnikov
86b05dadd5 disable extensions and google translate by default (#774)
This patch teaches `puppeteer.launch` to run chromium with disabled
chrome extensions and google translate services.

References #760
2017-09-14 19:07:22 -07:00
Adi Prasetyo
a20df0df62 [Doc] add link to environment variable wiki page (#792) 2017-09-14 11:44:18 -07:00
Andrey Lushnikov
166c909ab2 [tests] fix a few tests to avoid unhandled promise rejection (#778)
A few tests were not waiting for navigation to complete.
2017-09-13 22:52:43 -07:00
JoelEinbinder
f398e69dbb [api] Launcher: Close gracefully when a userDataDir is specified (#700)
This patch:
- makes `browser.close()` return a promise that resolves when browser gets closed
- starts closing chrome gracefully if a custom `userDataDir` is supplied

Fixes #527
2017-09-13 21:27:14 -07:00
Andrey Lushnikov
d7e673645a [api] add Puppeteer.executablePath() method (#771)
This patch adds Puppeteer.executablePath() method to query the path
of bundled chromium.

Fixes #745
2017-09-13 17:39:18 -07:00
JoelEinbinder
89e923d5f0 Fix cookies test on windows (#772)
The `username` and `password` cookies showed up in the wrong order on Windows, causing the test to fail.
2017-09-13 17:30:25 -07:00
Andrey Lushnikov
010872012f Cleanup tests (#769)
This patch:
- cleans up a bunch of try-catch statements in favor of a concise pattern
- renames "Browser" test suite into "Puppeteer" test suite
2017-09-13 12:06:57 -07:00
Jon Tewksbury
9779085b7c Add info about deploying puppeteer to Heroku (#762) 2017-09-12 09:54:30 -07:00
Andrey Lushnikov
9292a56eaf [api] Teach page.evaluate to accept element handles as parameters (#725)
This patch:
- teaches `page.evaluate` to accept ElementHandles as parameters
- removes `ElementHandle.evaluate` method since it's not needed any
  more

References #382
2017-09-11 19:20:02 -07:00
Andrey Lushnikov
69e707a2b7 Build node6 before running tests for it (#757)
Fix #756
2017-09-11 18:03:51 -07:00
Andrey Lushnikov
a71f287c6b Fix evaluation in case of first "undefind" argument (#732)
It turns out that [undefined, 1].join(',') results in ",1" instead
of "undefined,1". This causes a syntax error when trying to pass undefined
as a first argument to `page.evaluate` method.

Fixes #572.
2017-09-11 16:59:38 -07:00
Andrey Lushnikov
e5c17eecb9 Carefully manage unhandled rejections for navigation (#741)
Currently, navigation watcher throws exception if timeout
is exceeded.

Due to the way it is used in `page.navigate`, the promise
get's rejected before it is awaited, which is considered to
be "unhandled promise rejection".

Fixes #738
2017-09-11 16:43:37 -07:00
Andrey Lushnikov
0db6165d73 [api] Implement page.authenticate method (#729)
This patch implements `page.authenticate` which should cover all
cases of HTTP authentication.

Fixes #426.
2017-09-11 16:32:13 -07:00
Andrey Lushnikov
0bea42bd8c Do not leave dangling promises when sending messages over protocol (#742)
It's very bad to have 'unhandled promise rejection' that can't be
handled in user code. These errors will exit node process in a near
future.

This patch avoids 'unhandled promise rejection' while sending protocol
messages.

This patch:
- introduces `puppeteer:error` debug scope and starts using it for all
  swalloed errors.
- makes sure that every `client.send` method is either awaited or its
  errors are handled.
- starts return promises from Request.continue() and Request.abort().
- starts swallow errors from Request.contine() and Request.abort().

The last is the most important part of the patch. Since
`Request.continue()` might try to continue canceled request, we should
disregard the error.

Fixes #627.
2017-09-11 16:21:51 -07:00
Eric Bidelman
f11e09d0d4 resources.md -> readme.md so it renders on /examples (#753)
* resources.md -> index.md so it renders on /examples

* Rename index.md to README.md
2017-09-11 11:41:48 -07:00
Alessio Occhipinti
568b7bd47d Proposal: adding RESOURCES.md for examples (#743)
* Create RESOURCES.md

* Update RESOURCES.md
2017-09-11 11:34:06 -07:00
Eric Bidelman
30541cc087 block-images example: use reuters.com (#747)
Due to https://github.com/GoogleChrome/puppeteer/issues/746. The screenshot news.google.com isn't "full page", so that may be confusing to folks.
2017-09-11 10:16:57 -07:00
Andrey Lushnikov
c4a3d44221 Roll chromium to r499413 (#731)
The new chromium:
- supports executionContextId in Runtime.callFunctionOn protocol method
- supports passing objects as arguments in Runtime.callFuntionOn
  protocol method

This roll also fixes #487.
2017-09-09 09:48:09 -07:00
Andrey Lushnikov
d791583ae5 [tests] Skip flaky test (#730)
Reference #673
2017-09-08 23:42:06 -07:00
Andrey Lushnikov
b8bb80a089 support npm proxy configuration for the installation script (#692)
This patch starts supporting NPM proxy configuration in the installation script.
If both NPM proxy and environment proxy are set, NPM proxy settings are preferred.

Fixes #648
2017-09-08 23:37:22 -07:00
Eric Bidelman
8d2a427eee Docker example (#721) 2017-09-08 15:25:43 -07:00
Andrey Lushnikov
113bdafbf0 Bump version to 0.11.0-alpha 2017-09-08 13:37:47 -07:00
Eric Bidelman
272fb4d993 block-images example: switch from bbc to news.google.com (#708) 2017-09-07 12:35:52 -07:00
Eric Bidelman
d2d951d74a Better issue template (#712) 2017-09-07 12:34:52 -07:00
Eric Bidelman
eb862532f1 Issue template (#710)
* Issue template

* Update issue_template.md
2017-09-07 11:24:49 -07:00
Andrey Lushnikov
e12ce802cd Output path as chromium gets successfully downloaded (#689)
Fixes #679.
2017-09-05 18:41:21 -07:00
Eric Bidelman
51a507b236 readme: add PUPPETEER_SKIP_CHROMIUM_DOWNLOAD note (#671) 2017-09-05 11:14:58 -07:00
Andrey Lushnikov
2817130fe0 Mark version 0.10.2 2017-09-01 21:02:08 -07:00
Andrey Lushnikov
9d0ad79b47 fail installation when puppeteer errors downloading chromium (#654)
This patch starts failing npm installation when puppeteer errors downloading chromium.
2017-09-01 20:59:28 -07:00
JoelEinbinder
64124df62f [api] add touchScreen.tap (#639)
This patch:
- adds `page.touchscreen` namespace, similar to `page.mouse` and `page.keyboard`.
- adds tapping to multiple layers:
  - `page.touchscreen.tap`
  - `page.tap` - convenience method which accepts selector
  - `elementHandle.tap`

Fixes #568 and #569.
2017-09-01 19:03:51 -07:00