Commit Graph

1729 Commits

Author SHA1 Message Date
Andrey Lushnikov
8802253e13
chore: bump version to v1.6.0-post () 2018-07-12 18:11:51 -07:00
Andrey Lushnikov
3762de7b91
chore: mark version v1.6.0 () 2018-07-12 17:26:57 -07:00
Andrey Lushnikov
66fa0d3d53
test: cleanup page.waitForRequest/page.waitForResponse tests ()
This patch removes unnecessary regexp tests and unifies all tests
between each other.
2018-07-12 15:32:18 -07:00
Matthew Shirley
726c8dc046 feat(page): introduce waitForRequest and waitForResponse methods ()
This patch introduces `page.waitForRequest` and `page.waitForResponse` helper methods.

Fixes 
2018-07-12 14:36:31 -07:00
Andrey Lushnikov
3ebbf125ff
fix(coverage): report anonymous scripts with debugger:// urls ()
Chrome DevTools shows anonymous scripts with yellow background and names
them with `debugger://VM<scriptId>` prefix.

This patch starts reporting the same debugger:// urls for anonymous
scripts in puppeteer's JS coverage. This might simplify debugging, e.g.
using `debugger;` statement to reveal the script in DevTools and later
matching it against the one in the coverage.
2018-07-11 21:05:16 -07:00
Andrey Lushnikov
254bc80811
chore: cleanup ElementHandle.isIntersectingViewport ()
This patch:
- simplifies test reusing the `offscreenbuttons.html` asset
- aligns IntersectionObserver usage with the one we have for
  `ElementHandle._scrollIntoViewIfNeeded`.
2018-07-11 21:04:36 -07:00
Pavel Pomerantsev
12bc1e1a62 feat(coverage): add an option to collect coverage of anonymous scripts ()
This patch adds `reportAnonymousScripts` option to the `coverage.startJSCoverage` method. With this option, anonymous scripts are reported as well.

Fixes 
2018-07-11 18:38:34 -07:00
Bogdan Ponomarenko
96c558d544 feat(elementhandle): introduce elementHandle.isIntersectingViewport() method. ()
This patch introduces  `elementHandle.isIntersectingViewport()` method returns
true if element is visible in the viewport.

Fixes .
2018-07-11 17:51:04 -07:00
Benjamin Atkin
4f8d00e64e docs(readme): Update README.md () 2018-07-11 17:07:27 -07:00
Fedor Korotkov
e445e1c8b8 chore(ci): disable brew auto-update () 2018-07-10 05:23:51 +03:00
Nat Zimmermann
88362f710f docs(readme.md): Fix typo () 2018-07-09 21:56:31 +03:00
Andrey Lushnikov
9313c83ad2
docs(readme): update FAQ () 2018-07-05 09:13:26 +03:00
Matthew Haughton
eb53a8fdd0 docs(api.md): Fix selector description for pages & frames () 2018-07-05 03:01:40 +03:00
Yaniv Efraim
cfc0571c1a feat: better timeout stack trace ()
fixes 
2018-07-05 02:39:09 +03:00
Joel Einbinder
22fa00a7b3 fix: wait for the chromeProcess to exit, not close () 2018-07-05 02:36:49 +03:00
Andrey Lushnikov
fb7c4e0984
docs(readme): minor nits () 2018-06-29 21:35:52 -07:00
Andrey Lushnikov
5955affab0
fix(page.click): teach puppeteer click wrapped links ()
This patch teaches Puppeteer to click elements that are
part of inline layout and that wrap on multiple lines.

Fixes .
2018-06-29 12:03:02 -07:00
Andrey Lushnikov
59e7f7ebb6
feat(chromium): roll Chromium to r571375 ()
This roll includes:
- https://crrev.com/571235 - DevTools: introduce DOM.getContentQuads protocol method

References .
2018-06-29 10:00:42 -07:00
Kaveet Laxmidas
acb89dddba docs(api.md): add note on page.pdf() color rendering behavior ()
Adds guidance for producing accurate colors in PDF output. page.pdf() can produce unexpected document colors unless forced to render exact colors.

Fixes 
2018-06-29 09:57:03 -07:00
Andrey Lushnikov
871b204fd1
refactor: simplify EmulationManager ()
EmualationManager used to be injecting touch hooks to properly
support touch emulation.

However, these are no longer necessary, since https://crbug.com/133915
is long fixed.
2018-06-28 18:48:44 -07:00
Andrey Lushnikov
c4acc63775
feat(chromium): roll Chromium to r571040 ()
This roll includes:
- https://crrev.com/570566 - DevTools: teach DOM.getBoxModel to work with SVG nodes

Fixes .
2018-06-28 13:22:52 -07:00
Andrey Lushnikov
d6741eca08
test: add test that verifies pptr works with SVG nodes ()
References 
2018-06-26 18:03:00 -07:00
Andrey Lushnikov
f55d005cbe
fix(page): teach page.click() to click partially offscreen buttons ()
Originally, we use `Element.scrollIntoViewIfNeeded` to make sure
button is on screen before trying to click it.

However, `Element.scrollIntoViewIfNeeded` doesn't work in certain
scenarios, e.g. when element is partially visible and horizontal
scrolling is required to make it fully visible.

This patch polyfills `element.scrollIntoViewIfNeeded` using
IntersectionObserver and `Element.scrollIntoView`.

Fixes .
2018-06-26 18:00:55 -07:00
Andrey Lushnikov
6ca43cf761
docs(api.md): clarify docs about waitForNavigation () 2018-06-26 13:42:50 -07:00
Yaniv Efraim
aae73f5fd7 feat(worker): implement pageerror event from a worker ()
Fixes 
2018-06-25 15:10:36 -07:00
Vse Mozhet Byt
811415bc8c docs(api.md): fix a typo () 2018-06-21 10:37:07 -07:00
Vse Mozhet Byt
3b20839ab5 docs(api.md): update note about page.goto() returned value ()
Fixes: 
2018-06-21 10:20:39 -07:00
Andrey Lushnikov
a460114945
test: fix appveyour flakiness ()
Crashpad sometimes prevents us from removing a folder in tests.

References .
2018-06-20 13:52:36 -07:00
Andrey Lushnikov
4178b989d2
test: add test that breaks subsequent page.goto ()
References .
2018-06-20 13:51:47 -07:00
Andrey Lushnikov
dcae6bcff4
feat(chromium): roll Chromium to r568432 ()
This roll includes:
- https://crrev.com/568341 - DevTools: force-create execution contexts for mixed content iframes

Fixes .
2018-06-19 13:46:08 -07:00
Fedor Korotkov
ea8ec1e567 chore(ci): Configure OSX on Cirrus CI ()
Cirrus CI recently started supporting Mac OS builds. This PR adds a CI task to test Puppeteer on MacOS.

It uses Node 8 since only [Node 6 and Node 8 are LTS](https://github.com/nodejs/Release#release-schedule) so `brew` only has receipts for those two TLS versions besides the latest one.
2018-06-19 13:03:30 -07:00
Mickael van der Beek
1064aa4476 feat(request): add new error reasons for request.abort() ()
As the title indicated, adds two allowed error codes that are specified in the Chrome Developer Tools Protocol specifications but missing from the Puppeteer enum:

https://chromedevtools.github.io/devtools-protocol/tot/Network#type-ErrorReason
2018-06-19 10:46:17 -07:00
Andrey Lushnikov
37dbfc2608
test: fix random tests flakiness ()
These tests were not awaiting `page.evaluate` command, so
page could have been closed before the command returned.
2018-06-19 10:35:13 -07:00
Joel Einbinder
f197d2e208 fix: don't pass a reference to the page into frames () 2018-06-19 00:33:45 -07:00
Aleksey
b20cde67c6 fix(page): migrate exposeFunction from console.debug to Runtime.installBinding
New way is faster and cleaner.
2018-06-18 13:41:03 -07:00
Andrey Lushnikov
af0bd15d88
test: split out ignoreHTTPSErrors tests ()
We'll get more of these soon.
2018-06-14 16:48:14 -07:00
Andrey Lushnikov
c430138845
test: drop PDF tests ()
We fully rely on upstream PDF functionality. Our PDF tests are inferior
to those upstream and inconvenient to write.
2018-06-14 16:42:10 -07:00
Andrey Lushnikov
861f070738
feat(chromium): roll Chromium to r567388 ()
This roll includes:
- https://crrev.com/567104 - DevTools: introduce Target.exposeDevToolsProtocol() method

The patch includes a drive-by fix to DevToolsAgentHostImpl that
eliminats chromium crashes in certain cases.
2018-06-14 15:54:06 -07:00
Joel Einbinder
73f9c48081 feat: nicer protocol error messages ()
This patch:
- stops appending `undefined` to our protocol messages unnecessarily.
- rewrites `Cannot find execution context id` to `Execution context was destroyed, most likely because of a navigation.` when it occurs from a Puppeteer ExecutionContext. The error message is left alone if it occurs via a CDPSession.
2018-06-14 15:27:59 -07:00
Yaniv Efraim
9a650c818d feat(element-handle): remove throw in case of empty elementHandle ()
Fixes 
2018-06-14 14:28:52 -07:00
Yaniv Efraim
38f112f395 feat(target): add support for target.page for 'backgroud_page' ()
This patch teaches `target.page()` method to attach to extension background pages.

Fixes 
2018-06-14 13:58:51 -07:00
Andrey Lushnikov
cd8d750628
fix(devicedescriptors): fix UA in DeviceDescriptors ()
This patch:
- updates `utils/fetch_devices.js` script to format UAs for Chrome UAs
  and to add iPhone 6/7/8 as separate devices.
- re-generates `DeviceDescriptors.js` with the new script

Fixes .
2018-06-14 13:55:09 -07:00
Andrey Lushnikov
ddfdaf97c5
fix(page): fix race condition in WaitTask ()
This patch eliminates a common race condition with WaitTask, that
happens when predicate function gets resolved right before the execution
context gets destroyed.
This situation results in a "Cannot find context with specified id undefined"
exception.

Credits go to @jakub300 for his wonderful [investigation](https://github.com/GoogleChrome/puppeteer/issues/1325#issuecomment-395472092).

Fixes .
2018-06-14 11:39:51 -07:00
Joel Einbinder
ed7a26cc95 feat(tracing): enable high resolution JavaScript sampling ()
I've been told that this will make our JavaScript tracing 💯x more accurate, at minimal performance loss. Let's turn it on for everyone always.

Fixes .
2018-06-14 10:33:05 -07:00
蒋璇
eca661096b docs(api.md): fix keyboard.press note about modifier keys () 2018-06-14 10:25:27 -07:00
Georgii Dolzhykov
9498b1057b fix(helpers): support thrown strings and numbers in getExceptionMessage ()
Of course, strings aren't proper errors, but scripts sometimes do that, and Puppeteer loses such error messages.
2018-06-14 10:23:13 -07:00
Georgii Dolzhykov
93e128931f test: make tests work on non-English locales ()
`Data.prototype.toString` may return non-ASCII characters, which aren't accepted by `setHeader`.

E.g., on Russian locale, it might look like this:
```
> new Date().toString()
'Thu Jun 14 2018 13:11:50 GMT+0300 (Финляндия (лето))'
```
2018-06-14 10:18:02 -07:00
Konstantin Simon Maria Möllers
1875cb4877 docs(api.md): fix return type docs of ElementHandle.$x () 2018-06-13 20:49:24 -07:00
Joel Einbinder
d481fd5147 fix(types): type FrameManager in Page.js () 2018-06-13 12:47:29 -07:00
Joel Einbinder
147f98d1f0
chore: bump version to v1.5.0-post () 2018-06-07 13:04:00 -07:00