From e03db796828c3cbb3d1384f3ce2bcda48d4aa3fd Mon Sep 17 00:00:00 2001 From: Pavel Feldman Date: Wed, 22 Sep 2021 21:49:14 -0700 Subject: [PATCH] fix(firefox): use global eval in injected script (#9101) --- src/server/frames.ts | 2 +- src/server/injected/injectedScript.ts | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/server/frames.ts b/src/server/frames.ts index c9431aa25a..f050e6913a 100644 --- a/src/server/frames.ts +++ b/src/server/frames.ts @@ -1226,7 +1226,7 @@ export class Frame extends SdkObject { return controller.run(async progress => { const rerunnableTask = new RerunnableTask(data, progress, injectedScript => { return injectedScript.evaluateHandle((injected, { info, taskData, callbackText }) => { - const callback = window.eval(callbackText); + const callback = injected.eval(callbackText); return injected.pollRaf((progress, continuePolling) => { const element = injected.querySelector(info.parsed, document, info.strict); if (!element) diff --git a/src/server/injected/injectedScript.ts b/src/server/injected/injectedScript.ts index 3c57570893..165873d570 100644 --- a/src/server/injected/injectedScript.ts +++ b/src/server/injected/injectedScript.ts @@ -89,6 +89,10 @@ export class InjectedScript { this._replaceRafWithTimeout = replaceRafWithTimeout; } + eval(expression: string): any { + return global.eval(expression); + } + parseSelector(selector: string): ParsedSelector { const result = parseSelector(selector); for (const part of result.parts) {