Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(docs): add TSDoc to ExecutionContext #6094

Merged
merged 1 commit into from Jun 24, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
22 changes: 0 additions & 22 deletions new-docs/puppeteer.executioncontext._adoptbackendnodeid.md

This file was deleted.

22 changes: 0 additions & 22 deletions new-docs/puppeteer.executioncontext._adoptelementhandle.md

This file was deleted.

11 changes: 0 additions & 11 deletions new-docs/puppeteer.executioncontext._client.md

This file was deleted.

22 changes: 0 additions & 22 deletions new-docs/puppeteer.executioncontext._constructor_.md

This file was deleted.

11 changes: 0 additions & 11 deletions new-docs/puppeteer.executioncontext._contextid.md

This file was deleted.

11 changes: 0 additions & 11 deletions new-docs/puppeteer.executioncontext._world.md

This file was deleted.

45 changes: 43 additions & 2 deletions new-docs/puppeteer.executioncontext.evaluate.md
Expand Up @@ -14,10 +14,51 @@ evaluate<ReturnType extends any>(pageFunction: Function | string, ...args: unkno

| Parameter | Type | Description |
| --- | --- | --- |
| pageFunction | Function \| string | |
| args | unknown\[\] | |
| pageFunction | Function \| string | a function to be evaluated in the <code>executionContext</code> |
| args | unknown\[\] | argument to pass to the page function |

<b>Returns:</b>

Promise&lt;ReturnType&gt;

A promise that resolves to the return value of the given function.

## Remarks

If the function passed to the `executionContext.evaluate` returns a Promise, then `executionContext.evaluate` would wait for the promise to resolve and return its value. If the function passed to the `executionContext.evaluate` returns a non-serializable value, then `executionContext.evaluate` resolves to `undefined`<!-- -->. DevTools Protocol also supports transferring some additional values that are not serializable by `JSON`<!-- -->: `-0`<!-- -->, `NaN`<!-- -->, `Infinity`<!-- -->, `-Infinity`<!-- -->, and bigint literals.

## Example 1


```js
const executionContext = await page.mainFrame().executionContext();
const result = await executionContext.evaluate(() => Promise.resolve(8 * 7))* ;
console.log(result); // prints "56"

```

## Example 2

A string can also be passed in instead of a function.

```js
console.log(await executionContext.evaluate('1 + 2')); // prints "3"

```

## Example 3

[JSHandle](./puppeteer.jshandle.md) instances can be passed as arguments to the `executionContext.* evaluate`<!-- -->:

```js
const oneHandle = await executionContext.evaluateHandle(() => 1);
const twoHandle = await executionContext.evaluateHandle(() => 2);
const result = await executionContext.evaluate(
(a, b) => a + b, oneHandle, * twoHandle
);
await oneHandle.dispose();
await twoHandle.dispose();
console.log(result); // prints '3'.

```

43 changes: 41 additions & 2 deletions new-docs/puppeteer.executioncontext.evaluatehandle.md
Expand Up @@ -14,10 +14,49 @@ evaluateHandle(pageFunction: Function | string, ...args: unknown[]): Promise<JSH

| Parameter | Type | Description |
| --- | --- | --- |
| pageFunction | Function \| string | |
| args | unknown\[\] | |
| pageFunction | Function \| string | a function to be evaluated in the <code>executionContext</code> |
| args | unknown\[\] | argument to pass to the page function |

<b>Returns:</b>

Promise&lt;[JSHandle](./puppeteer.jshandle.md)<!-- -->&gt;

A promise that resolves to the return value of the given function as an in-page object (a [JSHandle](./puppeteer.jshandle.md)<!-- -->).

## Remarks

The only difference between `executionContext.evaluate` and `executionContext.evaluateHandle` is that `executionContext.evaluateHandle` returns an in-page object (a [JSHandle](./puppeteer.jshandle.md)<!-- -->). If the function passed to the `executionContext.evaluateHandle` returns a Promise, then `executionContext.evaluateHandle` would wait for the promise to resolve and return its value.

## Example 1


```js
const context = await page.mainFrame().executionContext();
const aHandle = await context.evaluateHandle(() => Promise.resolve(self));
aHandle; // Handle for the global object.

```

## Example 2

A string can also be passed in instead of a function.

```js
// Handle for the '3' * object.
const aHandle = await context.evaluateHandle('1 + 2');

```

## Example 3

JSHandle instances can be passed as arguments to the `executionContext.* evaluateHandle`<!-- -->:

```js
const aHandle = await context.evaluateHandle(() => document.body);
const resultHandle = await context.evaluateHandle(body => body.innerHTML, * aHandle);
console.log(await resultHandle.jsonValue()); // prints body's innerHTML
await aHandle.dispose();
await resultHandle.dispose();

```

6 changes: 6 additions & 0 deletions new-docs/puppeteer.executioncontext.frame.md
Expand Up @@ -13,3 +13,9 @@ frame(): Frame | null;

[Frame](./puppeteer.frame.md) \| null

The frame associated with this execution context.

## Remarks

Not every execution context is associated with a frame. For example, workers and extensions have execution contexts that are not associated with frames.

22 changes: 7 additions & 15 deletions new-docs/puppeteer.executioncontext.md
Expand Up @@ -4,34 +4,26 @@

## ExecutionContext class

This class represents a context for JavaScript execution. A \[Page\] might have many execution contexts: - each [frame](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe) has "default" execution context that is always created after frame is attached to DOM. This context is returned by the method. - [Extension](https://developer.chrome.com/extensions)<!-- -->'s content scripts create additional execution contexts.

Besides pages, execution contexts can be found in [workers](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API)<!-- -->.

<b>Signature:</b>

```typescript
export declare class ExecutionContext
```

## Constructors

| Constructor | Modifiers | Description |
| --- | --- | --- |
| [(constructor)(client, contextPayload, world)](./puppeteer.executioncontext._constructor_.md) | | Constructs a new instance of the <code>ExecutionContext</code> class |

## Properties
## Remarks

| Property | Modifiers | Type | Description |
| --- | --- | --- | --- |
| [\_client](./puppeteer.executioncontext._client.md) | | [CDPSession](./puppeteer.cdpsession.md) | |
| [\_contextId](./puppeteer.executioncontext._contextid.md) | | number | |
| [\_world](./puppeteer.executioncontext._world.md) | | DOMWorld | |
The constructor for this class is marked as internal. Third-party code should not call the constructor directly or create subclasses that extend the `ExecutionContext` class.

## Methods

| Method | Modifiers | Description |
| --- | --- | --- |
| [\_adoptBackendNodeId(backendNodeId)](./puppeteer.executioncontext._adoptbackendnodeid.md) | | |
| [\_adoptElementHandle(elementHandle)](./puppeteer.executioncontext._adoptelementhandle.md) | | |
| [evaluate(pageFunction, args)](./puppeteer.executioncontext.evaluate.md) | | |
| [evaluateHandle(pageFunction, args)](./puppeteer.executioncontext.evaluatehandle.md) | | |
| [frame()](./puppeteer.executioncontext.frame.md) | | |
| [queryObjects(prototypeHandle)](./puppeteer.executioncontext.queryobjects.md) | | |
| [queryObjects(prototypeHandle)](./puppeteer.executioncontext.queryobjects.md) | | This method iterates the JavaScript heap and finds all the objects with the given prototype. |

26 changes: 25 additions & 1 deletion new-docs/puppeteer.executioncontext.queryobjects.md
Expand Up @@ -4,6 +4,8 @@

## ExecutionContext.queryObjects() method

This method iterates the JavaScript heap and finds all the objects with the given prototype.

<b>Signature:</b>

```typescript
Expand All @@ -14,9 +16,31 @@ queryObjects(prototypeHandle: JSHandle): Promise<JSHandle>;

| Parameter | Type | Description |
| --- | --- | --- |
| prototypeHandle | [JSHandle](./puppeteer.jshandle.md) | |
| prototypeHandle | [JSHandle](./puppeteer.jshandle.md) | a handle to the object prototype |

<b>Returns:</b>

Promise&lt;[JSHandle](./puppeteer.jshandle.md)<!-- -->&gt;

A handle to an array of objects with the given prototype.

## Remarks


## Example


```js
// Create a Map object
await page.evaluate(() => window.map = new Map());
// Get a handle to the Map object prototype
const mapPrototype = await page.evaluateHandle(() => Map.prototype);
// Query all map instances into an array
const mapInstances = await page.queryObjects(mapPrototype);
// Count amount of map objects in heap
const count = await page.evaluate(maps => maps.length, mapInstances);
await mapInstances.dispose();
await mapPrototype.dispose();

```

4 changes: 2 additions & 2 deletions new-docs/puppeteer.md
Expand Up @@ -19,7 +19,7 @@
| [Dialog](./puppeteer.dialog.md) | Dialog instances are dispatched by the [Page](./puppeteer.page.md) via the <code>dialog</code> event. |
| [ElementHandle](./puppeteer.elementhandle.md) | ElementHandle represents an in-page DOM element. |
| [EventEmitter](./puppeteer.eventemitter.md) | The EventEmitter class that many Puppeteer classes extend. |
| [ExecutionContext](./puppeteer.executioncontext.md) | |
| [ExecutionContext](./puppeteer.executioncontext.md) | This class represents a context for JavaScript execution. A \[Page\] might have many execution contexts: - each [frame](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe) has "default" execution context that is always created after frame is attached to DOM. This context is returned by the method. - [Extension](https://developer.chrome.com/extensions)<!-- -->'s content scripts create additional execution contexts.<!-- -->Besides pages, execution contexts can be found in [workers](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API)<!-- -->. |
| [FileChooser](./puppeteer.filechooser.md) | File choosers let you react to the page requesting for a file. |
| [Frame](./puppeteer.frame.md) | |
| [FrameManager](./puppeteer.framemanager.md) | |
Expand All @@ -29,7 +29,7 @@
| [Keyboard](./puppeteer.keyboard.md) | |
| [Mouse](./puppeteer.mouse.md) | The Mouse class operates in main-frame CSS pixels relative to the top-left corner of the viewport. |
| [Page](./puppeteer.page.md) | Page provides methods to interact with a single tab or \[extension background page\](https://developer.chrome.com/extensions/background\_pages) in Chromium. One \[Browser\] instance might have multiple \[Page\] instances. |
| [Puppeteer](./puppeteer.puppeteer.md) | The main Puppeteer class |
| [Puppeteer](./puppeteer.puppeteer.md) | The main Puppeteer class Puppeteer module provides a method to launch a browser instance. |
| [SecurityDetails](./puppeteer.securitydetails.md) | The SecurityDetails class represents the security details of a response that was received over a secure connection. |
| [Target](./puppeteer.target.md) | |
| [TimeoutError](./puppeteer.timeouterror.md) | TimeoutError is emitted whenever certain operations are terminated due to timeout. |
Expand Down
15 changes: 0 additions & 15 deletions new-docs/puppeteer.puppeteer.__experimental_clearqueryhandlers.md

This file was deleted.

15 changes: 0 additions & 15 deletions new-docs/puppeteer.puppeteer.__experimental_customqueryhandlers.md

This file was deleted.

This file was deleted.