Commit Graph

1718 Commits

Author SHA1 Message Date
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
Andrey Lushnikov
7e1984615a
feat(chromium): roll Chromium to r666595 (#4530)
This roll includes:
- https://crrev.com/666392 - DevTools: do not re-create DOMWrapperWorlds on same-process navigation

Fix #4449
2019-06-06 10:41:01 -07:00
Andrey Lushnikov
f79d0a3be8
fix: try running without --disable-gpu on windows (#4523)
It looks like https://crbug.com/737678 and https://crbug.com/729961
are fixed - so we shouldn't need the `--disable-gpu` flag on windows
headless.

Reference #1260
2019-06-05 19:03:09 -07:00
Andrey Lushnikov
15804d111a
test: remove debug console.log (#4522) 2019-06-04 16:27:36 -07:00
Andrey Lushnikov
78d5106dd9
feat(chromium): roll Chromium to r665405 (#4516)
* feat(chromium): roll Chromium to r665405

This roll includes:
- https://crrev.com/665226 - DevTools: make interception respect cross-process frame boundaries

This fixes page loading with dynamic OOPIFs - test is added.

Fix #4442

* fix lint
2019-06-04 11:03:15 -07:00
Andrey Lushnikov
f52738ec1e
docs(api.md): clarify on HTTP error responses (#4507) 2019-06-03 14:54:30 -07:00
Vitalii Tverdokhlib
94ff4de309 docs(troubleshooting): fix comment (#4512) 2019-06-02 10:49:48 -07:00
Adriel Codeco
ac611bacac fix(helper): fix Helper.installAsyncStackHooks method (#4478)
Using Error.captureStackTrace instead of new Error () to avoid UnhandledPromiseRejectionWarning
2019-05-31 19:39:32 -07:00
Andrey Lushnikov
d221c02c13
test: add test to verify fetching of dataURL requests (#4233) 2019-05-31 17:11:55 -07:00
Andrey Lushnikov
015e330815
test: add oopif tests (#4495)
Reference #2548
2019-05-29 16:49:44 -07:00
Jasmine Hegman
111350c502 docs(troubleshooting.md): update Alpine instructions (#4494)
Update Alpine to Chromium 73 and Puppeteer 1.12.2

According to the compatibility pages these are the
most recent, compatible versions.
2019-05-29 11:03:48 -07:00