diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-12 05:43:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-12 05:43:14 +0000 |
commit | 8dd16259287f58f9273002717ec4d27e97127719 (patch) | |
tree | 3863e62a53829a84037444beab3abd4ed9dfc7d0 /remote/test/puppeteer/packages/puppeteer-core/src/api/Frame.ts | |
parent | Releasing progress-linux version 126.0.1-1~progress7.99u1. (diff) | |
download | firefox-8dd16259287f58f9273002717ec4d27e97127719.tar.xz firefox-8dd16259287f58f9273002717ec4d27e97127719.zip |
Merging upstream version 127.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'remote/test/puppeteer/packages/puppeteer-core/src/api/Frame.ts')
-rw-r--r-- | remote/test/puppeteer/packages/puppeteer-core/src/api/Frame.ts | 143 |
1 files changed, 72 insertions, 71 deletions
diff --git a/remote/test/puppeteer/packages/puppeteer-core/src/api/Frame.ts b/remote/test/puppeteer/packages/puppeteer-core/src/api/Frame.ts index 19b5eb7fa0..ff476cd054 100644 --- a/remote/test/puppeteer/packages/puppeteer-core/src/api/Frame.ts +++ b/remote/test/puppeteer/packages/puppeteer-core/src/api/Frame.ts @@ -18,7 +18,6 @@ import type {PuppeteerLifeCycleEvent} from '../cdp/LifecycleWatcher.js'; import {EventEmitter, type EventType} from '../common/EventEmitter.js'; import {getQueryHandlerAndSelector} from '../common/GetQueryHandler.js'; import {transposeIterableHandle} from '../common/HandleIterator.js'; -import {LazyArg} from '../common/LazyArg.js'; import type { Awaitable, EvaluateFunc, @@ -63,6 +62,10 @@ export interface WaitForOptions { * @defaultValue `'load'` */ waitUntil?: PuppeteerLifeCycleEvent | PuppeteerLifeCycleEvent[]; + /** + * @internal + */ + ignoreSameDocumentNavigation?: boolean; } /** @@ -405,7 +408,7 @@ export abstract class Frame extends EventEmitter<FrameEvents> { } /** - * @internal + * @returns The frame element associated with this frame (if any). */ @throwIfDetached async frameElement(): Promise<HandleFor<HTMLIFrameElement> | null> { @@ -447,7 +450,7 @@ export abstract class Frame extends EventEmitter<FrameEvents> { } /** - * Behaves identically to {@link Page.evaluate} except it's run within the + * Behaves identically to {@link Page.evaluate} except it's run within * the context of this frame. * * @see {@link Page.evaluate} for details. @@ -760,6 +763,13 @@ export abstract class Frame extends EventEmitter<FrameEvents> { * @remarks * This value is calculated once when the frame is created, and will not * update if the attribute is changed later. + * + * @deprecated Use + * + * ```ts + * const element = await frame.frameElement(); + * const nameOrId = await element.evaluate(frame => frame.name ?? frame.id); + * ``` */ name(): string { return this._name || ''; @@ -830,42 +840,37 @@ export abstract class Frame extends EventEmitter<FrameEvents> { return await this.mainRealm().transferHandle( await this.isolatedRealm().evaluateHandle( - async ({Deferred}, {url, id, type, content}) => { - const deferred = Deferred.create<void>(); - const script = document.createElement('script'); - script.type = type; - script.text = content; - if (url) { - script.src = url; - script.addEventListener( - 'load', - () => { - return deferred.resolve(); - }, - {once: true} - ); + async ({url, id, type, content}) => { + return await new Promise<HTMLScriptElement>((resolve, reject) => { + const script = document.createElement('script'); + script.type = type; + script.text = content; script.addEventListener( 'error', event => { - deferred.reject( - new Error(event.message ?? 'Could not load script') - ); + reject(new Error(event.message ?? 'Could not load script')); }, {once: true} ); - } else { - deferred.resolve(); - } - if (id) { - script.id = id; - } - document.head.appendChild(script); - await deferred.valueOrThrow(); - return script; + if (id) { + script.id = id; + } + if (url) { + script.src = url; + script.addEventListener( + 'load', + () => { + resolve(script); + }, + {once: true} + ); + document.head.appendChild(script); + } else { + document.head.appendChild(script); + resolve(script); + } + }); }, - LazyArg.create(context => { - return context.puppeteerUtil; - }), {...options, type, content} ) ); @@ -915,46 +920,42 @@ export abstract class Frame extends EventEmitter<FrameEvents> { } return await this.mainRealm().transferHandle( - await this.isolatedRealm().evaluateHandle( - async ({Deferred}, {url, content}) => { - const deferred = Deferred.create<void>(); - let element: HTMLStyleElement | HTMLLinkElement; - if (!url) { - element = document.createElement('style'); - element.appendChild(document.createTextNode(content!)); - } else { - const link = document.createElement('link'); - link.rel = 'stylesheet'; - link.href = url; - element = link; + await this.isolatedRealm().evaluateHandle(async ({url, content}) => { + return await new Promise<HTMLStyleElement | HTMLLinkElement>( + (resolve, reject) => { + let element: HTMLStyleElement | HTMLLinkElement; + if (!url) { + element = document.createElement('style'); + element.appendChild(document.createTextNode(content!)); + } else { + const link = document.createElement('link'); + link.rel = 'stylesheet'; + link.href = url; + element = link; + } + element.addEventListener( + 'load', + () => { + resolve(element); + }, + {once: true} + ); + element.addEventListener( + 'error', + event => { + reject( + new Error( + (event as ErrorEvent).message ?? 'Could not load style' + ) + ); + }, + {once: true} + ); + document.head.appendChild(element); + return element; } - element.addEventListener( - 'load', - () => { - deferred.resolve(); - }, - {once: true} - ); - element.addEventListener( - 'error', - event => { - deferred.reject( - new Error( - (event as ErrorEvent).message ?? 'Could not load style' - ) - ); - }, - {once: true} - ); - document.head.appendChild(element); - await deferred.valueOrThrow(); - return element; - }, - LazyArg.create(context => { - return context.puppeteerUtil; - }), - options - ) + ); + }, options) ); } |