diff --git a/docs/api/index.md b/docs/api/index.md index 8a4e32d92b336..9eabae6bfd517 100644 --- a/docs/api/index.md +++ b/docs/api/index.md @@ -6,40 +6,39 @@ sidebar_label: API ## Classes -| Class | Description | -| --------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [Accessibility](./puppeteer.accessibility.md) | The Accessibility class provides methods for inspecting Chromium's accessibility tree. The accessibility tree is used by assistive technology such as [screen readers](https://en.wikipedia.org/wiki/Screen_reader) or [switches](https://en.wikipedia.org/wiki/Switch_access). | -| [Browser](./puppeteer.browser.md) | A Browser is created when Puppeteer connects to a Chromium instance, either through [PuppeteerNode.launch()](./puppeteer.puppeteernode.launch.md) or [Puppeteer.connect()](./puppeteer.puppeteer.connect.md). | -| [BrowserContext](./puppeteer.browsercontext.md) | BrowserContexts provide a way to operate multiple independent browser sessions. When a browser is launched, it has a single BrowserContext used by default. The method [Browser.newPage](./puppeteer.browser.newpage.md) creates a page in the default browser context. | -| [BrowserFetcher](./puppeteer.browserfetcher.md) | BrowserFetcher can download and manage different versions of Chromium and Firefox. | -| [CDPSession](./puppeteer.cdpsession.md) | The CDPSession instances are used to talk raw Chrome Devtools Protocol. | -| [Connection](./puppeteer.connection.md) | | -| [ConsoleMessage](./puppeteer.consolemessage.md) | ConsoleMessage objects are dispatched by page via the 'console' event. | -| [Coverage](./puppeteer.coverage.md) | The Coverage class provides methods to gathers information about parts of JavaScript and CSS that were used by the page. | -| [CSSCoverage](./puppeteer.csscoverage.md) | | -| [CustomError](./puppeteer.customerror.md) | | -| [Dialog](./puppeteer.dialog.md) | Dialog instances are dispatched by the [Page](./puppeteer.page.md) via the dialog 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) | | -| [FileChooser](./puppeteer.filechooser.md) | File choosers let you react to the page requesting for a file. | -| [Frame](./puppeteer.frame.md) |

Represents a DOM frame.

To understand frames, you can think of frames as <iframe> elements. Just like iframes, frames can be nested, and when JavaScript is executed in a frame, the JavaScript does not effect frames inside the ambient frame the JavaScript executes in.

| -| [HTTPRequest](./puppeteer.httprequest.md) | Represents an HTTP request sent by a page. | -| [HTTPResponse](./puppeteer.httpresponse.md) | The HTTPResponse class represents responses which are received by the [Page](./puppeteer.page.md) class. | -| [JSCoverage](./puppeteer.jscoverage.md) | | -| [JSHandle](./puppeteer.jshandle.md) |

Represents a reference to a JavaScript object. Instances can be created using [Page.evaluateHandle()](./puppeteer.page.evaluatehandle.md).

Handles prevent the referenced JavaScript object from being garbage-collected unless the handle is purposely [disposed](./puppeteer.jshandle.dispose.md). JSHandles are auto-disposed when their associated frame is navigated away or the parent context gets destroyed.

Handles can be used as arguments for any evaluation function such as [Page.$eval()](./puppeteer.page._eval.md), [Page.evaluate()](./puppeteer.page.evaluate.md), and [Page.evaluateHandle()](./puppeteer.page.evaluatehandle.md). They are resolved to their referenced object.

| -| [Keyboard](./puppeteer.keyboard.md) | Keyboard provides an api for managing a virtual keyboard. The high level api is [Keyboard.type()](./puppeteer.keyboard.type.md), which takes raw characters and generates proper keydown, keypress/input, and keyup events on your page. | -| [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.

:::note

One Browser instance might have multiple Page instances.

:::

| -| [ProtocolError](./puppeteer.protocolerror.md) | ProtocolError is emitted whenever there is an error from the protocol. | -| [Puppeteer](./puppeteer.puppeteer.md) |

The main Puppeteer class.

IMPORTANT: if you are using Puppeteer in a Node environment, you will get an instance of [PuppeteerNode](./puppeteer.puppeteernode.md) when you import or require puppeteer. That class extends Puppeteer, so has all the methods documented below as well as all that are defined on [PuppeteerNode](./puppeteer.puppeteernode.md).

| -| [PuppeteerNode](./puppeteer.puppeteernode.md) |

Extends the main [Puppeteer](./puppeteer.puppeteer.md) class with Node specific behaviour for fetching and downloading browsers.

If you're using Puppeteer in a Node environment, this is the class you'll get when you run require('puppeteer') (or the equivalent ES import).

| -| [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. | -| [Touchscreen](./puppeteer.touchscreen.md) | The Touchscreen class exposes touchscreen events. | -| [Tracing](./puppeteer.tracing.md) | The Tracing class exposes the tracing audit interface. | -| [WebWorker](./puppeteer.webworker.md) | This class represents a [WebWorker](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API). | +| Class | Description | +| ------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [Accessibility](./puppeteer.accessibility.md) | The Accessibility class provides methods for inspecting Chromium's accessibility tree. The accessibility tree is used by assistive technology such as [screen readers](https://en.wikipedia.org/wiki/Screen_reader) or [switches](https://en.wikipedia.org/wiki/Switch_access). | +| [Browser](./puppeteer.browser.md) | A Browser is created when Puppeteer connects to a Chromium instance, either through [PuppeteerNode.launch()](./puppeteer.puppeteernode.launch.md) or [Puppeteer.connect()](./puppeteer.puppeteer.connect.md). | +| [BrowserContext](./puppeteer.browsercontext.md) | BrowserContexts provide a way to operate multiple independent browser sessions. When a browser is launched, it has a single BrowserContext used by default. The method [Browser.newPage](./puppeteer.browser.newpage.md) creates a page in the default browser context. | +| [BrowserFetcher](./puppeteer.browserfetcher.md) | BrowserFetcher can download and manage different versions of Chromium and Firefox. | +| [CDPSession](./puppeteer.cdpsession.md) | The CDPSession instances are used to talk raw Chrome Devtools Protocol. | +| [Connection](./puppeteer.connection.md) | | +| [ConsoleMessage](./puppeteer.consolemessage.md) | ConsoleMessage objects are dispatched by page via the 'console' event. | +| [Coverage](./puppeteer.coverage.md) | The Coverage class provides methods to gathers information about parts of JavaScript and CSS that were used by the page. | +| [CSSCoverage](./puppeteer.csscoverage.md) | | +| [CustomError](./puppeteer.customerror.md) | | +| [Dialog](./puppeteer.dialog.md) | Dialog instances are dispatched by the [Page](./puppeteer.page.md) via the dialog event. | +| [ElementHandle](./puppeteer.elementhandle.md) | ElementHandle represents an in-page DOM element. | +| [EventEmitter](./puppeteer.eventemitter.md) | The EventEmitter class that many Puppeteer classes extend. | +| [FileChooser](./puppeteer.filechooser.md) | File choosers let you react to the page requesting for a file. | +| [Frame](./puppeteer.frame.md) |

Represents a DOM frame.

To understand frames, you can think of frames as <iframe> elements. Just like iframes, frames can be nested, and when JavaScript is executed in a frame, the JavaScript does not effect frames inside the ambient frame the JavaScript executes in.

| +| [HTTPRequest](./puppeteer.httprequest.md) | Represents an HTTP request sent by a page. | +| [HTTPResponse](./puppeteer.httpresponse.md) | The HTTPResponse class represents responses which are received by the [Page](./puppeteer.page.md) class. | +| [JSCoverage](./puppeteer.jscoverage.md) | | +| [JSHandle](./puppeteer.jshandle.md) |

Represents a reference to a JavaScript object. Instances can be created using [Page.evaluateHandle()](./puppeteer.page.evaluatehandle.md).

Handles prevent the referenced JavaScript object from being garbage-collected unless the handle is purposely [disposed](./puppeteer.jshandle.dispose.md). JSHandles are auto-disposed when their associated frame is navigated away or the parent context gets destroyed.

Handles can be used as arguments for any evaluation function such as [Page.$eval()](./puppeteer.page._eval.md), [Page.evaluate()](./puppeteer.page.evaluate.md), and [Page.evaluateHandle()](./puppeteer.page.evaluatehandle.md). They are resolved to their referenced object.

| +| [Keyboard](./puppeteer.keyboard.md) | Keyboard provides an api for managing a virtual keyboard. The high level api is [Keyboard.type()](./puppeteer.keyboard.type.md), which takes raw characters and generates proper keydown, keypress/input, and keyup events on your page. | +| [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.

:::note

One Browser instance might have multiple Page instances.

:::

| +| [ProtocolError](./puppeteer.protocolerror.md) | ProtocolError is emitted whenever there is an error from the protocol. | +| [Puppeteer](./puppeteer.puppeteer.md) |

The main Puppeteer class.

IMPORTANT: if you are using Puppeteer in a Node environment, you will get an instance of [PuppeteerNode](./puppeteer.puppeteernode.md) when you import or require puppeteer. That class extends Puppeteer, so has all the methods documented below as well as all that are defined on [PuppeteerNode](./puppeteer.puppeteernode.md).

| +| [PuppeteerNode](./puppeteer.puppeteernode.md) |

Extends the main [Puppeteer](./puppeteer.puppeteer.md) class with Node specific behaviour for fetching and downloading browsers.

If you're using Puppeteer in a Node environment, this is the class you'll get when you run require('puppeteer') (or the equivalent ES import).

| +| [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. | +| [Touchscreen](./puppeteer.touchscreen.md) | The Touchscreen class exposes touchscreen events. | +| [Tracing](./puppeteer.tracing.md) | The Tracing class exposes the tracing audit interface. | +| [WebWorker](./puppeteer.webworker.md) | This class represents a [WebWorker](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API). | ## Enumerations diff --git a/docs/api/puppeteer.executioncontext.evaluate.md b/docs/api/puppeteer.executioncontext.evaluate.md deleted file mode 100644 index 549997871f57f..0000000000000 --- a/docs/api/puppeteer.executioncontext.evaluate.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -sidebar_label: ExecutionContext.evaluate ---- - -# ExecutionContext.evaluate() method - -Evaluates the given function. - -**Signature:** - -```typescript -class ExecutionContext { - evaluate< - Params extends unknown[], - Func extends EvaluateFunc = EvaluateFunc - >( - pageFunction: Func | string, - ...args: Params - ): Promise>>; -} -``` - -## Parameters - -| Parameter | Type | Description | -| ------------ | -------------- | ----------------------------------------------- | -| pageFunction | Func \| string | The function to evaluate. | -| args | Params | Additional arguments to pass into the function. | - -**Returns:** - -Promise<Awaited<ReturnType<Func>>> - -The result of evaluating the function. If the result is an object, a vanilla object containing the serializable properties of the result is returned. - -## Example 1 - -```ts -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: - -```ts -console.log(await executionContext.evaluate('1 + 2')); // prints "3" -``` - -## Example 3 - -Handles can also be passed as `args`. They resolve to their referenced object: - -```ts -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'. -``` diff --git a/docs/api/puppeteer.executioncontext.evaluatehandle.md b/docs/api/puppeteer.executioncontext.evaluatehandle.md deleted file mode 100644 index d35dcfa9660f0..0000000000000 --- a/docs/api/puppeteer.executioncontext.evaluatehandle.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -sidebar_label: ExecutionContext.evaluateHandle ---- - -# ExecutionContext.evaluateHandle() method - -Evaluates the given function. - -Unlike [evaluate](./puppeteer.executioncontext.evaluate.md), this method returns a handle to the result of the function. - -This method may be better suited if the object cannot be serialized (e.g. `Map`) and requires further manipulation. - -**Signature:** - -```typescript -class ExecutionContext { - evaluateHandle< - Params extends unknown[], - Func extends EvaluateFunc = EvaluateFunc - >( - pageFunction: Func | string, - ...args: Params - ): Promise>>>; -} -``` - -## Parameters - -| Parameter | Type | Description | -| ------------ | -------------- | ----------------------------------------------- | -| pageFunction | Func \| string | The function to evaluate. | -| args | Params | Additional arguments to pass into the function. | - -**Returns:** - -Promise<[HandleFor](./puppeteer.handlefor.md)<Awaited<ReturnType<Func>>>> - -A [handle](./puppeteer.jshandle.md) to the result of evaluating the function. If the result is a `Node`, then this will return an [element handle](./puppeteer.elementhandle.md). - -## Example 1 - -```ts -const context = await page.mainFrame().executionContext(); -const handle: JSHandle = await context.evaluateHandle(() => - Promise.resolve(self) -); -``` - -## Example 2 - -A string can also be passed in instead of a function. - -```ts -const handle: JSHandle = await context.evaluateHandle('1 + 2'); -``` - -## Example 3 - -Handles can also be passed as `args`. They resolve to their referenced object: - -```ts -const bodyHandle: ElementHandle = await context.evaluateHandle( - () => { - return document.body; - } -); -const stringHandle: JSHandle = await context.evaluateHandle( - body => body.innerHTML, - body -); -console.log(await stringHandle.jsonValue()); // prints body's innerHTML -// Always dispose your garbage! :) -await bodyHandle.dispose(); -await stringHandle.dispose(); -``` diff --git a/docs/api/puppeteer.executioncontext.frame.md b/docs/api/puppeteer.executioncontext.frame.md deleted file mode 100644 index 07afe93bd4701..0000000000000 --- a/docs/api/puppeteer.executioncontext.frame.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -sidebar_label: ExecutionContext.frame ---- - -# ExecutionContext.frame() method - -**Signature:** - -```typescript -class ExecutionContext { - frame(): Frame | null; -} -``` - -**Returns:** - -[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](./puppeteer.webworker.md) have execution contexts that are not associated with frames. diff --git a/docs/api/puppeteer.executioncontext.md b/docs/api/puppeteer.executioncontext.md deleted file mode 100644 index d59ee4c1156a5..0000000000000 --- a/docs/api/puppeteer.executioncontext.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -sidebar_label: ExecutionContext ---- - -# ExecutionContext class - -> Warning: This API is now obsolete. -> -> Do not use directly. -> -> Represents a context for JavaScript execution. - -**Signature:** - -```typescript -export declare class ExecutionContext -``` - -## Remarks - -Besides pages, execution contexts can be found in [workers](./puppeteer.webworker.md). - -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. - -## Example - -A [Page](./puppeteer.page.md) can have several execution contexts: - -- Each [Frame](./puppeteer.frame.md) of a [page](./puppeteer.page.md) has a "default" execution context that is always created after frame is attached to DOM. This context is returned by the [Frame.executionContext()](./puppeteer.frame.executioncontext.md) method. - Each [Chrome extensions](https://developer.chrome.com/extensions) creates additional execution contexts to isolate their code. - -## Methods - -| Method | Modifiers | Description | -| ------------------------------------------------------------------------------------ | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [evaluate(pageFunction, args)](./puppeteer.executioncontext.evaluate.md) | | Evaluates the given function. | -| [evaluateHandle(pageFunction, args)](./puppeteer.executioncontext.evaluatehandle.md) | |

Evaluates the given function.

Unlike [evaluate](./puppeteer.executioncontext.evaluate.md), this method returns a handle to the result of the function.

This method may be better suited if the object cannot be serialized (e.g. Map) and requires further manipulation.

| -| [frame()](./puppeteer.executioncontext.frame.md) | | | -| [queryObjects(prototypeHandle)](./puppeteer.executioncontext.queryobjects.md) | | Iterates through the JavaScript heap and finds all the objects with the given prototype. | diff --git a/docs/api/puppeteer.executioncontext.queryobjects.md b/docs/api/puppeteer.executioncontext.queryobjects.md deleted file mode 100644 index 8b55d68b0ceb3..0000000000000 --- a/docs/api/puppeteer.executioncontext.queryobjects.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -sidebar_label: ExecutionContext.queryObjects ---- - -# ExecutionContext.queryObjects() method - -Iterates through the JavaScript heap and finds all the objects with the given prototype. - -**Signature:** - -```typescript -class ExecutionContext { - queryObjects( - prototypeHandle: JSHandle - ): Promise>; -} -``` - -## Parameters - -| Parameter | Type | Description | -| --------------- | ---------------------------------------------------- | -------------------------------- | -| prototypeHandle | [JSHandle](./puppeteer.jshandle.md)<Prototype> | a handle to the object prototype | - -**Returns:** - -Promise<[HandleFor](./puppeteer.handlefor.md)<Prototype\[\]>> - -A handle to an array of objects with the given prototype. - -## Example - -```ts -// 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(); -``` diff --git a/docs/api/puppeteer.frame.executioncontext.md b/docs/api/puppeteer.frame.executioncontext.md deleted file mode 100644 index 9a364c79a5669..0000000000000 --- a/docs/api/puppeteer.frame.executioncontext.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -sidebar_label: Frame.executionContext ---- - -# Frame.executionContext() method - -> Warning: This API is now obsolete. -> -> Do not use the execution context directly. - -**Signature:** - -```typescript -class Frame { - executionContext(): Promise; -} -``` - -**Returns:** - -Promise<[ExecutionContext](./puppeteer.executioncontext.md)> - -a promise that resolves to the frame's default execution context. diff --git a/docs/api/puppeteer.frame.md b/docs/api/puppeteer.frame.md index 54a9e0ff4c328..0d94f79992ce3 100644 --- a/docs/api/puppeteer.frame.md +++ b/docs/api/puppeteer.frame.md @@ -75,7 +75,6 @@ console.log(text); | [content()](./puppeteer.frame.content.md) | | | | [evaluate(pageFunction, args)](./puppeteer.frame.evaluate.md) | | Behaves identically to [Page.evaluate()](./puppeteer.page.evaluate.md) except it's run within the the context of this frame. | | [evaluateHandle(pageFunction, args)](./puppeteer.frame.evaluatehandle.md) | | Behaves identically to [Page.evaluateHandle()](./puppeteer.page.evaluatehandle.md) except it's run within the context of this frame. | -| [executionContext()](./puppeteer.frame.executioncontext.md) | | | | [focus(selector)](./puppeteer.frame.focus.md) | | Focuses the first element that matches the selector. | | [goto(url, options)](./puppeteer.frame.goto.md) | | Navigates a frame to the given url. | | [hover(selector)](./puppeteer.frame.hover.md) | | Hovers the pointer over the center of the first element that matches the selector. | diff --git a/docs/api/puppeteer.jshandle.executioncontext.md b/docs/api/puppeteer.jshandle.executioncontext.md deleted file mode 100644 index 60f9c0ee58751..0000000000000 --- a/docs/api/puppeteer.jshandle.executioncontext.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -sidebar_label: JSHandle.executionContext ---- - -# JSHandle.executionContext() method - -**Signature:** - -```typescript -class JSHandle { - executionContext(): ExecutionContext; -} -``` - -**Returns:** - -[ExecutionContext](./puppeteer.executioncontext.md) - -The execution context the handle belongs to. diff --git a/docs/api/puppeteer.jshandle.md b/docs/api/puppeteer.jshandle.md index cc1a3e5472682..450a4bc627b01 100644 --- a/docs/api/puppeteer.jshandle.md +++ b/docs/api/puppeteer.jshandle.md @@ -40,7 +40,6 @@ const windowHandle = await page.evaluateHandle(() => window); | [dispose()](./puppeteer.jshandle.dispose.md) | | Releases the object referenced by the handle for garbage collection. | | [evaluate(pageFunction, args)](./puppeteer.jshandle.evaluate.md) | | Evaluates the given function with the current handle as its first argument. | | [evaluateHandle(pageFunction, args)](./puppeteer.jshandle.evaluatehandle.md) | | Evaluates the given function with the current handle as its first argument. | -| [executionContext()](./puppeteer.jshandle.executioncontext.md) | | | | [getProperties()](./puppeteer.jshandle.getproperties.md) | | Gets a map of handles representing the properties of the current handle. | | [getProperty(propertyName)](./puppeteer.jshandle.getproperty.md) | | Fetches a single property from the referenced object. | | [getProperty(propertyName)](./puppeteer.jshandle.getproperty_1.md) | | | diff --git a/docs/api/puppeteer.page.queryobjects.md b/docs/api/puppeteer.page.queryobjects.md index 60be51ac4671d..8bed1e0dbd20c 100644 --- a/docs/api/puppeteer.page.queryobjects.md +++ b/docs/api/puppeteer.page.queryobjects.md @@ -28,10 +28,6 @@ Promise<[JSHandle](./puppeteer.jshandle.md)<Prototype\[\]>> Promise which resolves to a handle to an array of objects with this prototype. -## Remarks - -Shortcut for [page.mainFrame().executionContext().queryObjects(prototypeHandle)](./puppeteer.executioncontext.queryobjects.md). - ## Example ```ts diff --git a/docs/api/puppeteer.webworker.executioncontext.md b/docs/api/puppeteer.webworker.executioncontext.md deleted file mode 100644 index 1db00f6c6a457..0000000000000 --- a/docs/api/puppeteer.webworker.executioncontext.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -sidebar_label: WebWorker.executionContext ---- - -# WebWorker.executionContext() method - -> Warning: This API is now obsolete. -> -> Do not use directly. - -**Signature:** - -```typescript -class WebWorker { - executionContext(): Promise; -} -``` - -**Returns:** - -Promise<[ExecutionContext](./puppeteer.executioncontext.md)> - -The ExecutionContext the web worker runs in. diff --git a/docs/api/puppeteer.webworker.md b/docs/api/puppeteer.webworker.md index cc48ca04fd2d9..1896cbe4cc6d9 100644 --- a/docs/api/puppeteer.webworker.md +++ b/docs/api/puppeteer.webworker.md @@ -42,5 +42,4 @@ for (const worker of page.workers()) { | ----------------------------------------------------------------------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [evaluate(pageFunction, args)](./puppeteer.webworker.evaluate.md) | | If the function passed to the worker.evaluate returns a Promise, then worker.evaluate would wait for the promise to resolve and return its value. If the function passed to the worker.evaluate returns a non-serializable value, then worker.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. Shortcut for await worker.executionContext()).evaluate(pageFunction, ...args). | | [evaluateHandle(pageFunction, args)](./puppeteer.webworker.evaluatehandle.md) | | The only difference between worker.evaluate and worker.evaluateHandle is that worker.evaluateHandle returns in-page object (JSHandle). If the function passed to the worker.evaluateHandle returns a Promise, then worker.evaluateHandle would wait for the promise to resolve and return its value. Shortcut for await worker.executionContext()).evaluateHandle(pageFunction, ...args) | -| [executionContext()](./puppeteer.webworker.executioncontext.md) | | | | [url()](./puppeteer.webworker.url.md) | | | diff --git a/src/common/ExecutionContext.ts b/src/common/ExecutionContext.ts index 114652b0f8998..c4a1ef5136a82 100644 --- a/src/common/ExecutionContext.ts +++ b/src/common/ExecutionContext.ts @@ -35,8 +35,6 @@ export const EVALUATION_SCRIPT_URL = 'pptr://__puppeteer_evaluation_script__'; const SOURCE_URL_REGEX = /^[\040\t]*\/\/[@#] sourceURL=\s*(\S*?)\s*$/m; /** - * @deprecated Do not use directly. - * * Represents a context for JavaScript execution. * * @example @@ -55,6 +53,8 @@ const SOURCE_URL_REGEX = /^[\040\t]*\/\/[@#] sourceURL=\s*(\S*?)\s*$/m; * @remarks * Besides pages, execution contexts can be found in * {@link WebWorker | workers}. + * + * @internal */ export class ExecutionContext { /** diff --git a/src/common/Frame.ts b/src/common/Frame.ts index 0c74b4206ff67..e48719aa1d08d 100644 --- a/src/common/Frame.ts +++ b/src/common/Frame.ts @@ -398,9 +398,7 @@ export class Frame { } /** - * @deprecated Do not use the execution context directly. - * - * @returns a promise that resolves to the frame's default execution context. + * @internal */ executionContext(): Promise { return this.worlds[MAIN_WORLD].executionContext(); diff --git a/src/common/JSHandle.ts b/src/common/JSHandle.ts index c2c070bbdafb5..60ec2a3d1acde 100644 --- a/src/common/JSHandle.ts +++ b/src/common/JSHandle.ts @@ -108,7 +108,7 @@ export class JSHandle { } /** - * @returns The execution context the handle belongs to. + * @internal */ executionContext(): ExecutionContext { return this.#context; diff --git a/src/common/Page.ts b/src/common/Page.ts index 7274136142e6b..e652e5a630b4e 100644 --- a/src/common/Page.ts +++ b/src/common/Page.ts @@ -1136,11 +1136,6 @@ export class Page extends EventEmitter { * This method iterates the JavaScript heap and finds all objects with the * given prototype. * - * @remarks - * Shortcut for - * {@link ExecutionContext.queryObjects | - * page.mainFrame().executionContext().queryObjects(prototypeHandle)}. - * * @example * * ```ts @@ -1164,7 +1159,16 @@ export class Page extends EventEmitter { prototypeHandle: JSHandle ): Promise> { const context = await this.mainFrame().executionContext(); - return context.queryObjects(prototypeHandle); + assert(!prototypeHandle.disposed, 'Prototype JSHandle is disposed!'); + const remoteObject = prototypeHandle.remoteObject(); + assert( + remoteObject.objectId, + 'Prototype JSHandle must not be referencing primitive value' + ); + const response = await context._client.send('Runtime.queryObjects', { + prototypeObjectId: remoteObject.objectId, + }); + return createJSHandle(context, response.objects) as HandleFor; } /** diff --git a/src/common/WebWorker.ts b/src/common/WebWorker.ts index 1b42822373d30..cfc029c75cce4 100644 --- a/src/common/WebWorker.ts +++ b/src/common/WebWorker.ts @@ -107,9 +107,7 @@ export class WebWorker extends EventEmitter { } /** - * @deprecated Do not use directly. - * - * @returns The ExecutionContext the web worker runs in. + * @internal */ async executionContext(): Promise { return this.#executionContext;