summaryrefslogtreecommitdiffstats
path: root/remote/test/puppeteer/packages/puppeteer-core/src/api/Frame.ts
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-12 05:43:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-12 05:43:14 +0000
commit8dd16259287f58f9273002717ec4d27e97127719 (patch)
tree3863e62a53829a84037444beab3abd4ed9dfc7d0 /remote/test/puppeteer/packages/puppeteer-core/src/api/Frame.ts
parentReleasing progress-linux version 126.0.1-1~progress7.99u1. (diff)
downloadfirefox-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.ts143
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)
);
}