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
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
76b24e64e8
feat(chromium): roll Chromium to r662092 ( #4462 )
...
This roll includes:
- [inspector_protocol:8ec18cf](8ec18cf088
) Support STRING16 in the template when converting CBOR map keys
to protocol::Value.
- [inspector_protocol:37518ac](37518ac421
) fix parsing of the last ASCII character
This fixes protocol handling of UTF8 in both V8 and Chromium.
Fixes #4443 .
2019-05-22 21:21:45 +03:00
Sergio M
60249e0bc2
fix: Page.setContent working with unicode strings ( #4433 )
...
Fix `page.setContent` with unicode strings that exceeds the range of a 8-bit byte.
This patch implements decoding part of the [MDN's solution #4 for the "unicode problem"](https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#Solution_4_%E2%80%93_escaping_the_string_before_encoding_it ).
Since we rely on node.js buffer to encode into base64, we don't have troubles with base64 encoding, so it is left as-is.
Fixes #4424
2019-05-18 17:15:16 +03:00
Tony Brix
511dcf9d32
feat(browser): Add browser.isConnected() ( #4403 )
...
Add `browser.isConnected()` to the public api to be able to tell when the browser is connected
fixes https://github.com/smooth-code/jest-puppeteer/pull/237#issuecomment-490260041
2019-05-09 16:24:52 -07:00
Andrey Lushnikov
27c9f754b1
fix(page): teach page.setContent to work with tricky content ( #4366 )
...
Fix #4364
2019-04-30 00:35:05 -07:00
Andrey Lushnikov
e3abb0aa32
feat(puppeteer): introduce puppeteer.errors
and puppeteer.devices
( #4312 )
...
These getters are introduced as a more convenient substitute for
a `require('puppeteer/Errors')` and
`require('puppeteer/DeviceDescriptors')`.
This way we can make cross-browser story nicer - a single require
of `puppeteer` or `puppeteer-firefox` fully defines Puppeteer
environment.
2019-04-19 15:33:06 -07:00
Andrey Lushnikov
e3a4f3411c
feat(firefox): roll Firefox to 765beffc ( #4156 )
...
This roll fixes flaky request interception in Firefox and moves
`Page.console` event to the Runtime domain.
2019-03-11 17:56:16 -07:00
Andrey Lushnikov
42351c7fe5
feat(firefox): Implement header overrides in request interception ( #4142 )
...
This patch makes sure header overrides in request interception are
functioning as expected.
Drive-by: teach test server to use utf-8 charset header for text files.
2019-03-08 14:26:13 -08:00
Joel Einbinder
02b2451db5
fix: check if async error has a stack ( #4017 )
2019-03-04 17:32:54 -08:00
Andrey Lushnikov
bc28f3b3dc
fix(firefox): fix executablePath() on OSX ( #4105 )
...
OSX might have case-sensitive partitions, so make sure we're precise.
Fix #4102
2019-03-04 14:19:28 -08:00
Joel Einbinder
a6d8ecce6f
fix(firefox): keyboard tests ( #4082 )
2019-02-27 15:13:17 -08:00
Andrey Lushnikov
dae998ec06
fix(firefox): enable domains in a proper order ( #4077 )
...
Otherwise we might get console messages from Page domain before
we get execution contexts reported.
2019-02-26 16:52:50 -08:00
Andrey Lushnikov
9ef23b1754
feat(firefox): implement cookies api ( #4076 )
...
This patch implements `page.setCookie()`, `page.deleteCookie()` and
`page.cookies()` and doubles the test coverage for cookies so that
we can feel safer on cross-browser compatibility.
2019-02-26 16:24:30 -08:00
Joel Einbinder
03d06f54d6
feat(firefox): page.accessibility.snapshot() ( #4071 )
2019-02-25 21:57:33 -08:00
Andrey Lushnikov
f21486fa1b
feat(firefox): implement Page.touchscreen ( #4070 )
2019-02-25 15:36:38 -08:00
Andrey Lushnikov
d04a8d55b4
refactor(firefox): split out DOMWorld ( #4066 )
2019-02-25 11:43:54 -08:00
Andrey Lushnikov
4ecbd91e4b
refactor(firefox): migrate onto ExecutionContext events ( #4064 )
...
Juggler now has Runtime domain that emits Execution Context events
"ExecutionContextCreated" and "ExecutionContextDestroyed".
2019-02-24 23:07:24 -08:00
Andrey Lushnikov
56dafd7424
feat: support Response.buffer(), Response.json() and Response.text() ( #4063 )
...
This patch:
- implements Response.buffer() and other methods
- splits out relevant tests into a separate test suites
- implements `testServer.enableGzip()` method to optionally gzip
certain routes in tests
- adds tests to make sure `Response.text()` returns expected results
for binary and compressed responses.
2019-02-24 19:31:35 -08:00
Andrey Lushnikov
3bea5d6017
feat(firefox): implement browserContext.overridePermissions ( #4060 )
2019-02-22 23:59:32 -08:00
Andrey Lushnikov
f1a14fec5b
feat(firefox): support elementHandle.uploadFile ( #4058 )
...
Fixes #3762
2019-02-22 17:22:46 -08:00
Andrey Lushnikov
1315dc8234
feat(firefox): support Page.emualteMedia ( #4056 )
2019-02-22 14:04:40 -08:00
Andrey Lushnikov
5c818368a5
feat(firefox): implement page.exposeFunction ( #4052 )
2019-02-22 00:04:25 -08:00
Andrey Lushnikov
a0fd2ce3fd
fix(firefox): enable more tests ( #4037 )
...
Further align Puppeteer-Firefox implementation with Puppeteer to
pass more tests.
2019-02-19 22:36:02 -08:00
Andrey Lushnikov
03c542a6c1
feat(firefox): implement missing launcher options ( #4036 )
...
This patch implements `puppeteer.defaultArgs()` and also missing
options, such as `ignoreDefaultArgs`.
2019-02-19 22:08:09 -08:00
Andrey Lushnikov
719ee5af3d
feat(firefox): support page.setExtraHTTPHeaders ( #4035 )
2019-02-19 15:22:12 -08:00
Andrey Lushnikov
c118b208fa
feat(firefox): basic request interception support ( #4034 )
...
This patch implements `page.setRequestInterception`, `page.continue`
and `page.abort` methods.
2019-02-19 14:51:56 -08:00
Andrey Lushnikov
3b180923a6
refactor(firefox): migrate onto Juggler flatten protocol ( #4033 )
...
Juggler now implements the same "flatten" protocol as CDP.
This patch:
* copies `Connection.js` from original Puppeteer (with a few renames, e.g. `CDPSesssion` -> `JugglerSession`).
* migrates code to support protocol-level sessions
2019-02-19 13:20:39 -08:00
Andrey Lushnikov
4a4793a5e1
feat(firefox): support Browser.target() ( #4028 )
...
Support browser target.
Drive-by: switch over to a more devtools'ish protocol:
- use `targetId` instead of `pageId` everywhere
- use target events instead of tab events
2019-02-17 10:23:48 -08:00
Andrey Lushnikov
ea482c4751
fix(firefox): properly cleanup networkmanager ( #4024 )
2019-02-15 23:34:01 -08:00
Andrey Lushnikov
c35821a1a1
feat(firefox): switch over to WebSocket and support multiclient ( #4022 )
...
- switch transport from TCP to WS (yay!)
- implemenet `puppeter.connect()`, `browser.disconnect()`, `'disconnected'`
event and `browser.wsEndpoint()`
2019-02-15 17:57:48 -08:00
Andrey Lushnikov
e0d4a5d2ec
fix(firefox): track frame detachment in navigation watchdog ( #4008 )
2019-02-14 00:06:30 -08:00
Andrey Lushnikov
247733b879
fix(firefox): enable more firefox tests ( #4007 )
2019-02-13 23:59:38 -08:00
Andrey Lushnikov
e8f044c3be
fix(firefox): enable a bunch of evaluation tests ( #4006 )
2019-02-13 23:41:53 -08:00
Andrey Lushnikov
6350cf0892
fix(firefox): report more console messages (including warnings) ( #4005 )
2019-02-13 23:22:45 -08:00
Andrey Lushnikov
0b40d04b99
feat(firefox): support running beforeunload hooks when closing ( #4003 )
2019-02-13 22:16:12 -08:00
Andrey Lushnikov
e3b76b2beb
feat(firefox): support consoleMessage.location() ( #4002 )
2019-02-13 19:56:56 -08:00
Andrey Lushnikov
2275c3c0c8
fix(firefox): properly round clip when doing element screenshots ( #4001 )
...
Do clipping the same way we do it in Chromium.
2019-02-13 19:47:14 -08:00
Andrey Lushnikov
670d758dfe
feat(firefox): support "referer" option in Page.goto ( #4000 )
2019-02-13 13:49:05 -08:00
Andrey Lushnikov
fbf36438e8
feat(firefox): support Request.postData ( #3999 )
2019-02-13 13:11:50 -08:00
Andrey Lushnikov
13224a761e
feat(firefox): support Response.securityDetails() ( #3997 )
2019-02-13 11:56:51 -08:00
Andrey Lushnikov
31ae1d6d15
feat(firefox) support Request.headers() & Response.headers() ( #3993 )
2019-02-13 00:55:56 -08:00
Andrey Lushnikov
89d0f1e1e7
feat(firefox): implement frame.goto / frame.waitForNavigation ( #3992 )
...
Some corner cases regarding iframes being detached during navigation
are not yet supported.
2019-02-12 20:10:53 -08:00
Andrey Lushnikov
1890dc04ba
feat(firefox): Page.waitForRequest/Page.waitForResponse ( #3989 )
...
Drive-by: refactor `Request.frame()` tests into a separate test suite.
2019-02-12 19:10:14 -08:00
Andrey Lushnikov
afb9355b15
feat(firefox): basic support for Network ( #3988 )
...
This patch introduces basic Request and Response events for
page. It also teaches navigation methods, e.g. `page.goto` to return
navigation response.
2019-02-12 17:38:48 -08:00
Andrey Lushnikov
b82cc150d1
feat(firefox): support Page.setJavascriptEnabled ( #3970 )
...
This patch implements:
- Page.setJavascriptEnabled
- Page.setCacheEnabled
2019-02-08 20:57:16 -08:00
Andrey Lushnikov
edb6f62824
feat(firefox): support page.setDefaultNavigationTimeout ( #3969 )
...
This patch supports:
- page.setDefaultNavigationTimeout
- page.setDefaultTimeout
2019-02-08 20:37:14 -08:00
Andrey Lushnikov
fc18a79e99
feat(firefox): support Page.setUserAgent method ( #3968 )
2019-02-08 19:53:27 -08:00
Andrey Lushnikov
cfefd611b8
feat(firefox): support target.opener() and page.on('popup') ( #3966 )
2019-02-08 19:21:54 -08:00
Andrey Lushnikov
0cf6ab68e7
feat(firefox): support page.browserContext() ( #3965 )
2019-02-08 18:58:40 -08:00