refactor: remove deferred from addScriptTag (#12165)

This commit is contained in:
Alex Rudenko 2024-03-27 17:23:51 +01:00 committed by GitHub
parent c9ad6b48c4
commit 957cb8ee6c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 26 additions and 31 deletions

View File

@ -841,42 +841,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}
)
);

View File

@ -649,7 +649,7 @@
"platforms": ["darwin", "linux", "win32"],
"parameters": ["webDriverBiDi"],
"expectations": ["FAIL"],
"comment": "TODO: add a comment explaining why this expectation is required (include links to issues)"
"comment": "See https://github.com/puppeteer/puppeteer/issues/4840"
},
{
"testIdPattern": "[page.spec] Page Page.addStyleTag should throw when added with content to the CSP page",
@ -3010,7 +3010,7 @@
"platforms": ["darwin", "linux", "win32"],
"parameters": ["cdp", "chrome"],
"expectations": ["SKIP"],
"comment": "TODO: add a comment explaining why this expectation is required (include links to issues)"
"comment": "See https://github.com/puppeteer/puppeteer/issues/4840"
},
{
"testIdPattern": "[page.spec] Page Page.addScriptTag should throw when added with content to the CSP page",