Commit Graph

932 Commits

Author SHA1 Message Date
JoelEinbinder
e7eacd443f test: scrub port from coverage golden files (#1723) 2018-01-04 11:47:30 -08:00
Andrey Lushnikov
f0b11ad22e
test: verify serialization of "undefined" fields (#1721)
Fixes #1510.
2018-01-04 11:30:29 -08:00
Andrey Lushnikov
3481f03b80
feat(Chromium): roll Chromium to r526987 (#1720)
This roll includes:
- https://chromium-review.googlesource.com/c/v8/v8/+/834669
  [inspector] aligned Runtime.evaluate(returnValue:true) result with json

References #1510.
2018-01-04 10:54:57 -08:00
Andrey Lushnikov
0a498bae3a
docs: update api.md
This patch clarifies when the "disconnected" event is emitted
and emphasizes the difference between Chromium and browser.

References #1589.
2018-01-04 02:27:57 -08:00
Andrey Lushnikov
24354a4879
feat: implement CSS Coverage (#1714)
This patch adds two new methods to the `page.coverage` namespace:
- `page.coverage.startCSSCoverage()` - to initiate css coverage
- `page.coverage.stopCSSCoverage()` - to stop css coverage

The coverage format is consistent with the JavaScript coverage.
2018-01-03 18:21:40 -08:00
JoelEinbinder
f183664d0f feat: rename page.xpath into page.$x, return an array of elements (#1713)
Fixes #1705.
2018-01-03 15:37:08 -08:00
Andrey Lushnikov
d062381978
feat: Implement JavaScript Coverage (#1673)
This patch introduces a new `page.coverage` namespace with two methods:
- `page.coverage.startJSCoverage` to initiate JavaScript coverage
  recording
- `page.coverage.stopJSCoverage` to stop JavaScript coverage and get
  results
2018-01-02 19:53:53 -08:00
JoelEinbinder
bd73e4b7b8 chore: use unique version for puppeteer@next (#1688)
This patch starts amending package.json with a unique puppeteer@next version
so that it gets published on npm.
2017-12-28 17:19:13 -08:00
Andrey Lushnikov
05f4f943f0
test: add server/run.js that runs assets locally (#1687) 2017-12-28 15:51:41 -08:00
Andrey Lushnikov
508a78d99b
test: prohibit focused tests/suites on bots (#1686) 2017-12-28 15:41:57 -08:00
Andrey Lushnikov
16dc037fc0
chore: update credentials for puppeteer@next auto-deploy (#1685) 2017-12-28 14:49:27 -08:00
yujiosaka
e32fdcb5bc chore(issue template): Add Node.js version to Issue template(#1683) (#1684) 2017-12-28 14:24:51 -08:00
JoelEinbinder
d82402a987 test: add dblclick input test (#1675) 2017-12-28 11:34:03 -08:00
JoelEinbinder
4f6d3954cd chore: puppeteer@next attempt 2 (#1677)
This patch:
- removes the "tags: true" field, we want to publish every commit
- makes sure we publish from node7 only
- prebuilds node6 before publishing
2017-12-28 10:40:38 -08:00
Andrey Lushnikov
83fb29d4e7
docs: use less confusing synonym
This change was suggested in #1636.
2017-12-27 19:35:14 -08:00
Thomas Broadley
efbc52a4b7 docs: fix typos (#1647) 2017-12-27 20:04:11 -07:00
yujiosaka
35a5d8bba9 chore(NavigationWatcher): correct closure annotation (#1658) 2017-12-27 20:00:37 -07:00
JoelEinbinder
bf3e0cca57 docs: add missing session cookie property to api.md (#1672)
The session value is returned from the protocol, but not accepted as a cookie parameter.

Fixes #980.
2017-12-27 19:58:57 -07:00
Andrey Lushnikov
02720e4f22
test: do not leave dangling listener on shared browser object (#1674)
This resulted in quite a few failures on travis.
2017-12-27 19:38:33 -07:00
JoelEinbinder
e7bcc05554 chore: push successful travis builds to npm as puppeteer@next (#1671) 2017-12-27 18:19:48 -07:00
Andrey Lushnikov
fc2fc0de5d
test: run chrome with --disable-dev-shm-usage (#1633)
This might speedup tests on CI.
2017-12-21 16:29:00 -08:00
xcold
b2389b0734 feat(emulation): add iPhone X and iPhone X landscape (#1631)
This patch adds iPhone X and iPhone X landscape to emulation devices.
2017-12-20 00:30:40 -08:00
JoelEinbinder
8a40cd5eef feat(Launcher): allow the default arguments to be overridden (#1623)
This patch:
- adds `puppeteer.defaultArgs()` method to get default arguments that are used to launch chrome
- adds `ignoreDefaultArgs` option to `puppeteer.launch` to avoid using default puppeteer arguments

Fixes #872
2017-12-19 17:51:21 -08:00
Audrius Jakumavicius
f8040cb2a2 feat(pdf): add headerTemplate and footerTemplate to available PDF options (#1625)
This patch allows specifying header and footer templates for PDF printing.

Fixes #373.
2017-12-19 16:54:34 -08:00
Andrey Lushnikov
48f5f2ef55
feat(Chromium): roll chromium to 524617 (#1630)
This patch rolls chromium to r524617. This roll includes:
- http://crrev.com/523674 - Headless printing: refactor print template
  to allow header/footer customization.

References #373
2017-12-19 16:53:08 -08:00
Andrey Lushnikov
671d464a98
test: await all navigations in tests (#1629) 2017-12-19 16:28:39 -08:00
JoelEinbinder
60ba8c3af9 feat: add page.xpath (#1620)
This patch adds xpath support with the following methods:
- page.xpath
- frame.xpath
- elementHandle.xpath

Fixes #537
2017-12-19 16:23:45 -08:00
Eric Bidelman
1684104dc3 docs(troubleshooting.md): add missing temp missing shared lib (#1628)
Fixes #1627.
2017-12-19 16:11:55 -08:00
Andrey Lushnikov
b73737302a
fix: convert all getters to methods (#1621)
The patch converts all the getters in the codebase into the methods.
For example, the `request.url` getter becomes the `request.url()`
method.

This is done in order to unify the API and make it more predictable.
The general rule for all further changes would be:
- there are no getters/fields exposed in the api
- the only exceptions are "namespaces", e.g. `page.keyboard`

Fixes #280.

BREAKING CHANGE:
This patch ditches getters and replaces them with methods throughout
the API. The following methods were added instead of the fields:
- dialog.type()
- consoleMessage.args()
- consoleMessage.text()
- consoleMessage.type()
- request.headers()
- request.method()
- request.postData()
- request.resourceType()
- request.url()
- response.headers()
- response.ok()
- response.status()
- response.url()
2017-12-18 17:05:57 -08:00
David Dios
10f3b92304 test: Fix broken Tracing unit tests (#1613)
This patch fixes broken Tracing tests which are failing since the `state.parallel` -> `state.parallelIndex` modification of #1531
2017-12-18 10:49:01 -08:00
Jih-Chi Lee
18d5cfa269 fix(Cookies): disallow setting cookies in 'about:blank' page (#1567)
This patch asserts that no cookies are set on `about:blank` and `data:` urls.

References #1411
2017-12-16 01:17:20 -08:00
Andrey Lushnikov
be438c59c1
chore(testrunner): support first-class test debugging (#1606)
This patch teaches testrunner to override both timeout and
parallel execution option if there's attached inspector.
2017-12-15 14:25:06 -08:00
Andrey Lushnikov
a3a3774926
test: nicer matchers output (#1605)
This patch improves matchers to provide more information once
some of them fail.
2017-12-15 14:14:27 -08:00
Eric Bidelman
cb1cb695a5 chore(search) - search developers.google.com for "Headess chrome" articles (#1586)
Adds back a search demo. I chose developers.google.com b/c the protocol viewer uses shadow dom. Gets a bit confusing.

Fixes #1578
2017-12-14 19:13:27 -08:00
yujiosaka
4c588818a8 doc: Add headless-chrome-crawler to example's README (#1585)
Fixes #1582
2017-12-14 19:10:25 -08:00
Karl Brown
63f7e38077 docs(README.md): Update docs to more clearly differentiate between Chromium and Chrome (#1574)
This patch clarifies the documentation to more clearly note that Puppeteer works with both Chromium (by default)
and Chrome.

Fixes #1516
2017-12-14 19:09:48 -08:00
Andrey Lushnikov
a5db6d412c
test: migrate test.js to support concurrent test execution (#1531)
This patch migrates tests so that they can be run concurrently.

- By default, tests still run in one thread.
- To run tests in 4 parallel threads, run node test/test.js -j 4 or npm run unit -- -j 4
- Environment variable PPTR_PARALLEL_TESTS could be set to override default parallelization

Every test gets passed in a state. State is set up in the beforeAll and beforeEach callbacks,
and should be teared down in the afterAll and afterEach callbacks.

By default, state has a parallelIndex variable initialized that defines the thread index that runs the execution.
2017-12-12 13:34:21 -08:00
Andrey Lushnikov
4eaf52fa1d
feat(Browser): introduce browser.process() variable (#1581)
This patch adds a `browser.process()` getter to expose the child process
with running browser.

Fixes #1539.
2017-12-11 12:11:12 -08:00
JoelEinbinder
a164524c72 feat(Connection): nicer stack traces on protocol errors (#1383)
This rewrites protocol errors to have the stack trace of the call site.
2017-12-08 19:05:46 -08:00
Andrey Lushnikov
ea5da00755
chore: remove search.js example (#1564)
The example is violating the TOS of google.com

Fix #1557
2017-12-08 19:04:09 -08:00
Andrey Lushnikov
f19e2ade0d
feat(install): build node6 support when installing from github (#1562)
This patch starts building node6 support if puppeteer is installed from
github directly and is run under Node 6.
2017-12-08 16:53:12 -08:00
Andrey Lushnikov
fc1f15e251
test(testrunner): fix the 'timeout: 0' test runner setting (#1561) 2017-12-08 16:44:24 -08:00
Andrey Lushnikov
391d1abaa7
chore: generalize node6 transpilation (#1560)
This patch unifies node6 transpilation:
- instead of generating multiple top-level directories, prefixed with
  `node6-`, all transpiled code gets placed under single `node6/` folder
- transpilation doesn't change require paths of transpiled modules any
  more
2017-12-08 15:14:28 -08:00
Andrey Lushnikov
9a5086847c
refactor: move ChromiumDownloader under lib/ (#1554)
This patch:
- renames ChromiumDownloader into just Downloader (this is in
  preparation for different products download)
- moves Downloader from utils/ to lib/. This unifies all of the
  production-critical code in the lib/.

Drive-by: make Downloader a regular class.
2017-12-08 13:39:13 -08:00
Andrey Lushnikov
11d94525c8
chore: fix appveyor build (#1558)
This patch:
- starts using '&&' instead of '&' so that any failed commands results
  in build failure
- removes test-node6-transformer step from the node6 target
2017-12-08 12:12:30 -08:00
Andrey Lushnikov
e6725e15af
tests: drop jasmine test runner (#1519)
This patch introduces a tiny test runner to run puppeteer tests.
The test runner is self-container and allows parallel (wrt IO) test execution.
It will also allow us to split tests into multiple files if necessary.

Comparing to the jasmine, the testrunner supports parallel execution, properly
handles "unhandled promise rejection" event and signals.

Comparing to ava/jest, the testrunner doesn't run multiple node processes,
which makes it simpler but sufficient for our goals.
2017-12-07 16:37:22 -08:00
JoelEinbinder
c4083f0692 feat(Chromium): roll Chromium to r522446 (#1499)
This roll includes:
- https://crrev.com/520341 DevTools: Network.getCookies should return -1 for null expiry dates
- https://crrev.com/522417 Fix flaky SyntheticMouseEventTest.MouseEventAc

Fixes #1350
2017-12-07 13:40:02 -08:00
Trent Willis
696f59e890 docs(api.md): Note that Browser and Page extend from EventEmitter (#1541)
Adds notes to the API documentation that Browser and Page classes
are EventEmitters. Provides an example of using `.once` for Page.

Fixes #1231
2017-12-05 23:53:27 -08:00
Mickael GOETZ
16320b7ac2 fix(Page.screenshot): prioritize screenshot type over filename extension (#1526)
For the `page.screenshot` command, this patch starts prioritizing `options.type` option over the type inferred from `options.path`

Fixes #1492.
2017-12-04 14:04:36 -08:00
JoelEinbinder
9fc39a4c97 test: disable 'userDataDir option should restore cookies' (#1538)
References #1537
2017-12-04 13:45:56 -08:00