puppeteer/utils/doclint
Andrey Lushnikov 6512ce768d
fix(Frame): postpone evaluations until execution context gets created (#1415)
In Blink, frames don't necesserily have execution context all the time.
DevTools Protocol precisely reports this situation, which results in
Puppeteer's frame.executionContext() being null occasionally.

However, from puppeteer point of view every frame will have at least a
default executions context, sooner or later:

- frame's execution context might be created naturally to run frame's
  javascript
- if frame has no javascript, devtools protocol will issue execution
  context creation

This patch builds up on this assumption and makes frame.executionContext()
to be a promise.
As a result, all the evaluations await for the execution context to be created first.

Fixes #827, #1325

BREAKING CHANGE: this patch changes frame.executionContext() method to return a promise.
To migrate onto a new behavior, await the context first before using it.
2017-11-18 16:27:52 -08:00
..
check_public_api fix(Frame): postpone evaluations until execution context gets created (#1415) 2017-11-18 16:27:52 -08:00
preprocessor Stricter eslint rules (#472) 2017-08-22 14:18:07 -07:00
.gitignore [doclint] move doclint testing to golden 2017-07-13 11:17:02 -07:00
cli.js chore(doclint): do not attempt to lint non-documentation markdown 2017-11-07 03:33:25 -08:00
Message.js [doclint] Prepare doclint for more checks 2017-07-31 00:10:59 -07:00
README.md [doclint] Move doclint under utils/ 2017-07-13 00:28:52 -07:00
SourceFactory.js [doclint] Implement simple markdown preprocessor 2017-07-31 02:06:27 -07:00
toc.js Change let into const (#457) 2017-08-21 16:39:04 -07:00

DocLint

Doclint is a small program that lints Puppeteer's documentation against Puppeteer's source code.

Doclint works in a few steps:

  1. Read sources in lib/ folder, parse AST trees and extract public API
  2. Read sources in docs/ folder, render markdown to HTML, use puppeteer to traverse the HTML and extract described API
  3. Compare one API to another

Doclint is also responsible for general markdown checks, most notably for the table of contents relevancy.

Running

npm run doc

Tests

Doclint has its own set of jasmine tests, located at utils/doclint/test folder.

To execute tests, run:

npm run test-doclint