Commit Graph

1163 Commits

Author SHA1 Message Date
Joel Einbinder
25632133e2 feat: add option to specify the default viewport (#3005)
Fixes #1183.
2018-08-01 16:23:03 -07:00
Andrey Lushnikov
0c49bf5245
test: use new browser context for every page test (#3010)
This allows us:
- dogfood browser contexts the way we want them to be used
- simplifies the dance around service workers / cookies setting up and tier down.
2018-08-01 15:49:41 -07:00
Andrey Lushnikov
9c96a9283f
test: fix flakiness of certain extension tests (#3011) 2018-08-01 14:57:19 -07:00
Joel Einbinder
95d867aaac fix: don't emit an internal error when eval causes navigation (#3008)
When an evaluation causes a navigation, for example:
```js
await page.evaluate(() => window.reload());
```
sometimes we process the ExecutionContextDestroyed event before the ack from the evaluate. When we do get the ack from the evaluate, we try to build a JSHandle for it, and try to find the execution by id. But it is gone, and we throw an error. This patch switches createJSHandle to accept an ExecutionContext instead of just an id.

This bug was making the test `should throw a nice error after a navigation` flaky.
2018-08-01 13:53:08 -07:00
Andrey Lushnikov
e36a7ae677
chore: bump version to v1.6.2-post (#3009) 2018-08-01 13:52:34 -07:00
Paul Shibanov
fd5d95bd99 docs(troubleshooting): update Chromium package supported on Alpine (#2997) 2018-07-31 15:07:59 -07:00
Andrey Lushnikov
c018ff1555
feat(browsercontext): add BrowserContext.pages() method (#3003) 2018-07-31 13:24:29 -07:00
Nathan Shively-Sanders
25d7eff374 fix(Page): Use _pageBindings as a Map (#3001)
In accordance with its declared type, `Map<string, Function>`.
Currently, it is used as a plain old JS object. The compiler marks this
usage as an error when `noImplicitAny: true`. This change switches to
use the appropriate Map methods `has/get/set`.

Fixes #3000
2018-07-31 12:18:10 -07:00
Joel Einbinder
3335d369d3 fix: typing emoji (#2824)
This changes sendCharacter to use document.execCommand instead of sending a `'char'` event from the protocol. This is more aligned with how input would come in from emoji keyboards, and removes the 3ish byte limit on characters that can be sent which prevented larger emoji from being rendered correctly.

Emoji will still fail to type correctly if typing them into an iframe that is in shadow dom.

fixes #1096
2018-07-31 11:22:26 -07:00
Andrey Lushnikov
1931cb479e
feat(Chromium): roll Chromium to r579032 (#2989)
This patch rolls Chromium to r579032. The patch includes:
- https://crrev.com/577366 - DevTools: report redirect responses only if response interception is enabled
- https://crrev.com/577212 - DevTools: intercept requests resulting from redirects
- https://crrev.com/578934 - DevTools: Add a protocol method to insertText

Interception Logic in DevTools protocol has changed regarding redirects;
this patch migrates interceptions to dispatch "request" events based on
requestWillBeSent event.
2018-07-30 19:09:10 -07:00
Andrey Lushnikov
5bcb7cf512
test: add test with request interception and cookies (#2988)
Fixes #2970.
2018-07-30 19:05:19 -07:00
Andrey Lushnikov
862ad96bde
test: dump workers state after the test runner is terminated (#2991)
This will help us to debug the flakes on the CI.
2018-07-30 18:57:48 -07:00
Andrey Lushnikov
0c825de1f8
test: unflake page test that was causing us a lot of CI flakes (#2993) 2018-07-30 18:36:33 -07:00
Andrey Lushnikov
89f968b96a
test: try to fix CSS coverage flakes on win (#2992) 2018-07-30 18:36:21 -07:00
Andrey Lushnikov
4bbaa9d4f5
test: do not handle sigint for all the browsers launched in tests (#2990)
Puppeteer's default handler issues "process.exit(130)", causing
test runner to shut too early.

As a result, test runner doesn't show run summary.
2018-07-30 18:07:01 -07:00
Andrey Lushnikov
2c9599496a
test: make sure referer header is reported with request interception (#2986)
The referer header has been fixed some time ago.

References #469.
2018-07-30 18:05:27 -07:00
Andrey Lushnikov
d305c7d8c1
chore: bump version after minor release (#2985) 2018-07-30 18:05:10 -07:00
Donovan Allen
0b12119843 fix(NetworkManager): Remove header 'cookie' from request hash (#2954)
This fixes an issue in which a response may not be recorded or trigger an event because of differing cookie headers from the request.

References #2970
2018-07-30 17:06:53 -07:00
Andrey Lushnikov
392d3b94bd
Revert "chore(tests): redirect debugError to the output category of tests (#2969)" (#2987)
This reverts commit c5fe1dbdbb.
2018-07-30 16:41:39 -07:00
Joel Einbinder
c5fe1dbdbb chore(tests): redirect debugError to the output category of tests (#2969)
I have seen some flaky test failures where it would be nice to have run the tests with `DEBUG=puppeteer:error`. Instead of always running tests like that, I am redirecting `debugError` to the output category of the test. This is the same thing that we do for Chromium's stderr.

As a drive-by, I added an additional `debugError` where we were usually a try..finally pattern.
2018-07-30 11:16:12 -07:00
Fred Chasen
12e3510eca feat(page): add 'preferCSSPageSize' to page.pdf options (#2928)
Fixes #1963.
2018-07-26 18:51:44 -07:00
Andrey Lushnikov
78ebf401c2
chore(ci): move all CI from Node7 to Node8 (#2938)
Node 8 is the current LTS. We should use it by default on all
our CIs.
2018-07-26 16:27:11 -07:00
Andrey Lushnikov
d09b3042fd
docs(api.md): elaborate on passing arguments in waitForFunction (#2921) 2018-07-26 16:26:37 -07:00
Andy Fleming
3d12f1f279 feat(FrameManager): improve waiting for selector to be hidden error message (#2911)
Fixes #2854
2018-07-26 16:24:04 -07:00
Pavel Feldman
14e69d189c fix(pipe): make sure the pipe is not stuck (#2933)
When process is spawned with the 'pipe' set for stdout and stderr, Node expects these streams to be actually dispatched. If we don't, write into pipe becomes blocking and chrome stalls.

We work around that via setting 'ignore' to the stdin, stdout and stderr when the pipe communication channel is used.
2018-07-24 11:36:35 -07:00
Andrey Lushnikov
ca99a67aad
fix(launcher): always add about:blank to default arguments. (#2942)
Chrome Headless used to open about:blank by default; however, this
was recently changed.

We should open starting page no matter what to keep the environment
predictable.
2018-07-24 11:03:30 -07:00
Andrey Lushnikov
5b1898785b
chore(ci): yet another attempt to fix pptr@next (#2940)
References #2925.
2018-07-23 17:04:16 -07:00
Andrey Lushnikov
1d5f52e2fc
chore(ci): fix auto-publish to travis (#2931)
Fixes #2925.
2018-07-20 17:28:46 -07:00
Andrey Lushnikov
8f5ecf50c6
chore(ci): fix auto-publish to travis (#2930)
Fixes #2925.
2018-07-20 17:07:57 -07:00
Andrey Lushnikov
670b0c35e4
fix(launcher): do not add --disable-gpu on OSX and Linux (#2908)
This patch conditionally adds the `--disable-gpu` flag if only we
run headless on windows.

Fixes #1260.
2018-07-19 10:19:08 -07:00
Pavel Pomerantsev
26cd16c724 docs(api.md): expand on testing Chrome Extensions (#2893)
Fixes #2823
2018-07-18 19:33:51 -07:00
Andrey Lushnikov
56368aa07a
fix(page): page.click should work with disabled javascript (#2907)
Unfortunately, disabling javascript in page prevents any microtasks
to be executed even from puppeteer-originating javascript. As a
result, the IntersectionObserver hack we use to conditionally
scroll into view doesn't work.

To workaround this, we start always scrolling before clicking if
page's javascript is disabled.

Fixes #2898
2018-07-18 18:51:18 -07:00
Maxi Cilauro
e4e72c9e81 docs(api.md): fix typo (#2890) 2018-07-16 15:07:54 -07:00
Joel Einbinder
e7b0e0f448 feat(chromium): roll Chromium to r574897 (#2887)
This roll includes:
- https://crrev.com/574785 - DevTools: allow tracing over the remote debugging pipe.

This fixes tracing over the remote debugging pipe.
2018-07-13 11:07:24 -07:00
Andrey Lushnikov
8802253e13
chore: bump version to v1.6.0-post (#2883) 2018-07-12 18:11:51 -07:00
Andrey Lushnikov
3762de7b91
chore: mark version v1.6.0 (#2882) 2018-07-12 17:26:57 -07:00
Andrey Lushnikov
66fa0d3d53
test: cleanup page.waitForRequest/page.waitForResponse tests (#2880)
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 (#2776)
This patch introduces `page.waitForRequest` and `page.waitForResponse` helper methods.

Fixes #2362
2018-07-12 14:36:31 -07:00
Andrey Lushnikov
3ebbf125ff
fix(coverage): report anonymous scripts with debugger:// urls (#2875)
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 (#2874)
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 (#2796)
This patch adds `reportAnonymousScripts` option to the `coverage.startJSCoverage` method. With this option, anonymous scripts are reported as well.

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

Fixes #2629.
2018-07-11 17:51:04 -07:00
Benjamin Atkin
4f8d00e64e docs(readme): Update README.md (#2863) 2018-07-11 17:07:27 -07:00
Fedor Korotkov
e445e1c8b8 chore(ci): disable brew auto-update (#2861) 2018-07-10 05:23:51 +03:00
Nat Zimmermann
88362f710f docs(readme.md): Fix typo (#2858) 2018-07-09 21:56:31 +03:00
Andrey Lushnikov
9313c83ad2
docs(readme): update FAQ (#2826) 2018-07-05 09:13:26 +03:00
Matthew Haughton
eb53a8fdd0 docs(api.md): Fix selector description for pages & frames (#2841) 2018-07-05 03:01:40 +03:00
Yaniv Efraim
cfc0571c1a feat: better timeout stack trace (#2843)
fixes #2653
2018-07-05 02:39:09 +03:00
Joel Einbinder
22fa00a7b3 fix: wait for the chromeProcess to exit, not close (#2838) 2018-07-05 02:36:49 +03:00
Andrey Lushnikov
fb7c4e0984
docs(readme): minor nits (#2827) 2018-06-29 21:35:52 -07:00