puppeteer/CONTRIBUTING.md
Andrey Lushnikov 0414dfa98b Introduce DEBUG module
This patch re-introduces the DEBUG module to expose some of
the puppeteer's internals.

Currently, only the protocol message communication is exposed under
the 'puppeteer:protocol' namespace.
2017-07-17 15:15:07 -07:00

2.3 KiB

How to Contribute

First of all, thank you for your interest in Puppeteer! We'd love to accept your patches and contributions!

Contributor License Agreement

Contributions to this project must be accompanied by a Contributor License Agreement. You (or your employer) retain the copyright to your contribution, this simply gives us permission to use and redistribute your contributions as part of the project. Head over to https://cla.developers.google.com/ to see your current agreements on file or to sign a new one.

You generally only need to submit a CLA once, so if you've already submitted one (even if it was for a different project), you probably don't need to do it again.

Code reviews

All submissions, including submissions by project members, require review. We use GitHub pull requests for this purpose. Consult GitHub Help for more information on using pull requests.

Code Style

The coding style is fully defined in .eslintrc. Please make sure to run npm lint before submitting PR.

We use JSDoc along with closure annotations. Annotations are encouraged for all contributions.

Testing

All new features should be accompanied by tests. Puppeteer tests are located in test/test.js and are written using Jasmine testing framework.

There are also phantomjs tests located under third_party/phantomjs/test. These are used to test phantom_shim.

To run puppeteer tests, use:

npm run unit

To run phantom-shim against phantomjs tests, use:

npm run test-phantom

To run both puppeteer and phantom_shim tests, use:

npm test

DEBUG module

Puppeteer uses debug module to expose some of it's inner guts under the puppeteer namespace. Try putting the following script in the script.js and running it via DEBUG=* node script.js:

const {Browser} = require('puppeteer');
const browser = new Browser();
browser.newPage().then(async page => {
  await page.navigate('https://example.com');
  browser.close();
});