0
0
mirror of https://github.com/puppeteer/puppeteer synced 2024-06-14 14:02:48 +00:00
Commit Graph

1002 Commits

Author SHA1 Message Date
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
Joel Einbinder
194d580026
chore: mark version v1.5.0 () 2018-06-07 12:19:25 -07:00
Joel Einbinder
75ba86f41a
fix: emit all arguments from worker console logs ()
Log.entryAdded doesn't report all the arguments from console logs. This PR switches to use Runtime.consoleAPICalled.

fixes 
2018-06-07 11:21:35 -07:00
Andrey Lushnikov
90833352ba docs(contributing): add section about releasing to NPM () 2018-06-07 09:38:49 -07:00
Joel Einbinder
2ff0adcad8 feat: worker convenience methods ()
This patch:
- adds `worker.evaluate` and `worker.evaluateHandle` methods as a shortcut to their execution context equivalents.
- makes the error messages a bit nicer when interacting with a closed worker (as opposed to a closed page).
- moves the worker tests into their own spec file.
2018-06-06 20:16:17 -05:00
Corey Cole
3e82a54fd1 docs: update slack invite link in README.md () 2018-06-06 20:12:44 -05:00
Andrey Lushnikov
36b87000e4
chore(ci): remove Win from Cirrus builds ()
Remove Cirrus Win targets until there's a good resolution.

Postmortem:
- CirrusCI uses [Windows Server
Containers](https://docs.microsoft.com/en-us/virtualization/windowscontainers/about/#windows-container-types) to run windows builds.
- Windows Server Containers don't include all the libraries that are required to run general application. See [msdn discussion](https://social.msdn.microsoft.com/Forums/en-US/a50e7dd7-c73f-45e0-89b4-92ba3ad2bcda/ieframedll-and-shdocvwdll-are-missing-from-windowsservercore-image?forum=windowscontainers).
- A recent [chromium commit](https://crrev.com/560677) added win dependencies missing in Windows Server Containers.

We'll be able to bring back Win builds on Cirrus once the full-fledged
Win containers are released (announced
[recently](https://channel9.msdn.com/Events/Build/2018/BRK2149).
2018-06-06 20:11:22 -05:00
Joel Einbinder
a058468948 feat: roll Chromium to r564778 ()
This roll includes:
- https://chromium-review.googlesource.com/c/v8/v8/+/1086372 - [inspector] postpone API interrupts during creation of injected script

This fixes worker flakiness.

Fixes 
2018-06-06 09:48:56 -05:00
Andrey Lushnikov
4bc23319a2
chore(ci): temporary disable cirrus win builds ()
Win bots all fail on Cirrus; disable them until the issue is resolved.

We still have win coverage with AppVeyour.
2018-06-02 11:45:14 -07:00
Andrey Lushnikov
efc0e0f96e
feat(chromium): roll Chromium to r563942 ()
This roll includes:
- https://crrev.com/563869 - Headless: respect the --disable-breakpad flag
2018-06-02 09:56:47 -07:00
Andrey Lushnikov
d8023726c5
fix: disable OOPIF by default ()
This patch disables OOPIF by default.

**NOTE**: this is a temporary bandaid for the time we're crafting
the full-fledged support for site isolation over DevTools protocol.

References .
2018-06-01 15:20:37 -07:00
Fedor Korotkov
85d5a3348c chore(ci): switch Windows containers ()
Cirrus CI got some optimizations for containers based of `microsoft/windowsservercore:latest`.

Now startup time for windows builds is around 1:30 seconds instead of around 4 minutes.

to: @aslushnikov
2018-06-01 15:15:16 -07:00
Andrey Lushnikov
9904da262e
chore(doclint): remove old unused table-of-contents generator ()
We no longer use markdown-toc to generate table-of-contents.
2018-06-01 13:59:31 -07:00
Andrey Lushnikov
9955a1e673
fix(browser): ensure first page is created when browser is launched ()
It's impossible to launch chromium without initial page.
This patch makes sure that `puppeteer.launch()` always returns a browser
with at least one page user can connect to.
2018-06-01 13:57:50 -07:00
Andrey Lushnikov
07b91f61a9
test: split out headful tests into headful.spec.js () 2018-06-01 13:48:34 -07:00
Darío Kondratiuk
e03802688d docs(api.md): Fix CDPSession code example () 2018-06-01 11:26:40 -07:00
Andrey Lushnikov
0f8c7e76c2
feat(launcher): disable crash reporting by default ()
This patch disables crash reporting since it's not needed for
automation purposes.

It also deals some troubles for us since crashpad is a separate
process on Windows which has a larger lifetime than chromium.
This, in turn, prevents us from cleaning up profile directory.
2018-05-31 18:17:50 -07:00
Andrey Lushnikov
724fa512cf
feat(network): introduce Request.isNavigationRequest() method ()
This patch introduces `Request.isNavigationRequest()` method.

Fixes , .
2018-05-31 17:38:30 -07:00
Jan Potoms
f6356683cd feat(targets): add target.opener() ()
This adds a `.opener` property to a target so that its origin can be tracked.
For now returns `null` when there's no `openerId`.

Fixes 
2018-05-31 17:06:29 -07:00
Andrey Lushnikov
0b94fa70eb
chore: stop using console.assert everywhere ()
Since Node 10, `console.assert` no longer throws an AssertionError.
(This is generally good since it aligns Node.js with Browsers.)

This patch migrates all usages of `console.assert` in our codebase.
- All the `lib/` and testing code is migrated onto a handmade `assert`
function. This is to make Puppeteer transpilation / bundling easier.
- All the tooling is switched to use Node's `assert` module.

Fixes .
2018-05-31 16:53:51 -07:00
Andrey Lushnikov
35e3f12afa
fix(workers): swallow errors when auto-detaching from page subtargets ()
Page subtargets (e.g. out-of-process iframes and others) sometimes
die before we send the 'detach' command.

This is harmless to us, but we shouldn't have an unhandled promise
rejection in this case.

Example crash: https://cirrus-ci.com/task/4884032470908928
2018-05-31 16:53:04 -07:00
Andrey Lushnikov
1c0ecc3d9c
test: fix flaky test ()
When launching browser with a default URL, the page is not necessarily
loaded when we're reaching into it.
2018-05-31 16:39:49 -07:00
Andrey Lushnikov
0ba72df67d
test: verify ignoreHTTPSErrors works with puppeteer.connect ()
References .
2018-05-31 16:04:48 -07:00
Andrey Lushnikov
754df58d4e
docs(api.md): fix table-of-contents ()
This patch drops the markdown-toc module and instead rolls out
our own simple markdown table-of-contents generator.

As a side effect, it fixes links to `page.$` and `page.$$`.
2018-05-31 14:21:43 -07:00
Andrey Lushnikov
0ad0096e21
chore(utils): change utils/check_availability.js to fetch last revisions ()
This patch changes `utils/check_availability.js` to fetch last revisions
per platform when ran without any arguments.
2018-05-31 14:20:41 -07:00
Anish Karandikar
14b5144923 docs(examples): add link to puppeteer-har ()
References .
2018-05-31 12:07:48 -07:00
Joel Einbinder
1c2adf61e9 fix(workers): workaround worker execution context flakiness ()
Some of the worker tests were failing on the bots. After investigating, I found one race in the test, and one race upstream in Chromium which I filed upstream as https://crbug.com/846099. But I added a small hack here as a temporary workaround.

References 
2018-05-30 18:08:27 -07:00
Yotam Laufer
469b910a2d feat(page): allow screenshot to return a base64 string ()
Fixes 
2018-05-30 14:27:08 -07:00