fix(firefox): use global eval in injected script (#9101)

This commit is contained in:
Pavel Feldman 2021-09-22 21:49:14 -07:00 committed by GitHub
parent 2afe76d86d
commit e03db79682
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 1 deletions

View File

@ -1226,7 +1226,7 @@ export class Frame extends SdkObject {
return controller.run(async progress => { return controller.run(async progress => {
const rerunnableTask = new RerunnableTask(data, progress, injectedScript => { const rerunnableTask = new RerunnableTask(data, progress, injectedScript => {
return injectedScript.evaluateHandle((injected, { info, taskData, callbackText }) => { return injectedScript.evaluateHandle((injected, { info, taskData, callbackText }) => {
const callback = window.eval(callbackText); const callback = injected.eval(callbackText);
return injected.pollRaf((progress, continuePolling) => { return injected.pollRaf((progress, continuePolling) => {
const element = injected.querySelector(info.parsed, document, info.strict); const element = injected.querySelector(info.parsed, document, info.strict);
if (!element) if (!element)

View File

@ -89,6 +89,10 @@ export class InjectedScript {
this._replaceRafWithTimeout = replaceRafWithTimeout; this._replaceRafWithTimeout = replaceRafWithTimeout;
} }
eval(expression: string): any {
return global.eval(expression);
}
parseSelector(selector: string): ParsedSelector { parseSelector(selector: string): ParsedSelector {
const result = parseSelector(selector); const result = parseSelector(selector);
for (const part of result.parts) { for (const part of result.parts) {