Commit Graph

2228 Commits

Author SHA1 Message Date
Andrey Lushnikov
7406b185d2
chore(testrunner): introduce tests for TestRunner (#4773)
This adds some basic tests for the test runner.
2019-07-30 13:19:12 -07:00
Andrey Lushnikov
3bbc45af8b
chore: improve //utils/check_availability.js (#4770)
This patch teaches `//utils/check_availability.js` to break
when it is run with no arguments and it finds an available revision.
2019-07-29 14:29:50 -07:00
Paul Irish
cc805e750c chore(readme): fix typo (#4749)
s/availabe/available
2019-07-29 14:24:48 -07:00
Yevhen
7fded54903 docs(api.md): fix typo (#4761) 2019-07-29 14:14:31 -07:00
Joel Einbinder
7a607469df fix(tests): background page tests should wait for the page (#4769) 2019-07-29 14:09:34 -07:00
Andrey Lushnikov
62f5dc7375
chore: bump version to v1.19.0-post (#4745) 2019-07-22 22:34:10 -07:00
Andrey Lushnikov
af0d229044
chore: mark version v1.19.0 (#4744) 2019-07-22 22:02:45 -07:00
Andrey Lushnikov
ea28cccfe0 feat(page): introduce file chooser interception (#4653)
This patch introduces a page.waitForFileChooser() method
that adds a watchdog to wait for file chooser dialogs.

This lets Puppeteer users to capture file chooser requests
and fulfill/cancel them if necessary.

Fixes #2946
2019-07-22 21:30:49 -07:00
Yury Semikhatsky
2abaac10aa fix(launcher): make dumpio and pipe options work together (#4727)
Don't ignore stdout and stderr when using pipe for remote debugging and dumpio is true. In that case puppeteer process connects to the stdout/stderr streams of the child process and it will not hang.
2019-07-18 16:42:11 -07:00
Andrey Lushnikov
3982a603cc
chore(testrunner): bump TestRunner version to v0.7.0 (#4719) 2019-07-18 11:25:27 -07:00
Andrey Lushnikov
852c46c1e4
feat(testrunner): async suite descriptions (#4721)
This patch teaches TestRunner to support async suite
descriptions. This is needed to require tests using ES6 dynamic
imports:

```js
const t = new TestRunner();

await t.describe('tests', async () => {
  (await import('./some.spec.js')).addTests(t);
  (await import('./other.spec.js')).addTests(t);
});
```
2019-07-18 11:25:06 -07:00
Andrey Lushnikov
835e8849fd
feat(testrunner): add new testrunner options (#4718)
This patch adds new TestRunner options:
- `disableTimeoutWhenInspectorIsEnabled` - disable test timeout if
  testrunner detects enabled inspector.
- `breakOnFailure` - if testrunner should terminate test running on
  first test failure
2019-07-17 10:32:37 -07:00
Andrey Lushnikov
934d73e526
fix(testreporter): Test Reporter should not terminate node.js process (#4716)
This patch starts assigning process exit codes rather than terminating
parent process. Library should never own/terminate parent node.js
process.
2019-07-16 16:34:41 -07:00
Andrey Lushnikov
eea55bd6c6
fix(testrunner): properly handle testrunner terminations (#4717)
This patch improves the logic for test runner termination.
With this patch:
- TestRunner runs all afterEach/afterAll hooks when a
termination happens, properly terminating browser instances
- TestRunner cleans up all dangling timeout timers so that node.js
process is not retained and is free to exit
2019-07-16 16:26:03 -07:00
Andrey Lushnikov
ad1802188d
fix(launcher): disable component extensions (#4704)
Chrome has a set of component extensions - e.g. CryptoTokenExtension
that helps with 2FA.

These extensions are loaded regardless of the `--disable-extensions`
flag we already pass. To disable these extensions, we need to pass additional
`--disable-component-extensions-with-background-pages` flag.

Fix #4300
2019-07-15 17:54:42 -07:00
Andrey Lushnikov
f8616ed54b
fix(pipe): handle 'error' events on pipes to avoid crashing (#4705)
Fix #4374
2019-07-15 17:53:27 -07:00
Andrey Lushnikov
c9977c8004
fix(page): properly create isolated worlds (#4707)
The following error:
```
Error: Protocol error (Page.createIsolatedWorld): No frame for given id found
```

was mentioned here:
https://github.com/FlowCrypt/flowcrypt-browser/pull/1799#issuecomment-508729602

This indeed seems to be a bug with our creation of isolated worlds.
2019-07-15 17:52:40 -07:00
Yury Semikhatsky
a39d553511 fix(tests): Get TLS version from Node instead of hardcoding it (#4700) 2019-07-14 18:33:31 -07:00
Mohamed Akram
bafda9fbe7 fix(launcher): ensure PUPPETEER_EXECUTABLE_PATH is used if set (#4677)
Without this patch, Puppeteer exits with `Error: Unsupported platform: freebsd` on FreeBSD despite `PUPPETEER_EXECUTABLE_PATH` being set.
2019-07-14 16:37:57 -07:00
Andrey Lushnikov
a582c11b1b
chore(ci): add Node10 and Node12 to Cirrus (#4699) 2019-07-13 23:22:02 -07:00
Yury Semikhatsky
715aad2d67 fix: proper parse Error message on Node 12 (#4698)
Check message prefix rather than strict equality when detecting circular JSON error. The message format has changed in Node 12 which broke the condition and failed a test.
2019-07-12 17:19:02 -07:00
Joel Einbinder
49b27956fe feat(keyboard): feature phone buttons (#4694)
I got a KaiOS phone with some awesome buttons on it I hadn't seen before on the web. This adds the following buttons to our default keyboard layout:

`SoftLeft`
`SoftRight`
`Camera`
`Call`
`EndCall`
`VolumeUp`
`VolumeDown`
2019-07-12 15:41:01 -07:00
Andrey Lushnikov
a17c727b78
chore: release next testrunner (#4697) 2019-07-12 12:50:48 -07:00
Andrey Lushnikov
8e0c2fad39
feat(chromium): roll Chromium to r674921 (#4678)
Just a healthy roll.
2019-07-08 07:29:21 +02:00
Andrey Lushnikov
9ef4153f6e
feat(chromium): roll Chromium to r673587 (#4646)
This roll includes:
- https://crrev.com/673121 - DevTools: intercept file chooser requests

References #2946
2019-07-01 11:01:45 +02:00
Marc Jansen
492132f9b0 docs(api.md): Slightly enhanced wording (#4631) 2019-06-29 13:58:27 +02:00
jeremykerr-sp
a069a1203d docs(puppeteer-chromium): docker alpine freetype-dev dependency (#4643)
A freetype update broke bitmap fonts. Adding freetype-dev to the Alpine dependencies resolves related issues.

This resolves these errors when launching chromium:
```/usr/bin/chromium-browser

Error relocating /usr/lib/chromium/chrome: FT_Get_Color_Glyph_Layer: symbol not found
Error relocating /usr/lib/chromium/chrome: FT_Palette_Select: symbol not found```


Background:
https://bugs.alpinelinux.org/issues/10309
https://github.com/stark/siji/issues/28
https://github.com/lucy/tewi-font/issues/35
2019-06-29 13:55:23 +02:00
Andrey Sidorov
2d99d85976 fix(firefox): error message typo (#4623) 2019-06-26 10:58:05 -07:00
Andrey Lushnikov
4ccd52c309
chore: bump version to v1.18.1-post (#4630) 2019-06-26 10:57:38 -07:00
Andrey Lushnikov
a2cf81dd78
chore: mark version v1.18.1 (#4628) 2019-06-26 10:40:38 -07:00
Andrey Lushnikov
cf34583be5
feat(chromium): roll Chromium to r672088 (#4626)
This roll includes:
- https://crrev.com/671499 - Build with symbol_level=0 for linux-archive-rel

Fix #4610
2019-06-26 01:18:01 -07:00
Andrey Lushnikov
411347cd7b
chore: bump version to v1.18.0-post (#4608) 2019-06-20 18:46:36 -04:00
Andrey Lushnikov
c96454d42c
chore: mark version v1.18.0 (#4606) 2019-06-20 18:13:45 -04:00
Andrey Lushnikov
45873ea737
feat(chromium): roll Chromium to r669486 (#4591)
This roll includes:
- https://crrev.com/c/1589672/ - Include retired instruction delta in TraceEvents
2019-06-15 16:27:38 -07:00
Andrey Lushnikov
955e7cb6fc
feat(page): move page.pdf to protocol streams (#4587)
This lets transferring massive PDF files over the protocol.

Fix #4563
2019-06-14 22:36:06 -07:00
MaxHorstmann
6c2007f1e3 docs(README.md): fix spelling of Stack Overflow (#4590) 2019-06-14 22:12:24 -07:00
Andrey Lushnikov
62733a20d7
fix(connection): bump websocket max received message size to 256Mb (#4571)
This is the max message size that DevTools can emit over the DevTools
protocol: https://cs.chromium.org/chromium/src/content/browser/devtools/devtools_http_handler.cc?type=cs&q=kSendBufferSizeForDevTools&sq=package:chromium&g=0&l=83

Test is failing on firefox since Firefox crashes when allocating 100Mb string.

Fix #4543
2019-06-14 01:05:09 -07:00
Andrey Lushnikov
5087962682
feat(chromium): roll Chromium to r668716 (#4581)
This roll includes:
- https://crrev.com/c/1652559 - inspector: fix queryObjects when page contains JSModuleNamespace
- https://crrev.com/c/1649473 - [heapprofiler] QueryObjects: do not return objects retained by feedback information
- https://crrev.com/c/1652155 - DevTools: teach page.printToPDF to return IO::Stream

References #4563
Fix #4545
2019-06-14 01:02:57 -07:00
Andrey Lushnikov
6860d73212
fix(network): align HTTP status codes with IANA (#4567)
Aline HTTP status texts with https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml
2019-06-10 21:04:45 -07:00
Takahiro Nishino
792264122c fix(page): fix A2 and A3 format size (#4569)
16.5 inch ~ 419.1mm
16.54 inch ~ 420.1mm

Fix #4568
2019-06-10 20:59:12 -07:00
Andrey Lushnikov
65b7e8ecc0
docs(api.md): add notes on race condition in page.setViewport (#4319)
Fixes #2755.
2019-06-10 18:07:24 -07:00
Andrey Lushnikov
8df0b3ec3b
fix(network): allow fulfilling requests with status code 422 (#4566)
Migration onto fetch domain (2265974ce5)
changed the way we generate status texts: instead of relying on build-in
list of statuses, we tried to rely upon the [Chromium implementation](https://cs.chromium.org/chromium/src/net/http/http_status_code_list.h?sq=package:chromium&g=0).

Puppeteer's list is much more exhaustive - let's keep it.

Fix #4454
2019-06-10 17:39:58 -07:00
Joel Einbinder
b2f94909a1 fix(eval): be able to throw protocol like errors (#4551) 2019-06-10 17:35:40 -07:00
Andrey Lushnikov
6a50888d34
fix(firefox): fix missing awaits in mouse.click (#4561)
This applies the same fix we used on the Chrome-side and adds a test.

Fix #4536
2019-06-10 16:53:38 -07:00
Andrey Lushnikov
e1432cc08a
docs(contributing): update commit message example (#4560)
Fix #4559
2019-06-10 01:45:04 -07:00
Philip Bergqvist
dd6fcfe77b fix(page): fix missing awaits in mouse.click (#4541)
Lack of await causes dangling promises, which lead to unhandled rejections that cannot be caught if these calls fail (e.g. if the page is closed). 

References #4536
2019-06-10 01:42:19 -07:00
david weil
7faf1c9030 fix(BrowserFetcher): fix httpRequest when using proxy against http HOST (#4558)
This patch avoids https-proxy-agent usage when target host protocol is http and proxy is specified.
This is a valid scenario for installer but was failing.

Fixes #4556
2019-06-10 01:11:01 -07:00
Michael Oryl
4bcdfc97dd docs(api.md): clarify frame/page.goto()'s handling of HTTP error statuses (#4553)
The documentation for frame.goto() and page.goto() were updated to make
it clear that the method will not throw an error if the HTTP requests
results in any valid HTTP status code being returned by the remote
server.
2019-06-09 18:32:06 -07:00
alea12
aca99cd89c docs(troubleshooting): add missing double quotes (#4548) 2019-06-08 17:29:29 -07:00
Andrey Lushnikov
90df69cf77
fix(page): do evaluations with one roundtrip (#4539)
This patch teaches page.evaluate to do 1 hop instead of 2 hops.
As a result, things such as `page.select` will not throw an
unfortunate exception when they schedule a navigation.

Fix #4537
2019-06-07 13:46:43 -07:00