chrome-devtools-frontend 1.0.1021097 → 1.0.1021582
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/config/gni/devtools_grd_files.gni +15 -10
 - package/front_end/.eslintrc.js +1 -0
 - package/front_end/core/i18n/locales/en-US.json +118 -4
 - package/front_end/core/i18n/locales/en-XL.json +118 -4
 - package/front_end/models/bindings/DebuggerLanguagePlugins.ts +8 -0
 - package/front_end/panels/application/components/FrameDetailsView.ts +3 -2
 - package/front_end/panels/application/components/Prerender2.ts +188 -0
 - package/front_end/panels/elements/CSSRuleValidator.ts +103 -13
 - package/front_end/panels/elements/ElementsTreeElement.ts +3 -1
 - package/front_end/panels/elements/StylePropertyTreeElement.ts +10 -8
 - package/front_end/panels/elements/components/CSSHintDetailsView.ts +71 -0
 - package/front_end/panels/elements/components/components.ts +2 -0
 - package/front_end/panels/elements/components/cssHintDetailsView.css +36 -0
 - package/front_end/panels/elements/stylesSectionTree.css +1 -1
 - package/front_end/panels/network/components/RequestHeadersView.ts +2 -1
 - package/front_end/services/puppeteer/PuppeteerConnection.ts +3 -5
 - package/front_end/third_party/lit-html/directives.ts +1 -0
 - package/front_end/third_party/lit-html/lit-html-tsconfig.json +1 -0
 - package/front_end/third_party/puppeteer/package/README.md +136 -214
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Accessibility.d.ts +6 -6
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Accessibility.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Accessibility.js +149 -85
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Accessibility.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/AriaQueryHandler.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/AriaQueryHandler.js +34 -10
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/AriaQueryHandler.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Browser.d.ts +17 -36
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Browser.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Browser.js +217 -160
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Browser.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.d.ts +5 -4
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.js +18 -13
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserWebSocketTransport.d.ts +4 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserWebSocketTransport.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserWebSocketTransport.js +30 -11
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserWebSocketTransport.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Connection.d.ts +21 -20
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Connection.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Connection.js +125 -82
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Connection.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.d.ts +1 -4
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.js +27 -9
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Coverage.d.ts +6 -30
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Coverage.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Coverage.js +167 -131
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Coverage.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DOMWorld.d.ts +36 -67
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DOMWorld.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DOMWorld.js +359 -215
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DOMWorld.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Debug.d.ts +8 -4
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Debug.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Debug.js +9 -6
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Debug.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DeviceDescriptors.d.ts +21 -2
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DeviceDescriptors.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DeviceDescriptors.js +26 -6
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DeviceDescriptors.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Dialog.d.ts +2 -6
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Dialog.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Dialog.js +32 -15
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Dialog.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ElementHandle.d.ts +355 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ElementHandle.d.ts.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ElementHandle.js +847 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ElementHandle.js.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/EmulationManager.d.ts +4 -3
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/EmulationManager.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/EmulationManager.js +25 -8
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/EmulationManager.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Errors.d.ts +28 -6
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Errors.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Errors.js +27 -7
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Errors.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/EventEmitter.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/EventEmitter.js +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/EventEmitter.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ExecutionContext.d.ts +20 -19
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ExecutionContext.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ExecutionContext.js +146 -126
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ExecutionContext.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FileChooser.d.ts +4 -6
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FileChooser.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FileChooser.js +25 -10
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FileChooser.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FrameManager.d.ts +53 -92
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FrameManager.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FrameManager.js +337 -320
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FrameManager.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.d.ts +16 -28
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.js +200 -147
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPResponse.d.ts +1 -18
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPResponse.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPResponse.js +86 -60
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPResponse.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Input.d.ts +18 -22
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Input.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Input.js +166 -117
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Input.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/JSHandle.d.ts +46 -395
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/JSHandle.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/JSHandle.js +80 -842
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/JSHandle.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/LifecycleWatcher.d.ts +4 -32
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/LifecycleWatcher.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/LifecycleWatcher.js +136 -108
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/LifecycleWatcher.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkConditions.d.ts +25 -7
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkConditions.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkConditions.js +23 -2
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkConditions.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkEventManager.d.ts +16 -11
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkEventManager.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkEventManager.js +39 -32
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkEventManager.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkManager.d.ts +2 -42
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkManager.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkManager.js +315 -316
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkManager.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/PDFOptions.d.ts +5 -3
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/PDFOptions.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/PDFOptions.js +2 -2
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/PDFOptions.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Page.d.ts +246 -287
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Page.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Page.js +841 -700
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Page.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Puppeteer.d.ts +37 -74
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Puppeteer.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Puppeteer.js +37 -89
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Puppeteer.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/QueryHandler.d.ts +38 -13
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/QueryHandler.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/QueryHandler.js +79 -29
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/QueryHandler.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/SecurityDetails.d.ts +1 -6
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/SecurityDetails.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/SecurityDetails.js +31 -12
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/SecurityDetails.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Target.d.ts +6 -9
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Target.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Target.js +80 -40
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Target.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/TaskQueue.d.ts +4 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/TaskQueue.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/TaskQueue.js +24 -3
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/TaskQueue.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/TimeoutSettings.d.ts +1 -2
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/TimeoutSettings.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/TimeoutSettings.js +28 -10
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/TimeoutSettings.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Tracing.d.ts +4 -5
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Tracing.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Tracing.js +50 -23
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Tracing.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/USKeyboardLayout.d.ts +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/USKeyboardLayout.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/USKeyboardLayout.js +2 -2
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/USKeyboardLayout.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/WebWorker.d.ts +9 -11
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/WebWorker.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/WebWorker.js +41 -31
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/WebWorker.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/assert.d.ts +4 -3
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/assert.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/assert.js +6 -8
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/assert.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/fetch.d.ts +5 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/fetch.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/fetch.js +6 -3
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/fetch.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/types.d.ts +48 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/types.d.ts.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/{EvalTypes.js → types.js} +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/types.js.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/util.d.ts +129 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/util.d.ts.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/{helper.js → util.js} +168 -87
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/util.js.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/compat.d.ts +3 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/compat.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/compat.js +3 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/compat.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/constants.d.ts +3 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/constants.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/constants.js +3 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/constants.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/environment.d.ts +3 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/environment.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/environment.js +3 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/environment.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.d.ts +4 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.js +4 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/{esm/puppeteer/initialize-node.d.ts → cjs/puppeteer/initializePuppeteer.d.ts} +5 -2
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/initializePuppeteer.d.ts.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/{initialize-node.js → initializePuppeteer.js} +18 -14
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/initializePuppeteer.js.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserFetcher.d.ts +4 -11
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserFetcher.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserFetcher.js +226 -158
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserFetcher.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserRunner.d.ts +9 -11
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserRunner.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserRunner.js +116 -72
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserRunner.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.d.ts +27 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.d.ts.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.js +176 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.js.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/FirefoxLauncher.d.ts +49 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/FirefoxLauncher.d.ts.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/FirefoxLauncher.js +361 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/FirefoxLauncher.js.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/LaunchOptions.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/NodeWebSocketTransport.d.ts +6 -3
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/NodeWebSocketTransport.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/NodeWebSocketTransport.js +44 -12
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/NodeWebSocketTransport.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/PipeTransport.d.ts +4 -20
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/PipeTransport.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/PipeTransport.js +60 -35
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/PipeTransport.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ProductLauncher.d.ts +31 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ProductLauncher.d.ts.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ProductLauncher.js +166 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ProductLauncher.js.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Puppeteer.d.ts +42 -41
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Puppeteer.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Puppeteer.js +69 -47
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Puppeteer.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/install.d.ts +6 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/install.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/install.js +55 -32
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/install.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/util.d.ts +10 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/util.d.ts.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/util.js +40 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/util.js.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/puppeteer-core.d.ts +23 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/puppeteer-core.d.ts.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/puppeteer-core.js +41 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/puppeteer-core.js.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/puppeteer.d.ts +26 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/puppeteer.d.ts.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/puppeteer.js +44 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/puppeteer.js.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts +6 -5
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +6 -3
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/tsconfig.cjs.tsbuildinfo +1 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/tsconfig.tsbuildinfo +1 -0
 - package/front_end/third_party/puppeteer/package/lib/{esm/puppeteer/api-docs-entry.js → cjs/puppeteer/types.d.ts} +46 -63
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/types.d.ts.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/{api-docs-entry.js → types.js} +50 -51
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/types.js.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/cjs/vendor/mitt/src/index.d.ts +0 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/vendor/mitt/src/index.js +11 -12
 - package/front_end/third_party/puppeteer/package/lib/cjs/vendor/tsconfig.cjs.tsbuildinfo +1 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Accessibility.d.ts +6 -6
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Accessibility.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Accessibility.js +149 -85
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Accessibility.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/AriaQueryHandler.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/AriaQueryHandler.js +34 -10
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/AriaQueryHandler.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Browser.d.ts +17 -36
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Browser.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Browser.js +217 -160
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Browser.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.d.ts +5 -4
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.js +16 -11
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserWebSocketTransport.d.ts +4 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserWebSocketTransport.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserWebSocketTransport.js +30 -11
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserWebSocketTransport.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Connection.d.ts +21 -20
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Connection.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Connection.js +125 -82
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Connection.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.d.ts +1 -4
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.js +27 -9
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Coverage.d.ts +6 -30
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Coverage.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Coverage.js +167 -131
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Coverage.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DOMWorld.d.ts +36 -67
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DOMWorld.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DOMWorld.js +335 -214
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DOMWorld.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Debug.d.ts +8 -4
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Debug.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Debug.js +9 -6
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Debug.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DeviceDescriptors.d.ts +21 -2
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DeviceDescriptors.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DeviceDescriptors.js +25 -5
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DeviceDescriptors.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Dialog.d.ts +2 -6
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Dialog.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Dialog.js +32 -15
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Dialog.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ElementHandle.d.ts +355 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ElementHandle.d.ts.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ElementHandle.js +820 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ElementHandle.js.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/EmulationManager.d.ts +4 -3
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/EmulationManager.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/EmulationManager.js +25 -8
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/EmulationManager.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.d.ts +28 -6
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.js +26 -6
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/EventEmitter.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/EventEmitter.js +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/EventEmitter.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ExecutionContext.d.ts +20 -19
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ExecutionContext.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ExecutionContext.js +145 -125
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ExecutionContext.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/FileChooser.d.ts +4 -6
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/FileChooser.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/FileChooser.js +25 -10
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/FileChooser.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.d.ts +53 -92
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.js +337 -320
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.d.ts +16 -28
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.js +199 -146
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPResponse.d.ts +1 -18
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPResponse.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPResponse.js +86 -60
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPResponse.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Input.d.ts +18 -22
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Input.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Input.js +167 -118
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Input.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.d.ts +46 -395
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.js +80 -817
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/JSHandle.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/LifecycleWatcher.d.ts +4 -32
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/LifecycleWatcher.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/LifecycleWatcher.js +135 -107
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/LifecycleWatcher.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkConditions.d.ts +25 -7
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkConditions.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkConditions.js +23 -2
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkConditions.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkEventManager.d.ts +16 -11
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkEventManager.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkEventManager.js +39 -32
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkEventManager.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.d.ts +2 -42
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.js +312 -313
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.d.ts +5 -3
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.js +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.d.ts +246 -287
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.js +819 -701
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Puppeteer.d.ts +37 -74
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Puppeteer.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Puppeteer.js +39 -91
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Puppeteer.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/QueryHandler.d.ts +38 -13
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/QueryHandler.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/QueryHandler.js +79 -29
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/QueryHandler.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/SecurityDetails.d.ts +1 -6
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/SecurityDetails.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/SecurityDetails.js +31 -12
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/SecurityDetails.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Target.d.ts +6 -9
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Target.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Target.js +80 -40
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Target.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/TaskQueue.d.ts +4 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/TaskQueue.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/TaskQueue.js +24 -3
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/TaskQueue.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/TimeoutSettings.d.ts +1 -2
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/TimeoutSettings.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/TimeoutSettings.js +28 -10
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/TimeoutSettings.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Tracing.d.ts +4 -5
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Tracing.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Tracing.js +50 -23
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Tracing.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/USKeyboardLayout.d.ts +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/USKeyboardLayout.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/USKeyboardLayout.js +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/USKeyboardLayout.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/WebWorker.d.ts +9 -11
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/WebWorker.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/WebWorker.js +41 -31
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/WebWorker.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/assert.d.ts +4 -3
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/assert.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/assert.js +5 -6
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/assert.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/fetch.d.ts +5 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/fetch.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/fetch.js +6 -3
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/fetch.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/types.d.ts +48 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/types.d.ts.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/{EvalTypes.js → types.js} +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/types.js.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/util.d.ts +129 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/util.d.ts.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/{helper.js → util.js} +161 -100
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/util.js.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/compat.d.ts +3 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/compat.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/compat.js +3 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/compat.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/constants.d.ts +3 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/constants.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/constants.js +3 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/constants.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/environment.d.ts +3 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/environment.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/environment.js +3 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/environment.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.d.ts +4 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.js +4 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/{cjs/puppeteer/initialize-node.d.ts → esm/puppeteer/initializePuppeteer.d.ts} +5 -2
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/initializePuppeteer.d.ts.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/{initialize-node.js → initializePuppeteer.js} +16 -12
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/initializePuppeteer.js.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.d.ts +4 -11
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.js +226 -158
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.d.ts +9 -11
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.js +113 -69
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.d.ts +27 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.d.ts.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.js +169 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.js.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/FirefoxLauncher.d.ts +49 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/FirefoxLauncher.d.ts.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/{Launcher.js → FirefoxLauncher.js} +51 -345
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/FirefoxLauncher.js.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/NodeWebSocketTransport.d.ts +6 -3
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/NodeWebSocketTransport.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/NodeWebSocketTransport.js +44 -12
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/NodeWebSocketTransport.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/PipeTransport.d.ts +4 -20
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/PipeTransport.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/PipeTransport.js +60 -35
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/PipeTransport.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ProductLauncher.d.ts +31 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ProductLauncher.d.ts.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ProductLauncher.js +157 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ProductLauncher.js.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Puppeteer.d.ts +42 -41
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Puppeteer.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Puppeteer.js +70 -45
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Puppeteer.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/install.d.ts +6 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/install.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/install.js +53 -30
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/install.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/util.d.ts +10 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/util.d.ts.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/util.js +13 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/util.js.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/puppeteer-core.d.ts +23 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/puppeteer-core.d.ts.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/{node-puppeteer-core.d.ts → puppeteer-core.js} +8 -2
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/puppeteer-core.js.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/puppeteer.d.ts +26 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/puppeteer.d.ts.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/{cjs/puppeteer/node-puppeteer-core.d.ts → esm/puppeteer/puppeteer.js} +11 -2
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/puppeteer.js.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +6 -5
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +6 -3
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js.map +1 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/tsconfig.esm.tsbuildinfo +1 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/tsconfig.tsbuildinfo +1 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/types.d.ts +64 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/types.d.ts.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/types.js +68 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/types.js.map +1 -0
 - package/front_end/third_party/puppeteer/package/lib/esm/vendor/mitt/src/index.d.ts +0 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/vendor/mitt/src/index.js +9 -10
 - package/front_end/third_party/puppeteer/package/lib/esm/vendor/tsconfig.esm.tsbuildinfo +1 -0
 - package/front_end/third_party/puppeteer/package/lib/types.d.ts +846 -1670
 - package/front_end/third_party/puppeteer/package/package.json +65 -68
 - package/front_end/third_party/puppeteer/package/typescript-if-required.js +17 -8
 - package/front_end/third_party/puppeteer/puppeteer.ts +7 -14
 - package/front_end/ui/components/linear_memory_inspector/LinearMemoryInspector.ts +2 -5
 - package/front_end/ui/components/linear_memory_inspector/LinearMemoryInspectorController.ts +22 -2
 - package/front_end/ui/components/linear_memory_inspector/LinearMemoryInspectorPane.ts +40 -12
 - package/front_end/ui/components/linear_memory_inspector/LinearMemoryViewer.ts +5 -5
 - package/front_end/ui/legacy/components/utils/Linkifier.ts +3 -1
 - package/package.json +1 -1
 - package/scripts/eslint_rules/lib/inject_checkbox_styles.js +4 -2
 - package/scripts/eslint_rules/tests/inject_checkbox_styles_test.js +45 -5
 - package/front_end/third_party/puppeteer/package/cjs-entry-core.js +0 -29
 - package/front_end/third_party/puppeteer/package/cjs-entry.js +0 -29
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api-docs-entry.d.ts +0 -111
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api-docs-entry.d.ts.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api-docs-entry.js.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/EvalTypes.d.ts +0 -61
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/EvalTypes.d.ts.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/EvalTypes.js.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Events.d.ts +0 -82
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Events.d.ts.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Events.js +0 -87
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Events.js.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/helper.d.ts +0 -85
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/helper.d.ts.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/helper.js.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/initialize-node.d.ts.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/initialize-node.js.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/initialize-web.d.ts +0 -18
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/initialize-web.d.ts.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/initialize-web.js +0 -27
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/initialize-web.js.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Launcher.d.ts +0 -18
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Launcher.d.ts.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Launcher.js +0 -674
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Launcher.js.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node-puppeteer-core.d.ts.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node-puppeteer-core.js +0 -25
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node-puppeteer-core.js.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node.d.ts +0 -18
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node.d.ts.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node.js +0 -24
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node.js.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/web.d.ts +0 -18
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/web.d.ts.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/web.js +0 -24
 - package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/web.js.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/vendor/mitt/src/index.d.ts.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/cjs/vendor/mitt/src/index.js.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api-docs-entry.d.ts +0 -111
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api-docs-entry.d.ts.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api-docs-entry.js.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/EvalTypes.d.ts +0 -61
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/EvalTypes.d.ts.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/EvalTypes.js.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Events.d.ts +0 -82
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Events.d.ts.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Events.js +0 -84
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Events.js.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/helper.d.ts +0 -85
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/helper.d.ts.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/helper.js.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/initialize-node.d.ts.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/initialize-node.js.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/initialize-web.d.ts +0 -18
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/initialize-web.d.ts.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/initialize-web.js +0 -23
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/initialize-web.js.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.d.ts +0 -18
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.d.ts.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.js.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node-puppeteer-core.d.ts.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node-puppeteer-core.js +0 -23
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node-puppeteer-core.js.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node.d.ts +0 -18
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node.d.ts.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node.js +0 -22
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node.js.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/web.d.ts +0 -18
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/web.d.ts.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/web.js +0 -22
 - package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/web.js.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/vendor/mitt/src/index.d.ts.map +0 -1
 - package/front_end/third_party/puppeteer/package/lib/esm/vendor/mitt/src/index.js.map +0 -1
 
| 
         @@ -13,28 +13,26 @@ 
     | 
|
| 
       13 
13 
     | 
    
         
             
             * See the License for the specific language governing permissions and
         
     | 
| 
       14 
14 
     | 
    
         
             
             * limitations under the License.
         
     | 
| 
       15 
15 
     | 
    
         
             
             */
         
     | 
| 
      
 16 
     | 
    
         
            +
            var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
         
     | 
| 
      
 17 
     | 
    
         
            +
                if (kind === "m") throw new TypeError("Private method is not writable");
         
     | 
| 
      
 18 
     | 
    
         
            +
                if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
         
     | 
| 
      
 19 
     | 
    
         
            +
                if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
         
     | 
| 
      
 20 
     | 
    
         
            +
                return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
         
     | 
| 
      
 21 
     | 
    
         
            +
            };
         
     | 
| 
      
 22 
     | 
    
         
            +
            var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
         
     | 
| 
      
 23 
     | 
    
         
            +
                if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
         
     | 
| 
      
 24 
     | 
    
         
            +
                if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
         
     | 
| 
      
 25 
     | 
    
         
            +
                return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
         
     | 
| 
      
 26 
     | 
    
         
            +
            };
         
     | 
| 
      
 27 
     | 
    
         
            +
            var _JSHandle_client, _JSHandle_disposed, _JSHandle_context, _JSHandle_remoteObject;
         
     | 
| 
       16 
28 
     | 
    
         
             
            import { assert } from './assert.js';
         
     | 
| 
       17 
     | 
    
         
            -
            import {  
     | 
| 
       18 
     | 
    
         
            -
            import { getQueryHandlerAndSelector } from './QueryHandler.js';
         
     | 
| 
       19 
     | 
    
         
            -
            import { isNode } from '../environment.js';
         
     | 
| 
       20 
     | 
    
         
            -
            /**
         
     | 
| 
       21 
     | 
    
         
            -
             * @internal
         
     | 
| 
       22 
     | 
    
         
            -
             */
         
     | 
| 
       23 
     | 
    
         
            -
            export function createJSHandle(context, remoteObject) {
         
     | 
| 
       24 
     | 
    
         
            -
                const frame = context.frame();
         
     | 
| 
       25 
     | 
    
         
            -
                if (remoteObject.subtype === 'node' && frame) {
         
     | 
| 
       26 
     | 
    
         
            -
                    const frameManager = frame._frameManager;
         
     | 
| 
       27 
     | 
    
         
            -
                    return new ElementHandle(context, context._client, remoteObject, frame, frameManager.page(), frameManager);
         
     | 
| 
       28 
     | 
    
         
            -
                }
         
     | 
| 
       29 
     | 
    
         
            -
                return new JSHandle(context, context._client, remoteObject);
         
     | 
| 
       30 
     | 
    
         
            -
            }
         
     | 
| 
       31 
     | 
    
         
            -
            const applyOffsetsToQuad = (quad, offsetX, offsetY) => quad.map((part) => ({ x: part.x + offsetX, y: part.y + offsetY }));
         
     | 
| 
      
 29 
     | 
    
         
            +
            import { releaseObject, valueFromRemoteObject, createJSHandle } from './util.js';
         
     | 
| 
       32 
30 
     | 
    
         
             
            /**
         
     | 
| 
       33 
31 
     | 
    
         
             
             * Represents an in-page JavaScript object. JSHandles can be created with the
         
     | 
| 
       34 
32 
     | 
    
         
             
             * {@link Page.evaluateHandle | page.evaluateHandle} method.
         
     | 
| 
       35 
33 
     | 
    
         
             
             *
         
     | 
| 
       36 
34 
     | 
    
         
             
             * @example
         
     | 
| 
       37 
     | 
    
         
            -
             * ``` 
     | 
| 
      
 35 
     | 
    
         
            +
             * ```ts
         
     | 
| 
       38 
36 
     | 
    
         
             
             * const windowHandle = await page.evaluateHandle(() => window);
         
     | 
| 
       39 
37 
     | 
    
         
             
             * ```
         
     | 
| 
       40 
38 
     | 
    
         
             
             *
         
     | 
| 
         @@ -52,26 +50,50 @@ export class JSHandle { 
     | 
|
| 
       52 
50 
     | 
    
         
             
                 * @internal
         
     | 
| 
       53 
51 
     | 
    
         
             
                 */
         
     | 
| 
       54 
52 
     | 
    
         
             
                constructor(context, client, remoteObject) {
         
     | 
| 
       55 
     | 
    
         
            -
                     
     | 
| 
       56 
     | 
    
         
            -
             
     | 
| 
       57 
     | 
    
         
            -
             
     | 
| 
       58 
     | 
    
         
            -
                    this 
     | 
| 
       59 
     | 
    
         
            -
                    this 
     | 
| 
       60 
     | 
    
         
            -
                    this 
     | 
| 
       61 
     | 
    
         
            -
                    this 
     | 
| 
      
 53 
     | 
    
         
            +
                    _JSHandle_client.set(this, void 0);
         
     | 
| 
      
 54 
     | 
    
         
            +
                    _JSHandle_disposed.set(this, false);
         
     | 
| 
      
 55 
     | 
    
         
            +
                    _JSHandle_context.set(this, void 0);
         
     | 
| 
      
 56 
     | 
    
         
            +
                    _JSHandle_remoteObject.set(this, void 0);
         
     | 
| 
      
 57 
     | 
    
         
            +
                    __classPrivateFieldSet(this, _JSHandle_context, context, "f");
         
     | 
| 
      
 58 
     | 
    
         
            +
                    __classPrivateFieldSet(this, _JSHandle_client, client, "f");
         
     | 
| 
      
 59 
     | 
    
         
            +
                    __classPrivateFieldSet(this, _JSHandle_remoteObject, remoteObject, "f");
         
     | 
| 
      
 60 
     | 
    
         
            +
                }
         
     | 
| 
      
 61 
     | 
    
         
            +
                /**
         
     | 
| 
      
 62 
     | 
    
         
            +
                 * @internal
         
     | 
| 
      
 63 
     | 
    
         
            +
                 */
         
     | 
| 
      
 64 
     | 
    
         
            +
                get _client() {
         
     | 
| 
      
 65 
     | 
    
         
            +
                    return __classPrivateFieldGet(this, _JSHandle_client, "f");
         
     | 
| 
      
 66 
     | 
    
         
            +
                }
         
     | 
| 
      
 67 
     | 
    
         
            +
                /**
         
     | 
| 
      
 68 
     | 
    
         
            +
                 * @internal
         
     | 
| 
      
 69 
     | 
    
         
            +
                 */
         
     | 
| 
      
 70 
     | 
    
         
            +
                get _disposed() {
         
     | 
| 
      
 71 
     | 
    
         
            +
                    return __classPrivateFieldGet(this, _JSHandle_disposed, "f");
         
     | 
| 
      
 72 
     | 
    
         
            +
                }
         
     | 
| 
      
 73 
     | 
    
         
            +
                /**
         
     | 
| 
      
 74 
     | 
    
         
            +
                 * @internal
         
     | 
| 
      
 75 
     | 
    
         
            +
                 */
         
     | 
| 
      
 76 
     | 
    
         
            +
                get _remoteObject() {
         
     | 
| 
      
 77 
     | 
    
         
            +
                    return __classPrivateFieldGet(this, _JSHandle_remoteObject, "f");
         
     | 
| 
      
 78 
     | 
    
         
            +
                }
         
     | 
| 
      
 79 
     | 
    
         
            +
                /**
         
     | 
| 
      
 80 
     | 
    
         
            +
                 * @internal
         
     | 
| 
      
 81 
     | 
    
         
            +
                 */
         
     | 
| 
      
 82 
     | 
    
         
            +
                get _context() {
         
     | 
| 
      
 83 
     | 
    
         
            +
                    return __classPrivateFieldGet(this, _JSHandle_context, "f");
         
     | 
| 
       62 
84 
     | 
    
         
             
                }
         
     | 
| 
       63 
85 
     | 
    
         
             
                /** Returns the execution context the handle belongs to.
         
     | 
| 
       64 
86 
     | 
    
         
             
                 */
         
     | 
| 
       65 
87 
     | 
    
         
             
                executionContext() {
         
     | 
| 
       66 
     | 
    
         
            -
                    return this 
     | 
| 
      
 88 
     | 
    
         
            +
                    return __classPrivateFieldGet(this, _JSHandle_context, "f");
         
     | 
| 
       67 
89 
     | 
    
         
             
                }
         
     | 
| 
       68 
90 
     | 
    
         
             
                /**
         
     | 
| 
       69 
     | 
    
         
            -
                 * This method passes this handle as the first argument to `pageFunction`.
         
     | 
| 
       70 
     | 
    
         
            -
                 *  
     | 
| 
       71 
     | 
    
         
            -
                 *  
     | 
| 
      
 91 
     | 
    
         
            +
                 * This method passes this handle as the first argument to `pageFunction`. If
         
     | 
| 
      
 92 
     | 
    
         
            +
                 * `pageFunction` returns a Promise, then `handle.evaluate` would wait for the
         
     | 
| 
      
 93 
     | 
    
         
            +
                 * promise to resolve and return its value.
         
     | 
| 
       72 
94 
     | 
    
         
             
                 *
         
     | 
| 
       73 
95 
     | 
    
         
             
                 * @example
         
     | 
| 
       74 
     | 
    
         
            -
                 * ``` 
     | 
| 
      
 96 
     | 
    
         
            +
                 * ```ts
         
     | 
| 
       75 
97 
     | 
    
         
             
                 * const tweetHandle = await page.$('.tweet .retweets');
         
     | 
| 
       76 
98 
     | 
    
         
             
                 * expect(await tweetHandle.evaluate(node => node.innerText)).toBe('10');
         
     | 
| 
       77 
99 
     | 
    
         
             
                 * ```
         
     | 
| 
         @@ -85,11 +107,11 @@ export class JSHandle { 
     | 
|
| 
       85 
107 
     | 
    
         
             
                 * @remarks
         
     | 
| 
       86 
108 
     | 
    
         
             
                 *
         
     | 
| 
       87 
109 
     | 
    
         
             
                 * The only difference between `jsHandle.evaluate` and
         
     | 
| 
       88 
     | 
    
         
            -
                 * `jsHandle.evaluateHandle` is that `jsHandle.evaluateHandle`
         
     | 
| 
       89 
     | 
    
         
            -
                 *  
     | 
| 
      
 110 
     | 
    
         
            +
                 * `jsHandle.evaluateHandle` is that `jsHandle.evaluateHandle` returns an
         
     | 
| 
      
 111 
     | 
    
         
            +
                 * in-page object (JSHandle).
         
     | 
| 
       90 
112 
     | 
    
         
             
                 *
         
     | 
| 
       91 
     | 
    
         
            -
                 * If the function passed to `jsHandle.evaluateHandle` returns a Promise,
         
     | 
| 
       92 
     | 
    
         
            -
                 *  
     | 
| 
      
 113 
     | 
    
         
            +
                 * If the function passed to `jsHandle.evaluateHandle` returns a Promise, then
         
     | 
| 
      
 114 
     | 
    
         
            +
                 * `evaluateHandle.evaluateHandle` waits for the promise to resolve and
         
     | 
| 
       93 
115 
     | 
    
         
             
                 * returns its value.
         
     | 
| 
       94 
116 
     | 
    
         
             
                 *
         
     | 
| 
       95 
117 
     | 
    
         
             
                 * See {@link Page.evaluateHandle} for more details.
         
     | 
| 
         @@ -97,26 +119,17 @@ export class JSHandle { 
     | 
|
| 
       97 
119 
     | 
    
         
             
                async evaluateHandle(pageFunction, ...args) {
         
     | 
| 
       98 
120 
     | 
    
         
             
                    return await this.executionContext().evaluateHandle(pageFunction, this, ...args);
         
     | 
| 
       99 
121 
     | 
    
         
             
                }
         
     | 
| 
       100 
     | 
    
         
            -
                /** Fetches a single property from the referenced object.
         
     | 
| 
       101 
     | 
    
         
            -
                 */
         
     | 
| 
       102 
122 
     | 
    
         
             
                async getProperty(propertyName) {
         
     | 
| 
       103 
     | 
    
         
            -
                     
     | 
| 
       104 
     | 
    
         
            -
                         
     | 
| 
       105 
     | 
    
         
            -
                        result[propertyName] = object[propertyName];
         
     | 
| 
       106 
     | 
    
         
            -
                        return result;
         
     | 
| 
      
 123 
     | 
    
         
            +
                    return await this.evaluateHandle((object, propertyName) => {
         
     | 
| 
      
 124 
     | 
    
         
            +
                        return object[propertyName];
         
     | 
| 
       107 
125 
     | 
    
         
             
                    }, propertyName);
         
     | 
| 
       108 
     | 
    
         
            -
                    const properties = await objectHandle.getProperties();
         
     | 
| 
       109 
     | 
    
         
            -
                    const result = properties.get(propertyName);
         
     | 
| 
       110 
     | 
    
         
            -
                    assert(result instanceof JSHandle);
         
     | 
| 
       111 
     | 
    
         
            -
                    await objectHandle.dispose();
         
     | 
| 
       112 
     | 
    
         
            -
                    return result;
         
     | 
| 
       113 
126 
     | 
    
         
             
                }
         
     | 
| 
       114 
127 
     | 
    
         
             
                /**
         
     | 
| 
       115 
     | 
    
         
            -
                 * The method returns a map with property names as keys and JSHandle
         
     | 
| 
       116 
     | 
    
         
            -
                 *  
     | 
| 
      
 128 
     | 
    
         
            +
                 * The method returns a map with property names as keys and JSHandle instances
         
     | 
| 
      
 129 
     | 
    
         
            +
                 * for the property values.
         
     | 
| 
       117 
130 
     | 
    
         
             
                 *
         
     | 
| 
       118 
131 
     | 
    
         
             
                 * @example
         
     | 
| 
       119 
     | 
    
         
            -
                 * ``` 
     | 
| 
      
 132 
     | 
    
         
            +
                 * ```ts
         
     | 
| 
       120 
133 
     | 
    
         
             
                 * const listHandle = await page.evaluateHandle(() => document.body.children);
         
     | 
| 
       121 
134 
     | 
    
         
             
                 * const properties = await listHandle.getProperties();
         
     | 
| 
       122 
135 
     | 
    
         
             
                 * const children = [];
         
     | 
| 
         @@ -129,15 +142,17 @@ export class JSHandle { 
     | 
|
| 
       129 
142 
     | 
    
         
             
                 * ```
         
     | 
| 
       130 
143 
     | 
    
         
             
                 */
         
     | 
| 
       131 
144 
     | 
    
         
             
                async getProperties() {
         
     | 
| 
       132 
     | 
    
         
            -
                     
     | 
| 
       133 
     | 
    
         
            -
             
     | 
| 
      
 145 
     | 
    
         
            +
                    assert(__classPrivateFieldGet(this, _JSHandle_remoteObject, "f").objectId);
         
     | 
| 
      
 146 
     | 
    
         
            +
                    const response = await __classPrivateFieldGet(this, _JSHandle_client, "f").send('Runtime.getProperties', {
         
     | 
| 
      
 147 
     | 
    
         
            +
                        objectId: __classPrivateFieldGet(this, _JSHandle_remoteObject, "f").objectId,
         
     | 
| 
       134 
148 
     | 
    
         
             
                        ownProperties: true,
         
     | 
| 
       135 
149 
     | 
    
         
             
                    });
         
     | 
| 
       136 
150 
     | 
    
         
             
                    const result = new Map();
         
     | 
| 
       137 
151 
     | 
    
         
             
                    for (const property of response.result) {
         
     | 
| 
       138 
     | 
    
         
            -
                        if (!property.enumerable)
         
     | 
| 
      
 152 
     | 
    
         
            +
                        if (!property.enumerable || !property.value) {
         
     | 
| 
       139 
153 
     | 
    
         
             
                            continue;
         
     | 
| 
       140 
     | 
    
         
            -
                         
     | 
| 
      
 154 
     | 
    
         
            +
                        }
         
     | 
| 
      
 155 
     | 
    
         
            +
                        result.set(property.name, createJSHandle(__classPrivateFieldGet(this, _JSHandle_context, "f"), property.value));
         
     | 
| 
       141 
156 
     | 
    
         
             
                    }
         
     | 
| 
       142 
157 
     | 
    
         
             
                    return result;
         
     | 
| 
       143 
158 
     | 
    
         
             
                }
         
     | 
| 
         @@ -151,16 +166,16 @@ export class JSHandle { 
     | 
|
| 
       151 
166 
     | 
    
         
             
                 * **NOTE** The method throws if the referenced object is not stringifiable.
         
     | 
| 
       152 
167 
     | 
    
         
             
                 */
         
     | 
| 
       153 
168 
     | 
    
         
             
                async jsonValue() {
         
     | 
| 
       154 
     | 
    
         
            -
                    if (this. 
     | 
| 
       155 
     | 
    
         
            -
                        const response = await this. 
     | 
| 
      
 169 
     | 
    
         
            +
                    if (__classPrivateFieldGet(this, _JSHandle_remoteObject, "f").objectId) {
         
     | 
| 
      
 170 
     | 
    
         
            +
                        const response = await __classPrivateFieldGet(this, _JSHandle_client, "f").send('Runtime.callFunctionOn', {
         
     | 
| 
       156 
171 
     | 
    
         
             
                            functionDeclaration: 'function() { return this; }',
         
     | 
| 
       157 
     | 
    
         
            -
                            objectId: this. 
     | 
| 
      
 172 
     | 
    
         
            +
                            objectId: __classPrivateFieldGet(this, _JSHandle_remoteObject, "f").objectId,
         
     | 
| 
       158 
173 
     | 
    
         
             
                            returnByValue: true,
         
     | 
| 
       159 
174 
     | 
    
         
             
                            awaitPromise: true,
         
     | 
| 
       160 
175 
     | 
    
         
             
                        });
         
     | 
| 
       161 
     | 
    
         
            -
                        return  
     | 
| 
      
 176 
     | 
    
         
            +
                        return valueFromRemoteObject(response.result);
         
     | 
| 
       162 
177 
     | 
    
         
             
                    }
         
     | 
| 
       163 
     | 
    
         
            -
                    return  
     | 
| 
      
 178 
     | 
    
         
            +
                    return valueFromRemoteObject(__classPrivateFieldGet(this, _JSHandle_remoteObject, "f"));
         
     | 
| 
       164 
179 
     | 
    
         
             
                }
         
     | 
| 
       165 
180 
     | 
    
         
             
                /**
         
     | 
| 
       166 
181 
     | 
    
         
             
                 * @returns Either `null` or the object handle itself, if the object
         
     | 
| 
         @@ -168,8 +183,8 @@ export class JSHandle { 
     | 
|
| 
       168 
183 
     | 
    
         
             
                 */
         
     | 
| 
       169 
184 
     | 
    
         
             
                asElement() {
         
     | 
| 
       170 
185 
     | 
    
         
             
                    /*  This always returns null, but subclasses can override this and return an
         
     | 
| 
       171 
     | 
    
         
            -
             
     | 
| 
       172 
     | 
    
         
            -
             
     | 
| 
      
 186 
     | 
    
         
            +
                         ElementHandle.
         
     | 
| 
      
 187 
     | 
    
         
            +
                     */
         
     | 
| 
       173 
188 
     | 
    
         
             
                    return null;
         
     | 
| 
       174 
189 
     | 
    
         
             
                }
         
     | 
| 
       175 
190 
     | 
    
         
             
                /**
         
     | 
| 
         @@ -177,10 +192,11 @@ export class JSHandle { 
     | 
|
| 
       177 
192 
     | 
    
         
             
                 * successfully disposed of.
         
     | 
| 
       178 
193 
     | 
    
         
             
                 */
         
     | 
| 
       179 
194 
     | 
    
         
             
                async dispose() {
         
     | 
| 
       180 
     | 
    
         
            -
                    if (this 
     | 
| 
      
 195 
     | 
    
         
            +
                    if (__classPrivateFieldGet(this, _JSHandle_disposed, "f")) {
         
     | 
| 
       181 
196 
     | 
    
         
             
                        return;
         
     | 
| 
       182 
     | 
    
         
            -
                     
     | 
| 
       183 
     | 
    
         
            -
                     
     | 
| 
      
 197 
     | 
    
         
            +
                    }
         
     | 
| 
      
 198 
     | 
    
         
            +
                    __classPrivateFieldSet(this, _JSHandle_disposed, true, "f");
         
     | 
| 
      
 199 
     | 
    
         
            +
                    await releaseObject(__classPrivateFieldGet(this, _JSHandle_client, "f"), __classPrivateFieldGet(this, _JSHandle_remoteObject, "f"));
         
     | 
| 
       184 
200 
     | 
    
         
             
                }
         
     | 
| 
       185 
201 
     | 
    
         
             
                /**
         
     | 
| 
       186 
202 
     | 
    
         
             
                 * Returns a string representation of the JSHandle.
         
     | 
| 
         @@ -188,765 +204,12 @@ export class JSHandle { 
     | 
|
| 
       188 
204 
     | 
    
         
             
                 * @remarks Useful during debugging.
         
     | 
| 
       189 
205 
     | 
    
         
             
                 */
         
     | 
| 
       190 
206 
     | 
    
         
             
                toString() {
         
     | 
| 
       191 
     | 
    
         
            -
                    if (this. 
     | 
| 
       192 
     | 
    
         
            -
                        const type = this. 
     | 
| 
      
 207 
     | 
    
         
            +
                    if (__classPrivateFieldGet(this, _JSHandle_remoteObject, "f").objectId) {
         
     | 
| 
      
 208 
     | 
    
         
            +
                        const type = __classPrivateFieldGet(this, _JSHandle_remoteObject, "f").subtype || __classPrivateFieldGet(this, _JSHandle_remoteObject, "f").type;
         
     | 
| 
       193 
209 
     | 
    
         
             
                        return 'JSHandle@' + type;
         
     | 
| 
       194 
210 
     | 
    
         
             
                    }
         
     | 
| 
       195 
     | 
    
         
            -
                    return 'JSHandle:' +  
     | 
| 
       196 
     | 
    
         
            -
                }
         
     | 
| 
       197 
     | 
    
         
            -
            }
         
     | 
| 
       198 
     | 
    
         
            -
            /**
         
     | 
| 
       199 
     | 
    
         
            -
             * ElementHandle represents an in-page DOM element.
         
     | 
| 
       200 
     | 
    
         
            -
             *
         
     | 
| 
       201 
     | 
    
         
            -
             * @remarks
         
     | 
| 
       202 
     | 
    
         
            -
             *
         
     | 
| 
       203 
     | 
    
         
            -
             * ElementHandles can be created with the {@link Page.$} method.
         
     | 
| 
       204 
     | 
    
         
            -
             *
         
     | 
| 
       205 
     | 
    
         
            -
             * ```js
         
     | 
| 
       206 
     | 
    
         
            -
             * const puppeteer = require('puppeteer');
         
     | 
| 
       207 
     | 
    
         
            -
             *
         
     | 
| 
       208 
     | 
    
         
            -
             * (async () => {
         
     | 
| 
       209 
     | 
    
         
            -
             *  const browser = await puppeteer.launch();
         
     | 
| 
       210 
     | 
    
         
            -
             *  const page = await browser.newPage();
         
     | 
| 
       211 
     | 
    
         
            -
             *  await page.goto('https://example.com');
         
     | 
| 
       212 
     | 
    
         
            -
             *  const hrefElement = await page.$('a');
         
     | 
| 
       213 
     | 
    
         
            -
             *  await hrefElement.click();
         
     | 
| 
       214 
     | 
    
         
            -
             *  // ...
         
     | 
| 
       215 
     | 
    
         
            -
             * })();
         
     | 
| 
       216 
     | 
    
         
            -
             * ```
         
     | 
| 
       217 
     | 
    
         
            -
             *
         
     | 
| 
       218 
     | 
    
         
            -
             * ElementHandle prevents the DOM element from being garbage-collected unless the
         
     | 
| 
       219 
     | 
    
         
            -
             * handle is {@link JSHandle.dispose | disposed}. ElementHandles are auto-disposed
         
     | 
| 
       220 
     | 
    
         
            -
             * when their origin frame gets navigated.
         
     | 
| 
       221 
     | 
    
         
            -
             *
         
     | 
| 
       222 
     | 
    
         
            -
             * ElementHandle instances can be used as arguments in {@link Page.$eval} and
         
     | 
| 
       223 
     | 
    
         
            -
             * {@link Page.evaluate} methods.
         
     | 
| 
       224 
     | 
    
         
            -
             *
         
     | 
| 
       225 
     | 
    
         
            -
             * If you're using TypeScript, ElementHandle takes a generic argument that
         
     | 
| 
       226 
     | 
    
         
            -
             * denotes the type of element the handle is holding within. For example, if you
         
     | 
| 
       227 
     | 
    
         
            -
             * have a handle to a `<select>` element, you can type it as
         
     | 
| 
       228 
     | 
    
         
            -
             * `ElementHandle<HTMLSelectElement>` and you get some nicer type checks.
         
     | 
| 
       229 
     | 
    
         
            -
             *
         
     | 
| 
       230 
     | 
    
         
            -
             * @public
         
     | 
| 
       231 
     | 
    
         
            -
             */
         
     | 
| 
       232 
     | 
    
         
            -
            export class ElementHandle extends JSHandle {
         
     | 
| 
       233 
     | 
    
         
            -
                /**
         
     | 
| 
       234 
     | 
    
         
            -
                 * @internal
         
     | 
| 
       235 
     | 
    
         
            -
                 */
         
     | 
| 
       236 
     | 
    
         
            -
                constructor(context, client, remoteObject, frame, page, frameManager) {
         
     | 
| 
       237 
     | 
    
         
            -
                    super(context, client, remoteObject);
         
     | 
| 
       238 
     | 
    
         
            -
                    this._client = client;
         
     | 
| 
       239 
     | 
    
         
            -
                    this._remoteObject = remoteObject;
         
     | 
| 
       240 
     | 
    
         
            -
                    this._frame = frame;
         
     | 
| 
       241 
     | 
    
         
            -
                    this._page = page;
         
     | 
| 
       242 
     | 
    
         
            -
                    this._frameManager = frameManager;
         
     | 
| 
       243 
     | 
    
         
            -
                }
         
     | 
| 
       244 
     | 
    
         
            -
                /**
         
     | 
| 
       245 
     | 
    
         
            -
                 * Wait for the `selector` to appear within the element. If at the moment of calling the
         
     | 
| 
       246 
     | 
    
         
            -
                 * method the `selector` already exists, the method will return immediately. If
         
     | 
| 
       247 
     | 
    
         
            -
                 * the `selector` doesn't appear after the `timeout` milliseconds of waiting, the
         
     | 
| 
       248 
     | 
    
         
            -
                 * function will throw.
         
     | 
| 
       249 
     | 
    
         
            -
                 *
         
     | 
| 
       250 
     | 
    
         
            -
                 * This method does not work across navigations or if the element is detached from DOM.
         
     | 
| 
       251 
     | 
    
         
            -
                 *
         
     | 
| 
       252 
     | 
    
         
            -
                 * @param selector - A
         
     | 
| 
       253 
     | 
    
         
            -
                 * {@link https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors | selector}
         
     | 
| 
       254 
     | 
    
         
            -
                 * of an element to wait for
         
     | 
| 
       255 
     | 
    
         
            -
                 * @param options - Optional waiting parameters
         
     | 
| 
       256 
     | 
    
         
            -
                 * @returns Promise which resolves when element specified by selector string
         
     | 
| 
       257 
     | 
    
         
            -
                 * is added to DOM. Resolves to `null` if waiting for hidden: `true` and
         
     | 
| 
       258 
     | 
    
         
            -
                 * selector is not found in DOM.
         
     | 
| 
       259 
     | 
    
         
            -
                 * @remarks
         
     | 
| 
       260 
     | 
    
         
            -
                 * The optional parameters in `options` are:
         
     | 
| 
       261 
     | 
    
         
            -
                 *
         
     | 
| 
       262 
     | 
    
         
            -
                 * - `visible`: wait for the selected element to be present in DOM and to be
         
     | 
| 
       263 
     | 
    
         
            -
                 * visible, i.e. to not have `display: none` or `visibility: hidden` CSS
         
     | 
| 
       264 
     | 
    
         
            -
                 * properties. Defaults to `false`.
         
     | 
| 
       265 
     | 
    
         
            -
                 *
         
     | 
| 
       266 
     | 
    
         
            -
                 * - `hidden`: wait for the selected element to not be found in the DOM or to be hidden,
         
     | 
| 
       267 
     | 
    
         
            -
                 * i.e. have `display: none` or `visibility: hidden` CSS properties. Defaults to
         
     | 
| 
       268 
     | 
    
         
            -
                 * `false`.
         
     | 
| 
       269 
     | 
    
         
            -
                 *
         
     | 
| 
       270 
     | 
    
         
            -
                 * - `timeout`: maximum time to wait in milliseconds. Defaults to `30000`
         
     | 
| 
       271 
     | 
    
         
            -
                 * (30 seconds). Pass `0` to disable timeout. The default value can be changed
         
     | 
| 
       272 
     | 
    
         
            -
                 * by using the {@link Page.setDefaultTimeout} method.
         
     | 
| 
       273 
     | 
    
         
            -
                 */
         
     | 
| 
       274 
     | 
    
         
            -
                async waitForSelector(selector, options = {}) {
         
     | 
| 
       275 
     | 
    
         
            -
                    const frame = this._context.frame();
         
     | 
| 
       276 
     | 
    
         
            -
                    const secondaryContext = await frame._secondaryWorld.executionContext();
         
     | 
| 
       277 
     | 
    
         
            -
                    const adoptedRoot = await secondaryContext._adoptElementHandle(this);
         
     | 
| 
       278 
     | 
    
         
            -
                    const handle = await frame._secondaryWorld.waitForSelector(selector, {
         
     | 
| 
       279 
     | 
    
         
            -
                        ...options,
         
     | 
| 
       280 
     | 
    
         
            -
                        root: adoptedRoot,
         
     | 
| 
       281 
     | 
    
         
            -
                    });
         
     | 
| 
       282 
     | 
    
         
            -
                    await adoptedRoot.dispose();
         
     | 
| 
       283 
     | 
    
         
            -
                    if (!handle)
         
     | 
| 
       284 
     | 
    
         
            -
                        return null;
         
     | 
| 
       285 
     | 
    
         
            -
                    const mainExecutionContext = await frame._mainWorld.executionContext();
         
     | 
| 
       286 
     | 
    
         
            -
                    const result = await mainExecutionContext._adoptElementHandle(handle);
         
     | 
| 
       287 
     | 
    
         
            -
                    await handle.dispose();
         
     | 
| 
       288 
     | 
    
         
            -
                    return result;
         
     | 
| 
       289 
     | 
    
         
            -
                }
         
     | 
| 
       290 
     | 
    
         
            -
                /**
         
     | 
| 
       291 
     | 
    
         
            -
                 * Wait for the `xpath` within the element. If at the moment of calling the
         
     | 
| 
       292 
     | 
    
         
            -
                 * method the `xpath` already exists, the method will return immediately. If
         
     | 
| 
       293 
     | 
    
         
            -
                 * the `xpath` doesn't appear after the `timeout` milliseconds of waiting, the
         
     | 
| 
       294 
     | 
    
         
            -
                 * function will throw.
         
     | 
| 
       295 
     | 
    
         
            -
                 *
         
     | 
| 
       296 
     | 
    
         
            -
                 * If `xpath` starts with `//` instead of `.//`, the dot will be appended automatically.
         
     | 
| 
       297 
     | 
    
         
            -
                 *
         
     | 
| 
       298 
     | 
    
         
            -
                 * This method works across navigation
         
     | 
| 
       299 
     | 
    
         
            -
                 * ```js
         
     | 
| 
       300 
     | 
    
         
            -
                 * const puppeteer = require('puppeteer');
         
     | 
| 
       301 
     | 
    
         
            -
                 * (async () => {
         
     | 
| 
       302 
     | 
    
         
            -
                 * const browser = await puppeteer.launch();
         
     | 
| 
       303 
     | 
    
         
            -
                 * const page = await browser.newPage();
         
     | 
| 
       304 
     | 
    
         
            -
                 * let currentURL;
         
     | 
| 
       305 
     | 
    
         
            -
                 * page
         
     | 
| 
       306 
     | 
    
         
            -
                 * .waitForXPath('//img')
         
     | 
| 
       307 
     | 
    
         
            -
                 * .then(() => console.log('First URL with image: ' + currentURL));
         
     | 
| 
       308 
     | 
    
         
            -
                 * for (currentURL of [
         
     | 
| 
       309 
     | 
    
         
            -
                 * 'https://example.com',
         
     | 
| 
       310 
     | 
    
         
            -
                 * 'https://google.com',
         
     | 
| 
       311 
     | 
    
         
            -
                 * 'https://bbc.com',
         
     | 
| 
       312 
     | 
    
         
            -
                 * ]) {
         
     | 
| 
       313 
     | 
    
         
            -
                 * await page.goto(currentURL);
         
     | 
| 
       314 
     | 
    
         
            -
                 * }
         
     | 
| 
       315 
     | 
    
         
            -
                 * await browser.close();
         
     | 
| 
       316 
     | 
    
         
            -
                 * })();
         
     | 
| 
       317 
     | 
    
         
            -
                 * ```
         
     | 
| 
       318 
     | 
    
         
            -
                 * @param xpath - A
         
     | 
| 
       319 
     | 
    
         
            -
                 * {@link https://developer.mozilla.org/en-US/docs/Web/XPath | xpath} of an
         
     | 
| 
       320 
     | 
    
         
            -
                 * element to wait for
         
     | 
| 
       321 
     | 
    
         
            -
                 * @param options - Optional waiting parameters
         
     | 
| 
       322 
     | 
    
         
            -
                 * @returns Promise which resolves when element specified by xpath string is
         
     | 
| 
       323 
     | 
    
         
            -
                 * added to DOM. Resolves to `null` if waiting for `hidden: true` and xpath is
         
     | 
| 
       324 
     | 
    
         
            -
                 * not found in DOM.
         
     | 
| 
       325 
     | 
    
         
            -
                 * @remarks
         
     | 
| 
       326 
     | 
    
         
            -
                 * The optional Argument `options` have properties:
         
     | 
| 
       327 
     | 
    
         
            -
                 *
         
     | 
| 
       328 
     | 
    
         
            -
                 * - `visible`: A boolean to wait for element to be present in DOM and to be
         
     | 
| 
       329 
     | 
    
         
            -
                 * visible, i.e. to not have `display: none` or `visibility: hidden` CSS
         
     | 
| 
       330 
     | 
    
         
            -
                 * properties. Defaults to `false`.
         
     | 
| 
       331 
     | 
    
         
            -
                 *
         
     | 
| 
       332 
     | 
    
         
            -
                 * - `hidden`: A boolean wait for element to not be found in the DOM or to be
         
     | 
| 
       333 
     | 
    
         
            -
                 * hidden, i.e. have `display: none` or `visibility: hidden` CSS properties.
         
     | 
| 
       334 
     | 
    
         
            -
                 * Defaults to `false`.
         
     | 
| 
       335 
     | 
    
         
            -
                 *
         
     | 
| 
       336 
     | 
    
         
            -
                 * - `timeout`: A number which is maximum time to wait for in milliseconds.
         
     | 
| 
       337 
     | 
    
         
            -
                 * Defaults to `30000` (30 seconds). Pass `0` to disable timeout. The default
         
     | 
| 
       338 
     | 
    
         
            -
                 * value can be changed by using the {@link Page.setDefaultTimeout} method.
         
     | 
| 
       339 
     | 
    
         
            -
                 */
         
     | 
| 
       340 
     | 
    
         
            -
                async waitForXPath(xpath, options = {}) {
         
     | 
| 
       341 
     | 
    
         
            -
                    const frame = this._context.frame();
         
     | 
| 
       342 
     | 
    
         
            -
                    const secondaryContext = await frame._secondaryWorld.executionContext();
         
     | 
| 
       343 
     | 
    
         
            -
                    const adoptedRoot = await secondaryContext._adoptElementHandle(this);
         
     | 
| 
       344 
     | 
    
         
            -
                    xpath = xpath.startsWith('//') ? '.' + xpath : xpath;
         
     | 
| 
       345 
     | 
    
         
            -
                    if (!xpath.startsWith('.//')) {
         
     | 
| 
       346 
     | 
    
         
            -
                        await adoptedRoot.dispose();
         
     | 
| 
       347 
     | 
    
         
            -
                        throw new Error('Unsupported xpath expression: ' + xpath);
         
     | 
| 
       348 
     | 
    
         
            -
                    }
         
     | 
| 
       349 
     | 
    
         
            -
                    const handle = await frame._secondaryWorld.waitForXPath(xpath, {
         
     | 
| 
       350 
     | 
    
         
            -
                        ...options,
         
     | 
| 
       351 
     | 
    
         
            -
                        root: adoptedRoot,
         
     | 
| 
       352 
     | 
    
         
            -
                    });
         
     | 
| 
       353 
     | 
    
         
            -
                    await adoptedRoot.dispose();
         
     | 
| 
       354 
     | 
    
         
            -
                    if (!handle)
         
     | 
| 
       355 
     | 
    
         
            -
                        return null;
         
     | 
| 
       356 
     | 
    
         
            -
                    const mainExecutionContext = await frame._mainWorld.executionContext();
         
     | 
| 
       357 
     | 
    
         
            -
                    const result = await mainExecutionContext._adoptElementHandle(handle);
         
     | 
| 
       358 
     | 
    
         
            -
                    await handle.dispose();
         
     | 
| 
       359 
     | 
    
         
            -
                    return result;
         
     | 
| 
       360 
     | 
    
         
            -
                }
         
     | 
| 
       361 
     | 
    
         
            -
                asElement() {
         
     | 
| 
       362 
     | 
    
         
            -
                    return this;
         
     | 
| 
       363 
     | 
    
         
            -
                }
         
     | 
| 
       364 
     | 
    
         
            -
                /**
         
     | 
| 
       365 
     | 
    
         
            -
                 * Resolves to the content frame for element handles referencing
         
     | 
| 
       366 
     | 
    
         
            -
                 * iframe nodes, or null otherwise
         
     | 
| 
       367 
     | 
    
         
            -
                 */
         
     | 
| 
       368 
     | 
    
         
            -
                async contentFrame() {
         
     | 
| 
       369 
     | 
    
         
            -
                    const nodeInfo = await this._client.send('DOM.describeNode', {
         
     | 
| 
       370 
     | 
    
         
            -
                        objectId: this._remoteObject.objectId,
         
     | 
| 
       371 
     | 
    
         
            -
                    });
         
     | 
| 
       372 
     | 
    
         
            -
                    if (typeof nodeInfo.node.frameId !== 'string')
         
     | 
| 
       373 
     | 
    
         
            -
                        return null;
         
     | 
| 
       374 
     | 
    
         
            -
                    return this._frameManager.frame(nodeInfo.node.frameId);
         
     | 
| 
       375 
     | 
    
         
            -
                }
         
     | 
| 
       376 
     | 
    
         
            -
                async _scrollIntoViewIfNeeded() {
         
     | 
| 
       377 
     | 
    
         
            -
                    const error = await this.evaluate(async (element, pageJavascriptEnabled) => {
         
     | 
| 
       378 
     | 
    
         
            -
                        if (!element.isConnected)
         
     | 
| 
       379 
     | 
    
         
            -
                            return 'Node is detached from document';
         
     | 
| 
       380 
     | 
    
         
            -
                        if (element.nodeType !== Node.ELEMENT_NODE)
         
     | 
| 
       381 
     | 
    
         
            -
                            return 'Node is not of type HTMLElement';
         
     | 
| 
       382 
     | 
    
         
            -
                        // force-scroll if page's javascript is disabled.
         
     | 
| 
       383 
     | 
    
         
            -
                        if (!pageJavascriptEnabled) {
         
     | 
| 
       384 
     | 
    
         
            -
                            element.scrollIntoView({
         
     | 
| 
       385 
     | 
    
         
            -
                                block: 'center',
         
     | 
| 
       386 
     | 
    
         
            -
                                inline: 'center',
         
     | 
| 
       387 
     | 
    
         
            -
                                // @ts-expect-error Chrome still supports behavior: instant but
         
     | 
| 
       388 
     | 
    
         
            -
                                // it's not in the spec so TS shouts We don't want to make this
         
     | 
| 
       389 
     | 
    
         
            -
                                // breaking change in Puppeteer yet so we'll ignore the line.
         
     | 
| 
       390 
     | 
    
         
            -
                                behavior: 'instant',
         
     | 
| 
       391 
     | 
    
         
            -
                            });
         
     | 
| 
       392 
     | 
    
         
            -
                            return false;
         
     | 
| 
       393 
     | 
    
         
            -
                        }
         
     | 
| 
       394 
     | 
    
         
            -
                        const visibleRatio = await new Promise((resolve) => {
         
     | 
| 
       395 
     | 
    
         
            -
                            const observer = new IntersectionObserver((entries) => {
         
     | 
| 
       396 
     | 
    
         
            -
                                resolve(entries[0].intersectionRatio);
         
     | 
| 
       397 
     | 
    
         
            -
                                observer.disconnect();
         
     | 
| 
       398 
     | 
    
         
            -
                            });
         
     | 
| 
       399 
     | 
    
         
            -
                            observer.observe(element);
         
     | 
| 
       400 
     | 
    
         
            -
                        });
         
     | 
| 
       401 
     | 
    
         
            -
                        if (visibleRatio !== 1.0) {
         
     | 
| 
       402 
     | 
    
         
            -
                            element.scrollIntoView({
         
     | 
| 
       403 
     | 
    
         
            -
                                block: 'center',
         
     | 
| 
       404 
     | 
    
         
            -
                                inline: 'center',
         
     | 
| 
       405 
     | 
    
         
            -
                                // @ts-expect-error Chrome still supports behavior: instant but
         
     | 
| 
       406 
     | 
    
         
            -
                                // it's not in the spec so TS shouts We don't want to make this
         
     | 
| 
       407 
     | 
    
         
            -
                                // breaking change in Puppeteer yet so we'll ignore the line.
         
     | 
| 
       408 
     | 
    
         
            -
                                behavior: 'instant',
         
     | 
| 
       409 
     | 
    
         
            -
                            });
         
     | 
| 
       410 
     | 
    
         
            -
                        }
         
     | 
| 
       411 
     | 
    
         
            -
                        return false;
         
     | 
| 
       412 
     | 
    
         
            -
                    }, this._page.isJavaScriptEnabled());
         
     | 
| 
       413 
     | 
    
         
            -
                    if (error)
         
     | 
| 
       414 
     | 
    
         
            -
                        throw new Error(error);
         
     | 
| 
       415 
     | 
    
         
            -
                }
         
     | 
| 
       416 
     | 
    
         
            -
                async _getOOPIFOffsets(frame) {
         
     | 
| 
       417 
     | 
    
         
            -
                    let offsetX = 0;
         
     | 
| 
       418 
     | 
    
         
            -
                    let offsetY = 0;
         
     | 
| 
       419 
     | 
    
         
            -
                    while (frame.parentFrame()) {
         
     | 
| 
       420 
     | 
    
         
            -
                        const parent = frame.parentFrame();
         
     | 
| 
       421 
     | 
    
         
            -
                        if (!frame.isOOPFrame()) {
         
     | 
| 
       422 
     | 
    
         
            -
                            frame = parent;
         
     | 
| 
       423 
     | 
    
         
            -
                            continue;
         
     | 
| 
       424 
     | 
    
         
            -
                        }
         
     | 
| 
       425 
     | 
    
         
            -
                        const { backendNodeId } = await parent._client.send('DOM.getFrameOwner', {
         
     | 
| 
       426 
     | 
    
         
            -
                            frameId: frame._id,
         
     | 
| 
       427 
     | 
    
         
            -
                        });
         
     | 
| 
       428 
     | 
    
         
            -
                        const result = await parent._client.send('DOM.getBoxModel', {
         
     | 
| 
       429 
     | 
    
         
            -
                            backendNodeId: backendNodeId,
         
     | 
| 
       430 
     | 
    
         
            -
                        });
         
     | 
| 
       431 
     | 
    
         
            -
                        if (!result) {
         
     | 
| 
       432 
     | 
    
         
            -
                            break;
         
     | 
| 
       433 
     | 
    
         
            -
                        }
         
     | 
| 
       434 
     | 
    
         
            -
                        const contentBoxQuad = result.model.content;
         
     | 
| 
       435 
     | 
    
         
            -
                        const topLeftCorner = this._fromProtocolQuad(contentBoxQuad)[0];
         
     | 
| 
       436 
     | 
    
         
            -
                        offsetX += topLeftCorner.x;
         
     | 
| 
       437 
     | 
    
         
            -
                        offsetY += topLeftCorner.y;
         
     | 
| 
       438 
     | 
    
         
            -
                        frame = parent;
         
     | 
| 
       439 
     | 
    
         
            -
                    }
         
     | 
| 
       440 
     | 
    
         
            -
                    return { offsetX, offsetY };
         
     | 
| 
       441 
     | 
    
         
            -
                }
         
     | 
| 
       442 
     | 
    
         
            -
                /**
         
     | 
| 
       443 
     | 
    
         
            -
                 * Returns the middle point within an element unless a specific offset is provided.
         
     | 
| 
       444 
     | 
    
         
            -
                 */
         
     | 
| 
       445 
     | 
    
         
            -
                async clickablePoint(offset) {
         
     | 
| 
       446 
     | 
    
         
            -
                    const [result, layoutMetrics] = await Promise.all([
         
     | 
| 
       447 
     | 
    
         
            -
                        this._client
         
     | 
| 
       448 
     | 
    
         
            -
                            .send('DOM.getContentQuads', {
         
     | 
| 
       449 
     | 
    
         
            -
                            objectId: this._remoteObject.objectId,
         
     | 
| 
       450 
     | 
    
         
            -
                        })
         
     | 
| 
       451 
     | 
    
         
            -
                            .catch(debugError),
         
     | 
| 
       452 
     | 
    
         
            -
                        this._page.client().send('Page.getLayoutMetrics'),
         
     | 
| 
       453 
     | 
    
         
            -
                    ]);
         
     | 
| 
       454 
     | 
    
         
            -
                    if (!result || !result.quads.length)
         
     | 
| 
       455 
     | 
    
         
            -
                        throw new Error('Node is either not clickable or not an HTMLElement');
         
     | 
| 
       456 
     | 
    
         
            -
                    // Filter out quads that have too small area to click into.
         
     | 
| 
       457 
     | 
    
         
            -
                    // Fallback to `layoutViewport` in case of using Firefox.
         
     | 
| 
       458 
     | 
    
         
            -
                    const { clientWidth, clientHeight } = layoutMetrics.cssLayoutViewport || layoutMetrics.layoutViewport;
         
     | 
| 
       459 
     | 
    
         
            -
                    const { offsetX, offsetY } = await this._getOOPIFOffsets(this._frame);
         
     | 
| 
       460 
     | 
    
         
            -
                    const quads = result.quads
         
     | 
| 
       461 
     | 
    
         
            -
                        .map((quad) => this._fromProtocolQuad(quad))
         
     | 
| 
       462 
     | 
    
         
            -
                        .map((quad) => applyOffsetsToQuad(quad, offsetX, offsetY))
         
     | 
| 
       463 
     | 
    
         
            -
                        .map((quad) => this._intersectQuadWithViewport(quad, clientWidth, clientHeight))
         
     | 
| 
       464 
     | 
    
         
            -
                        .filter((quad) => computeQuadArea(quad) > 1);
         
     | 
| 
       465 
     | 
    
         
            -
                    if (!quads.length)
         
     | 
| 
       466 
     | 
    
         
            -
                        throw new Error('Node is either not clickable or not an HTMLElement');
         
     | 
| 
       467 
     | 
    
         
            -
                    const quad = quads[0];
         
     | 
| 
       468 
     | 
    
         
            -
                    if (offset) {
         
     | 
| 
       469 
     | 
    
         
            -
                        // Return the point of the first quad identified by offset.
         
     | 
| 
       470 
     | 
    
         
            -
                        let minX = Number.MAX_SAFE_INTEGER;
         
     | 
| 
       471 
     | 
    
         
            -
                        let minY = Number.MAX_SAFE_INTEGER;
         
     | 
| 
       472 
     | 
    
         
            -
                        for (const point of quad) {
         
     | 
| 
       473 
     | 
    
         
            -
                            if (point.x < minX) {
         
     | 
| 
       474 
     | 
    
         
            -
                                minX = point.x;
         
     | 
| 
       475 
     | 
    
         
            -
                            }
         
     | 
| 
       476 
     | 
    
         
            -
                            if (point.y < minY) {
         
     | 
| 
       477 
     | 
    
         
            -
                                minY = point.y;
         
     | 
| 
       478 
     | 
    
         
            -
                            }
         
     | 
| 
       479 
     | 
    
         
            -
                        }
         
     | 
| 
       480 
     | 
    
         
            -
                        if (minX !== Number.MAX_SAFE_INTEGER &&
         
     | 
| 
       481 
     | 
    
         
            -
                            minY !== Number.MAX_SAFE_INTEGER) {
         
     | 
| 
       482 
     | 
    
         
            -
                            return {
         
     | 
| 
       483 
     | 
    
         
            -
                                x: minX + offset.x,
         
     | 
| 
       484 
     | 
    
         
            -
                                y: minY + offset.y,
         
     | 
| 
       485 
     | 
    
         
            -
                            };
         
     | 
| 
       486 
     | 
    
         
            -
                        }
         
     | 
| 
       487 
     | 
    
         
            -
                    }
         
     | 
| 
       488 
     | 
    
         
            -
                    // Return the middle point of the first quad.
         
     | 
| 
       489 
     | 
    
         
            -
                    let x = 0;
         
     | 
| 
       490 
     | 
    
         
            -
                    let y = 0;
         
     | 
| 
       491 
     | 
    
         
            -
                    for (const point of quad) {
         
     | 
| 
       492 
     | 
    
         
            -
                        x += point.x;
         
     | 
| 
       493 
     | 
    
         
            -
                        y += point.y;
         
     | 
| 
       494 
     | 
    
         
            -
                    }
         
     | 
| 
       495 
     | 
    
         
            -
                    return {
         
     | 
| 
       496 
     | 
    
         
            -
                        x: x / 4,
         
     | 
| 
       497 
     | 
    
         
            -
                        y: y / 4,
         
     | 
| 
       498 
     | 
    
         
            -
                    };
         
     | 
| 
       499 
     | 
    
         
            -
                }
         
     | 
| 
       500 
     | 
    
         
            -
                _getBoxModel() {
         
     | 
| 
       501 
     | 
    
         
            -
                    const params = {
         
     | 
| 
       502 
     | 
    
         
            -
                        objectId: this._remoteObject.objectId,
         
     | 
| 
       503 
     | 
    
         
            -
                    };
         
     | 
| 
       504 
     | 
    
         
            -
                    return this._client
         
     | 
| 
       505 
     | 
    
         
            -
                        .send('DOM.getBoxModel', params)
         
     | 
| 
       506 
     | 
    
         
            -
                        .catch((error) => debugError(error));
         
     | 
| 
       507 
     | 
    
         
            -
                }
         
     | 
| 
       508 
     | 
    
         
            -
                _fromProtocolQuad(quad) {
         
     | 
| 
       509 
     | 
    
         
            -
                    return [
         
     | 
| 
       510 
     | 
    
         
            -
                        { x: quad[0], y: quad[1] },
         
     | 
| 
       511 
     | 
    
         
            -
                        { x: quad[2], y: quad[3] },
         
     | 
| 
       512 
     | 
    
         
            -
                        { x: quad[4], y: quad[5] },
         
     | 
| 
       513 
     | 
    
         
            -
                        { x: quad[6], y: quad[7] },
         
     | 
| 
       514 
     | 
    
         
            -
                    ];
         
     | 
| 
       515 
     | 
    
         
            -
                }
         
     | 
| 
       516 
     | 
    
         
            -
                _intersectQuadWithViewport(quad, width, height) {
         
     | 
| 
       517 
     | 
    
         
            -
                    return quad.map((point) => ({
         
     | 
| 
       518 
     | 
    
         
            -
                        x: Math.min(Math.max(point.x, 0), width),
         
     | 
| 
       519 
     | 
    
         
            -
                        y: Math.min(Math.max(point.y, 0), height),
         
     | 
| 
       520 
     | 
    
         
            -
                    }));
         
     | 
| 
       521 
     | 
    
         
            -
                }
         
     | 
| 
       522 
     | 
    
         
            -
                /**
         
     | 
| 
       523 
     | 
    
         
            -
                 * This method scrolls element into view if needed, and then
         
     | 
| 
       524 
     | 
    
         
            -
                 * uses {@link Page.mouse} to hover over the center of the element.
         
     | 
| 
       525 
     | 
    
         
            -
                 * If the element is detached from DOM, the method throws an error.
         
     | 
| 
       526 
     | 
    
         
            -
                 */
         
     | 
| 
       527 
     | 
    
         
            -
                async hover() {
         
     | 
| 
       528 
     | 
    
         
            -
                    await this._scrollIntoViewIfNeeded();
         
     | 
| 
       529 
     | 
    
         
            -
                    const { x, y } = await this.clickablePoint();
         
     | 
| 
       530 
     | 
    
         
            -
                    await this._page.mouse.move(x, y);
         
     | 
| 
       531 
     | 
    
         
            -
                }
         
     | 
| 
       532 
     | 
    
         
            -
                /**
         
     | 
| 
       533 
     | 
    
         
            -
                 * This method scrolls element into view if needed, and then
         
     | 
| 
       534 
     | 
    
         
            -
                 * uses {@link Page.mouse} to click in the center of the element.
         
     | 
| 
       535 
     | 
    
         
            -
                 * If the element is detached from DOM, the method throws an error.
         
     | 
| 
       536 
     | 
    
         
            -
                 */
         
     | 
| 
       537 
     | 
    
         
            -
                async click(options = {}) {
         
     | 
| 
       538 
     | 
    
         
            -
                    await this._scrollIntoViewIfNeeded();
         
     | 
| 
       539 
     | 
    
         
            -
                    const { x, y } = await this.clickablePoint(options.offset);
         
     | 
| 
       540 
     | 
    
         
            -
                    await this._page.mouse.click(x, y, options);
         
     | 
| 
       541 
     | 
    
         
            -
                }
         
     | 
| 
       542 
     | 
    
         
            -
                /**
         
     | 
| 
       543 
     | 
    
         
            -
                 * This method creates and captures a dragevent from the element.
         
     | 
| 
       544 
     | 
    
         
            -
                 */
         
     | 
| 
       545 
     | 
    
         
            -
                async drag(target) {
         
     | 
| 
       546 
     | 
    
         
            -
                    assert(this._page.isDragInterceptionEnabled(), 'Drag Interception is not enabled!');
         
     | 
| 
       547 
     | 
    
         
            -
                    await this._scrollIntoViewIfNeeded();
         
     | 
| 
       548 
     | 
    
         
            -
                    const start = await this.clickablePoint();
         
     | 
| 
       549 
     | 
    
         
            -
                    return await this._page.mouse.drag(start, target);
         
     | 
| 
       550 
     | 
    
         
            -
                }
         
     | 
| 
       551 
     | 
    
         
            -
                /**
         
     | 
| 
       552 
     | 
    
         
            -
                 * This method creates a `dragenter` event on the element.
         
     | 
| 
       553 
     | 
    
         
            -
                 */
         
     | 
| 
       554 
     | 
    
         
            -
                async dragEnter(data = { items: [], dragOperationsMask: 1 }) {
         
     | 
| 
       555 
     | 
    
         
            -
                    await this._scrollIntoViewIfNeeded();
         
     | 
| 
       556 
     | 
    
         
            -
                    const target = await this.clickablePoint();
         
     | 
| 
       557 
     | 
    
         
            -
                    await this._page.mouse.dragEnter(target, data);
         
     | 
| 
       558 
     | 
    
         
            -
                }
         
     | 
| 
       559 
     | 
    
         
            -
                /**
         
     | 
| 
       560 
     | 
    
         
            -
                 * This method creates a `dragover` event on the element.
         
     | 
| 
       561 
     | 
    
         
            -
                 */
         
     | 
| 
       562 
     | 
    
         
            -
                async dragOver(data = { items: [], dragOperationsMask: 1 }) {
         
     | 
| 
       563 
     | 
    
         
            -
                    await this._scrollIntoViewIfNeeded();
         
     | 
| 
       564 
     | 
    
         
            -
                    const target = await this.clickablePoint();
         
     | 
| 
       565 
     | 
    
         
            -
                    await this._page.mouse.dragOver(target, data);
         
     | 
| 
       566 
     | 
    
         
            -
                }
         
     | 
| 
       567 
     | 
    
         
            -
                /**
         
     | 
| 
       568 
     | 
    
         
            -
                 * This method triggers a drop on the element.
         
     | 
| 
       569 
     | 
    
         
            -
                 */
         
     | 
| 
       570 
     | 
    
         
            -
                async drop(data = { items: [], dragOperationsMask: 1 }) {
         
     | 
| 
       571 
     | 
    
         
            -
                    await this._scrollIntoViewIfNeeded();
         
     | 
| 
       572 
     | 
    
         
            -
                    const destination = await this.clickablePoint();
         
     | 
| 
       573 
     | 
    
         
            -
                    await this._page.mouse.drop(destination, data);
         
     | 
| 
       574 
     | 
    
         
            -
                }
         
     | 
| 
       575 
     | 
    
         
            -
                /**
         
     | 
| 
       576 
     | 
    
         
            -
                 * This method triggers a dragenter, dragover, and drop on the element.
         
     | 
| 
       577 
     | 
    
         
            -
                 */
         
     | 
| 
       578 
     | 
    
         
            -
                async dragAndDrop(target, options) {
         
     | 
| 
       579 
     | 
    
         
            -
                    await this._scrollIntoViewIfNeeded();
         
     | 
| 
       580 
     | 
    
         
            -
                    const startPoint = await this.clickablePoint();
         
     | 
| 
       581 
     | 
    
         
            -
                    const targetPoint = await target.clickablePoint();
         
     | 
| 
       582 
     | 
    
         
            -
                    await this._page.mouse.dragAndDrop(startPoint, targetPoint, options);
         
     | 
| 
       583 
     | 
    
         
            -
                }
         
     | 
| 
       584 
     | 
    
         
            -
                /**
         
     | 
| 
       585 
     | 
    
         
            -
                 * Triggers a `change` and `input` event once all the provided options have been
         
     | 
| 
       586 
     | 
    
         
            -
                 * selected. If there's no `<select>` element matching `selector`, the method
         
     | 
| 
       587 
     | 
    
         
            -
                 * throws an error.
         
     | 
| 
       588 
     | 
    
         
            -
                 *
         
     | 
| 
       589 
     | 
    
         
            -
                 * @example
         
     | 
| 
       590 
     | 
    
         
            -
                 * ```js
         
     | 
| 
       591 
     | 
    
         
            -
                 * handle.select('blue'); // single selection
         
     | 
| 
       592 
     | 
    
         
            -
                 * handle.select('red', 'green', 'blue'); // multiple selections
         
     | 
| 
       593 
     | 
    
         
            -
                 * ```
         
     | 
| 
       594 
     | 
    
         
            -
                 * @param values - Values of options to select. If the `<select>` has the
         
     | 
| 
       595 
     | 
    
         
            -
                 *    `multiple` attribute, all values are considered, otherwise only the first
         
     | 
| 
       596 
     | 
    
         
            -
                 *    one is taken into account.
         
     | 
| 
       597 
     | 
    
         
            -
                 */
         
     | 
| 
       598 
     | 
    
         
            -
                async select(...values) {
         
     | 
| 
       599 
     | 
    
         
            -
                    for (const value of values)
         
     | 
| 
       600 
     | 
    
         
            -
                        assert(helper.isString(value), 'Values must be strings. Found value "' +
         
     | 
| 
       601 
     | 
    
         
            -
                            value +
         
     | 
| 
       602 
     | 
    
         
            -
                            '" of type "' +
         
     | 
| 
       603 
     | 
    
         
            -
                            typeof value +
         
     | 
| 
       604 
     | 
    
         
            -
                            '"');
         
     | 
| 
       605 
     | 
    
         
            -
                    return this.evaluate((element, values) => {
         
     | 
| 
       606 
     | 
    
         
            -
                        if (!(element instanceof HTMLSelectElement))
         
     | 
| 
       607 
     | 
    
         
            -
                            throw new Error('Element is not a <select> element.');
         
     | 
| 
       608 
     | 
    
         
            -
                        const options = Array.from(element.options);
         
     | 
| 
       609 
     | 
    
         
            -
                        element.value = undefined;
         
     | 
| 
       610 
     | 
    
         
            -
                        for (const option of options) {
         
     | 
| 
       611 
     | 
    
         
            -
                            option.selected = values.includes(option.value);
         
     | 
| 
       612 
     | 
    
         
            -
                            if (option.selected && !element.multiple)
         
     | 
| 
       613 
     | 
    
         
            -
                                break;
         
     | 
| 
       614 
     | 
    
         
            -
                        }
         
     | 
| 
       615 
     | 
    
         
            -
                        element.dispatchEvent(new Event('input', { bubbles: true }));
         
     | 
| 
       616 
     | 
    
         
            -
                        element.dispatchEvent(new Event('change', { bubbles: true }));
         
     | 
| 
       617 
     | 
    
         
            -
                        return options
         
     | 
| 
       618 
     | 
    
         
            -
                            .filter((option) => option.selected)
         
     | 
| 
       619 
     | 
    
         
            -
                            .map((option) => option.value);
         
     | 
| 
       620 
     | 
    
         
            -
                    }, values);
         
     | 
| 
       621 
     | 
    
         
            -
                }
         
     | 
| 
       622 
     | 
    
         
            -
                /**
         
     | 
| 
       623 
     | 
    
         
            -
                 * This method expects `elementHandle` to point to an
         
     | 
| 
       624 
     | 
    
         
            -
                 * {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input | input element}.
         
     | 
| 
       625 
     | 
    
         
            -
                 * @param filePaths - Sets the value of the file input to these paths.
         
     | 
| 
       626 
     | 
    
         
            -
                 *    If some of the  `filePaths` are relative paths, then they are resolved
         
     | 
| 
       627 
     | 
    
         
            -
                 *    relative to the {@link https://nodejs.org/api/process.html#process_process_cwd | current working directory}
         
     | 
| 
       628 
     | 
    
         
            -
                 */
         
     | 
| 
       629 
     | 
    
         
            -
                async uploadFile(...filePaths) {
         
     | 
| 
       630 
     | 
    
         
            -
                    const isMultiple = await this.evaluate((element) => {
         
     | 
| 
       631 
     | 
    
         
            -
                        if (!(element instanceof HTMLInputElement)) {
         
     | 
| 
       632 
     | 
    
         
            -
                            throw new Error('uploadFile can only be called on an input element.');
         
     | 
| 
       633 
     | 
    
         
            -
                        }
         
     | 
| 
       634 
     | 
    
         
            -
                        return element.multiple;
         
     | 
| 
       635 
     | 
    
         
            -
                    });
         
     | 
| 
       636 
     | 
    
         
            -
                    assert(filePaths.length <= 1 || isMultiple, 'Multiple file uploads only work with <input type=file multiple>');
         
     | 
| 
       637 
     | 
    
         
            -
                    if (!isNode) {
         
     | 
| 
       638 
     | 
    
         
            -
                        throw new Error(`JSHandle#uploadFile can only be used in Node environments.`);
         
     | 
| 
       639 
     | 
    
         
            -
                    }
         
     | 
| 
       640 
     | 
    
         
            -
                    /*
         
     | 
| 
       641 
     | 
    
         
            -
                     This import is only needed for `uploadFile`, so keep it scoped here to
         
     | 
| 
       642 
     | 
    
         
            -
                     avoid paying the cost unnecessarily.
         
     | 
| 
       643 
     | 
    
         
            -
                    */
         
     | 
| 
       644 
     | 
    
         
            -
                    const path = await import('path');
         
     | 
| 
       645 
     | 
    
         
            -
                    const fs = await helper.importFSModule();
         
     | 
| 
       646 
     | 
    
         
            -
                    // Locate all files and confirm that they exist.
         
     | 
| 
       647 
     | 
    
         
            -
                    const files = await Promise.all(filePaths.map(async (filePath) => {
         
     | 
| 
       648 
     | 
    
         
            -
                        const resolvedPath = path.resolve(filePath);
         
     | 
| 
       649 
     | 
    
         
            -
                        try {
         
     | 
| 
       650 
     | 
    
         
            -
                            await fs.promises.access(resolvedPath, fs.constants.R_OK);
         
     | 
| 
       651 
     | 
    
         
            -
                        }
         
     | 
| 
       652 
     | 
    
         
            -
                        catch (error) {
         
     | 
| 
       653 
     | 
    
         
            -
                            if (error.code === 'ENOENT')
         
     | 
| 
       654 
     | 
    
         
            -
                                throw new Error(`${filePath} does not exist or is not readable`);
         
     | 
| 
       655 
     | 
    
         
            -
                        }
         
     | 
| 
       656 
     | 
    
         
            -
                        return resolvedPath;
         
     | 
| 
       657 
     | 
    
         
            -
                    }));
         
     | 
| 
       658 
     | 
    
         
            -
                    const { objectId } = this._remoteObject;
         
     | 
| 
       659 
     | 
    
         
            -
                    const { node } = await this._client.send('DOM.describeNode', { objectId });
         
     | 
| 
       660 
     | 
    
         
            -
                    const { backendNodeId } = node;
         
     | 
| 
       661 
     | 
    
         
            -
                    /*  The zero-length array is a special case, it seems that
         
     | 
| 
       662 
     | 
    
         
            -
                        DOM.setFileInputFiles does not actually update the files in that case,
         
     | 
| 
       663 
     | 
    
         
            -
                        so the solution is to eval the element value to a new FileList directly.
         
     | 
| 
       664 
     | 
    
         
            -
                    */
         
     | 
| 
       665 
     | 
    
         
            -
                    if (files.length === 0) {
         
     | 
| 
       666 
     | 
    
         
            -
                        await this.evaluate((element) => {
         
     | 
| 
       667 
     | 
    
         
            -
                            element.files = new DataTransfer().files;
         
     | 
| 
       668 
     | 
    
         
            -
                            // Dispatch events for this case because it should behave akin to a user action.
         
     | 
| 
       669 
     | 
    
         
            -
                            element.dispatchEvent(new Event('input', { bubbles: true }));
         
     | 
| 
       670 
     | 
    
         
            -
                            element.dispatchEvent(new Event('change', { bubbles: true }));
         
     | 
| 
       671 
     | 
    
         
            -
                        });
         
     | 
| 
       672 
     | 
    
         
            -
                    }
         
     | 
| 
       673 
     | 
    
         
            -
                    else {
         
     | 
| 
       674 
     | 
    
         
            -
                        await this._client.send('DOM.setFileInputFiles', {
         
     | 
| 
       675 
     | 
    
         
            -
                            objectId,
         
     | 
| 
       676 
     | 
    
         
            -
                            files,
         
     | 
| 
       677 
     | 
    
         
            -
                            backendNodeId,
         
     | 
| 
       678 
     | 
    
         
            -
                        });
         
     | 
| 
       679 
     | 
    
         
            -
                    }
         
     | 
| 
       680 
     | 
    
         
            -
                }
         
     | 
| 
       681 
     | 
    
         
            -
                /**
         
     | 
| 
       682 
     | 
    
         
            -
                 * This method scrolls element into view if needed, and then uses
         
     | 
| 
       683 
     | 
    
         
            -
                 * {@link Touchscreen.tap} to tap in the center of the element.
         
     | 
| 
       684 
     | 
    
         
            -
                 * If the element is detached from DOM, the method throws an error.
         
     | 
| 
       685 
     | 
    
         
            -
                 */
         
     | 
| 
       686 
     | 
    
         
            -
                async tap() {
         
     | 
| 
       687 
     | 
    
         
            -
                    await this._scrollIntoViewIfNeeded();
         
     | 
| 
       688 
     | 
    
         
            -
                    const { x, y } = await this.clickablePoint();
         
     | 
| 
       689 
     | 
    
         
            -
                    await this._page.touchscreen.tap(x, y);
         
     | 
| 
       690 
     | 
    
         
            -
                }
         
     | 
| 
       691 
     | 
    
         
            -
                /**
         
     | 
| 
       692 
     | 
    
         
            -
                 * Calls {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus | focus} on the element.
         
     | 
| 
       693 
     | 
    
         
            -
                 */
         
     | 
| 
       694 
     | 
    
         
            -
                async focus() {
         
     | 
| 
       695 
     | 
    
         
            -
                    await this.evaluate((element) => element.focus());
         
     | 
| 
       696 
     | 
    
         
            -
                }
         
     | 
| 
       697 
     | 
    
         
            -
                /**
         
     | 
| 
       698 
     | 
    
         
            -
                 * Focuses the element, and then sends a `keydown`, `keypress`/`input`, and
         
     | 
| 
       699 
     | 
    
         
            -
                 * `keyup` event for each character in the text.
         
     | 
| 
       700 
     | 
    
         
            -
                 *
         
     | 
| 
       701 
     | 
    
         
            -
                 * To press a special key, like `Control` or `ArrowDown`,
         
     | 
| 
       702 
     | 
    
         
            -
                 * use {@link ElementHandle.press}.
         
     | 
| 
       703 
     | 
    
         
            -
                 *
         
     | 
| 
       704 
     | 
    
         
            -
                 * @example
         
     | 
| 
       705 
     | 
    
         
            -
                 * ```js
         
     | 
| 
       706 
     | 
    
         
            -
                 * await elementHandle.type('Hello'); // Types instantly
         
     | 
| 
       707 
     | 
    
         
            -
                 * await elementHandle.type('World', {delay: 100}); // Types slower, like a user
         
     | 
| 
       708 
     | 
    
         
            -
                 * ```
         
     | 
| 
       709 
     | 
    
         
            -
                 *
         
     | 
| 
       710 
     | 
    
         
            -
                 * @example
         
     | 
| 
       711 
     | 
    
         
            -
                 * An example of typing into a text field and then submitting the form:
         
     | 
| 
       712 
     | 
    
         
            -
                 *
         
     | 
| 
       713 
     | 
    
         
            -
                 * ```js
         
     | 
| 
       714 
     | 
    
         
            -
                 * const elementHandle = await page.$('input');
         
     | 
| 
       715 
     | 
    
         
            -
                 * await elementHandle.type('some text');
         
     | 
| 
       716 
     | 
    
         
            -
                 * await elementHandle.press('Enter');
         
     | 
| 
       717 
     | 
    
         
            -
                 * ```
         
     | 
| 
       718 
     | 
    
         
            -
                 */
         
     | 
| 
       719 
     | 
    
         
            -
                async type(text, options) {
         
     | 
| 
       720 
     | 
    
         
            -
                    await this.focus();
         
     | 
| 
       721 
     | 
    
         
            -
                    await this._page.keyboard.type(text, options);
         
     | 
| 
       722 
     | 
    
         
            -
                }
         
     | 
| 
       723 
     | 
    
         
            -
                /**
         
     | 
| 
       724 
     | 
    
         
            -
                 * Focuses the element, and then uses {@link Keyboard.down} and {@link Keyboard.up}.
         
     | 
| 
       725 
     | 
    
         
            -
                 *
         
     | 
| 
       726 
     | 
    
         
            -
                 * @remarks
         
     | 
| 
       727 
     | 
    
         
            -
                 * If `key` is a single character and no modifier keys besides `Shift`
         
     | 
| 
       728 
     | 
    
         
            -
                 * are being held down, a `keypress`/`input` event will also be generated.
         
     | 
| 
       729 
     | 
    
         
            -
                 * The `text` option can be specified to force an input event to be generated.
         
     | 
| 
       730 
     | 
    
         
            -
                 *
         
     | 
| 
       731 
     | 
    
         
            -
                 * **NOTE** Modifier keys DO affect `elementHandle.press`. Holding down `Shift`
         
     | 
| 
       732 
     | 
    
         
            -
                 * will type the text in upper case.
         
     | 
| 
       733 
     | 
    
         
            -
                 *
         
     | 
| 
       734 
     | 
    
         
            -
                 * @param key - Name of key to press, such as `ArrowLeft`.
         
     | 
| 
       735 
     | 
    
         
            -
                 *    See {@link KeyInput} for a list of all key names.
         
     | 
| 
       736 
     | 
    
         
            -
                 */
         
     | 
| 
       737 
     | 
    
         
            -
                async press(key, options) {
         
     | 
| 
       738 
     | 
    
         
            -
                    await this.focus();
         
     | 
| 
       739 
     | 
    
         
            -
                    await this._page.keyboard.press(key, options);
         
     | 
| 
       740 
     | 
    
         
            -
                }
         
     | 
| 
       741 
     | 
    
         
            -
                /**
         
     | 
| 
       742 
     | 
    
         
            -
                 * This method returns the bounding box of the element (relative to the main frame),
         
     | 
| 
       743 
     | 
    
         
            -
                 * or `null` if the element is not visible.
         
     | 
| 
       744 
     | 
    
         
            -
                 */
         
     | 
| 
       745 
     | 
    
         
            -
                async boundingBox() {
         
     | 
| 
       746 
     | 
    
         
            -
                    const result = await this._getBoxModel();
         
     | 
| 
       747 
     | 
    
         
            -
                    if (!result)
         
     | 
| 
       748 
     | 
    
         
            -
                        return null;
         
     | 
| 
       749 
     | 
    
         
            -
                    const { offsetX, offsetY } = await this._getOOPIFOffsets(this._frame);
         
     | 
| 
       750 
     | 
    
         
            -
                    const quad = result.model.border;
         
     | 
| 
       751 
     | 
    
         
            -
                    const x = Math.min(quad[0], quad[2], quad[4], quad[6]);
         
     | 
| 
       752 
     | 
    
         
            -
                    const y = Math.min(quad[1], quad[3], quad[5], quad[7]);
         
     | 
| 
       753 
     | 
    
         
            -
                    const width = Math.max(quad[0], quad[2], quad[4], quad[6]) - x;
         
     | 
| 
       754 
     | 
    
         
            -
                    const height = Math.max(quad[1], quad[3], quad[5], quad[7]) - y;
         
     | 
| 
       755 
     | 
    
         
            -
                    return { x: x + offsetX, y: y + offsetY, width, height };
         
     | 
| 
       756 
     | 
    
         
            -
                }
         
     | 
| 
       757 
     | 
    
         
            -
                /**
         
     | 
| 
       758 
     | 
    
         
            -
                 * This method returns boxes of the element, or `null` if the element is not visible.
         
     | 
| 
       759 
     | 
    
         
            -
                 *
         
     | 
| 
       760 
     | 
    
         
            -
                 * @remarks
         
     | 
| 
       761 
     | 
    
         
            -
                 *
         
     | 
| 
       762 
     | 
    
         
            -
                 * Boxes are represented as an array of points;
         
     | 
| 
       763 
     | 
    
         
            -
                 * Each Point is an object `{x, y}`. Box points are sorted clock-wise.
         
     | 
| 
       764 
     | 
    
         
            -
                 */
         
     | 
| 
       765 
     | 
    
         
            -
                async boxModel() {
         
     | 
| 
       766 
     | 
    
         
            -
                    const result = await this._getBoxModel();
         
     | 
| 
       767 
     | 
    
         
            -
                    if (!result)
         
     | 
| 
       768 
     | 
    
         
            -
                        return null;
         
     | 
| 
       769 
     | 
    
         
            -
                    const { offsetX, offsetY } = await this._getOOPIFOffsets(this._frame);
         
     | 
| 
       770 
     | 
    
         
            -
                    const { content, padding, border, margin, width, height } = result.model;
         
     | 
| 
       771 
     | 
    
         
            -
                    return {
         
     | 
| 
       772 
     | 
    
         
            -
                        content: applyOffsetsToQuad(this._fromProtocolQuad(content), offsetX, offsetY),
         
     | 
| 
       773 
     | 
    
         
            -
                        padding: applyOffsetsToQuad(this._fromProtocolQuad(padding), offsetX, offsetY),
         
     | 
| 
       774 
     | 
    
         
            -
                        border: applyOffsetsToQuad(this._fromProtocolQuad(border), offsetX, offsetY),
         
     | 
| 
       775 
     | 
    
         
            -
                        margin: applyOffsetsToQuad(this._fromProtocolQuad(margin), offsetX, offsetY),
         
     | 
| 
       776 
     | 
    
         
            -
                        width,
         
     | 
| 
       777 
     | 
    
         
            -
                        height,
         
     | 
| 
       778 
     | 
    
         
            -
                    };
         
     | 
| 
       779 
     | 
    
         
            -
                }
         
     | 
| 
       780 
     | 
    
         
            -
                /**
         
     | 
| 
       781 
     | 
    
         
            -
                 * This method scrolls element into view if needed, and then uses
         
     | 
| 
       782 
     | 
    
         
            -
                 * {@link Page.screenshot} to take a screenshot of the element.
         
     | 
| 
       783 
     | 
    
         
            -
                 * If the element is detached from DOM, the method throws an error.
         
     | 
| 
       784 
     | 
    
         
            -
                 */
         
     | 
| 
       785 
     | 
    
         
            -
                async screenshot(options = {}) {
         
     | 
| 
       786 
     | 
    
         
            -
                    let needsViewportReset = false;
         
     | 
| 
       787 
     | 
    
         
            -
                    let boundingBox = await this.boundingBox();
         
     | 
| 
       788 
     | 
    
         
            -
                    assert(boundingBox, 'Node is either not visible or not an HTMLElement');
         
     | 
| 
       789 
     | 
    
         
            -
                    const viewport = this._page.viewport();
         
     | 
| 
       790 
     | 
    
         
            -
                    if (viewport &&
         
     | 
| 
       791 
     | 
    
         
            -
                        (boundingBox.width > viewport.width ||
         
     | 
| 
       792 
     | 
    
         
            -
                            boundingBox.height > viewport.height)) {
         
     | 
| 
       793 
     | 
    
         
            -
                        const newViewport = {
         
     | 
| 
       794 
     | 
    
         
            -
                            width: Math.max(viewport.width, Math.ceil(boundingBox.width)),
         
     | 
| 
       795 
     | 
    
         
            -
                            height: Math.max(viewport.height, Math.ceil(boundingBox.height)),
         
     | 
| 
       796 
     | 
    
         
            -
                        };
         
     | 
| 
       797 
     | 
    
         
            -
                        await this._page.setViewport(Object.assign({}, viewport, newViewport));
         
     | 
| 
       798 
     | 
    
         
            -
                        needsViewportReset = true;
         
     | 
| 
       799 
     | 
    
         
            -
                    }
         
     | 
| 
       800 
     | 
    
         
            -
                    await this._scrollIntoViewIfNeeded();
         
     | 
| 
       801 
     | 
    
         
            -
                    boundingBox = await this.boundingBox();
         
     | 
| 
       802 
     | 
    
         
            -
                    assert(boundingBox, 'Node is either not visible or not an HTMLElement');
         
     | 
| 
       803 
     | 
    
         
            -
                    assert(boundingBox.width !== 0, 'Node has 0 width.');
         
     | 
| 
       804 
     | 
    
         
            -
                    assert(boundingBox.height !== 0, 'Node has 0 height.');
         
     | 
| 
       805 
     | 
    
         
            -
                    const layoutMetrics = await this._client.send('Page.getLayoutMetrics');
         
     | 
| 
       806 
     | 
    
         
            -
                    // Fallback to `layoutViewport` in case of using Firefox.
         
     | 
| 
       807 
     | 
    
         
            -
                    const { pageX, pageY } = layoutMetrics.cssVisualViewport || layoutMetrics.layoutViewport;
         
     | 
| 
       808 
     | 
    
         
            -
                    const clip = Object.assign({}, boundingBox);
         
     | 
| 
       809 
     | 
    
         
            -
                    clip.x += pageX;
         
     | 
| 
       810 
     | 
    
         
            -
                    clip.y += pageY;
         
     | 
| 
       811 
     | 
    
         
            -
                    const imageData = await this._page.screenshot(Object.assign({}, {
         
     | 
| 
       812 
     | 
    
         
            -
                        clip,
         
     | 
| 
       813 
     | 
    
         
            -
                    }, options));
         
     | 
| 
       814 
     | 
    
         
            -
                    if (needsViewportReset)
         
     | 
| 
       815 
     | 
    
         
            -
                        await this._page.setViewport(viewport);
         
     | 
| 
       816 
     | 
    
         
            -
                    return imageData;
         
     | 
| 
       817 
     | 
    
         
            -
                }
         
     | 
| 
       818 
     | 
    
         
            -
                /**
         
     | 
| 
       819 
     | 
    
         
            -
                 * Runs `element.querySelector` within the page. If no element matches the selector,
         
     | 
| 
       820 
     | 
    
         
            -
                 * the return value resolves to `null`.
         
     | 
| 
       821 
     | 
    
         
            -
                 */
         
     | 
| 
       822 
     | 
    
         
            -
                async $(selector) {
         
     | 
| 
       823 
     | 
    
         
            -
                    const { updatedSelector, queryHandler } = getQueryHandlerAndSelector(selector);
         
     | 
| 
       824 
     | 
    
         
            -
                    return queryHandler.queryOne(this, updatedSelector);
         
     | 
| 
       825 
     | 
    
         
            -
                }
         
     | 
| 
       826 
     | 
    
         
            -
                /**
         
     | 
| 
       827 
     | 
    
         
            -
                 * Runs `element.querySelectorAll` within the page. If no elements match the selector,
         
     | 
| 
       828 
     | 
    
         
            -
                 * the return value resolves to `[]`.
         
     | 
| 
       829 
     | 
    
         
            -
                 */
         
     | 
| 
       830 
     | 
    
         
            -
                async $$(selector) {
         
     | 
| 
       831 
     | 
    
         
            -
                    const { updatedSelector, queryHandler } = getQueryHandlerAndSelector(selector);
         
     | 
| 
       832 
     | 
    
         
            -
                    return queryHandler.queryAll(this, updatedSelector);
         
     | 
| 
       833 
     | 
    
         
            -
                }
         
     | 
| 
       834 
     | 
    
         
            -
                /**
         
     | 
| 
       835 
     | 
    
         
            -
                 * This method runs `document.querySelector` within the element and passes it as
         
     | 
| 
       836 
     | 
    
         
            -
                 * the first argument to `pageFunction`. If there's no element matching `selector`,
         
     | 
| 
       837 
     | 
    
         
            -
                 * the method throws an error.
         
     | 
| 
       838 
     | 
    
         
            -
                 *
         
     | 
| 
       839 
     | 
    
         
            -
                 * If `pageFunction` returns a Promise, then `frame.$eval` would wait for the promise
         
     | 
| 
       840 
     | 
    
         
            -
                 * to resolve and return its value.
         
     | 
| 
       841 
     | 
    
         
            -
                 *
         
     | 
| 
       842 
     | 
    
         
            -
                 * @example
         
     | 
| 
       843 
     | 
    
         
            -
                 * ```js
         
     | 
| 
       844 
     | 
    
         
            -
                 * const tweetHandle = await page.$('.tweet');
         
     | 
| 
       845 
     | 
    
         
            -
                 * expect(await tweetHandle.$eval('.like', node => node.innerText)).toBe('100');
         
     | 
| 
       846 
     | 
    
         
            -
                 * expect(await tweetHandle.$eval('.retweets', node => node.innerText)).toBe('10');
         
     | 
| 
       847 
     | 
    
         
            -
                 * ```
         
     | 
| 
       848 
     | 
    
         
            -
                 */
         
     | 
| 
       849 
     | 
    
         
            -
                async $eval(selector, pageFunction, ...args) {
         
     | 
| 
       850 
     | 
    
         
            -
                    const elementHandle = await this.$(selector);
         
     | 
| 
       851 
     | 
    
         
            -
                    if (!elementHandle)
         
     | 
| 
       852 
     | 
    
         
            -
                        throw new Error(`Error: failed to find element matching selector "${selector}"`);
         
     | 
| 
       853 
     | 
    
         
            -
                    const result = await elementHandle.evaluate(pageFunction, ...args);
         
     | 
| 
       854 
     | 
    
         
            -
                    await elementHandle.dispose();
         
     | 
| 
       855 
     | 
    
         
            -
                    /**
         
     | 
| 
       856 
     | 
    
         
            -
                     * This `as` is a little unfortunate but helps TS understand the behavior of
         
     | 
| 
       857 
     | 
    
         
            -
                     * `elementHandle.evaluate`. If evaluate returns an element it will return an
         
     | 
| 
       858 
     | 
    
         
            -
                     * ElementHandle instance, rather than the plain object. All the
         
     | 
| 
       859 
     | 
    
         
            -
                     * WrapElementHandle type does is wrap ReturnType into
         
     | 
| 
       860 
     | 
    
         
            -
                     * ElementHandle<ReturnType> if it is an ElementHandle, or leave it alone as
         
     | 
| 
       861 
     | 
    
         
            -
                     * ReturnType if it isn't.
         
     | 
| 
       862 
     | 
    
         
            -
                     */
         
     | 
| 
       863 
     | 
    
         
            -
                    return result;
         
     | 
| 
       864 
     | 
    
         
            -
                }
         
     | 
| 
       865 
     | 
    
         
            -
                /**
         
     | 
| 
       866 
     | 
    
         
            -
                 * This method runs `document.querySelectorAll` within the element and passes it as
         
     | 
| 
       867 
     | 
    
         
            -
                 * the first argument to `pageFunction`. If there's no element matching `selector`,
         
     | 
| 
       868 
     | 
    
         
            -
                 * the method throws an error.
         
     | 
| 
       869 
     | 
    
         
            -
                 *
         
     | 
| 
       870 
     | 
    
         
            -
                 * If `pageFunction` returns a Promise, then `frame.$$eval` would wait for the
         
     | 
| 
       871 
     | 
    
         
            -
                 * promise to resolve and return its value.
         
     | 
| 
       872 
     | 
    
         
            -
                 *
         
     | 
| 
       873 
     | 
    
         
            -
                 * @example
         
     | 
| 
       874 
     | 
    
         
            -
                 * ```html
         
     | 
| 
       875 
     | 
    
         
            -
                 * <div class="feed">
         
     | 
| 
       876 
     | 
    
         
            -
                 *   <div class="tweet">Hello!</div>
         
     | 
| 
       877 
     | 
    
         
            -
                 *   <div class="tweet">Hi!</div>
         
     | 
| 
       878 
     | 
    
         
            -
                 * </div>
         
     | 
| 
       879 
     | 
    
         
            -
                 * ```
         
     | 
| 
       880 
     | 
    
         
            -
                 *
         
     | 
| 
       881 
     | 
    
         
            -
                 * @example
         
     | 
| 
       882 
     | 
    
         
            -
                 * ```js
         
     | 
| 
       883 
     | 
    
         
            -
                 * const feedHandle = await page.$('.feed');
         
     | 
| 
       884 
     | 
    
         
            -
                 * expect(await feedHandle.$$eval('.tweet', nodes => nodes.map(n => n.innerText)))
         
     | 
| 
       885 
     | 
    
         
            -
                 *  .toEqual(['Hello!', 'Hi!']);
         
     | 
| 
       886 
     | 
    
         
            -
                 * ```
         
     | 
| 
       887 
     | 
    
         
            -
                 */
         
     | 
| 
       888 
     | 
    
         
            -
                async $$eval(selector, pageFunction, ...args) {
         
     | 
| 
       889 
     | 
    
         
            -
                    const { updatedSelector, queryHandler } = getQueryHandlerAndSelector(selector);
         
     | 
| 
       890 
     | 
    
         
            -
                    const arrayHandle = await queryHandler.queryAllArray(this, updatedSelector);
         
     | 
| 
       891 
     | 
    
         
            -
                    const result = await arrayHandle.evaluate(pageFunction, ...args);
         
     | 
| 
       892 
     | 
    
         
            -
                    await arrayHandle.dispose();
         
     | 
| 
       893 
     | 
    
         
            -
                    /* This `as` exists for the same reason as the `as` in $eval above.
         
     | 
| 
       894 
     | 
    
         
            -
                     * See the comment there for a full explanation.
         
     | 
| 
       895 
     | 
    
         
            -
                     */
         
     | 
| 
       896 
     | 
    
         
            -
                    return result;
         
     | 
| 
       897 
     | 
    
         
            -
                }
         
     | 
| 
       898 
     | 
    
         
            -
                /**
         
     | 
| 
       899 
     | 
    
         
            -
                 * The method evaluates the XPath expression relative to the elementHandle.
         
     | 
| 
       900 
     | 
    
         
            -
                 * If there are no such elements, the method will resolve to an empty array.
         
     | 
| 
       901 
     | 
    
         
            -
                 * @param expression - Expression to {@link https://developer.mozilla.org/en-US/docs/Web/API/Document/evaluate | evaluate}
         
     | 
| 
       902 
     | 
    
         
            -
                 */
         
     | 
| 
       903 
     | 
    
         
            -
                async $x(expression) {
         
     | 
| 
       904 
     | 
    
         
            -
                    const arrayHandle = await this.evaluateHandle((element, expression) => {
         
     | 
| 
       905 
     | 
    
         
            -
                        const document = element.ownerDocument || element;
         
     | 
| 
       906 
     | 
    
         
            -
                        const iterator = document.evaluate(expression, element, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE);
         
     | 
| 
       907 
     | 
    
         
            -
                        const array = [];
         
     | 
| 
       908 
     | 
    
         
            -
                        let item;
         
     | 
| 
       909 
     | 
    
         
            -
                        while ((item = iterator.iterateNext()))
         
     | 
| 
       910 
     | 
    
         
            -
                            array.push(item);
         
     | 
| 
       911 
     | 
    
         
            -
                        return array;
         
     | 
| 
       912 
     | 
    
         
            -
                    }, expression);
         
     | 
| 
       913 
     | 
    
         
            -
                    const properties = await arrayHandle.getProperties();
         
     | 
| 
       914 
     | 
    
         
            -
                    await arrayHandle.dispose();
         
     | 
| 
       915 
     | 
    
         
            -
                    const result = [];
         
     | 
| 
       916 
     | 
    
         
            -
                    for (const property of properties.values()) {
         
     | 
| 
       917 
     | 
    
         
            -
                        const elementHandle = property.asElement();
         
     | 
| 
       918 
     | 
    
         
            -
                        if (elementHandle)
         
     | 
| 
       919 
     | 
    
         
            -
                            result.push(elementHandle);
         
     | 
| 
       920 
     | 
    
         
            -
                    }
         
     | 
| 
       921 
     | 
    
         
            -
                    return result;
         
     | 
| 
       922 
     | 
    
         
            -
                }
         
     | 
| 
       923 
     | 
    
         
            -
                /**
         
     | 
| 
       924 
     | 
    
         
            -
                 * Resolves to true if the element is visible in the current viewport.
         
     | 
| 
       925 
     | 
    
         
            -
                 */
         
     | 
| 
       926 
     | 
    
         
            -
                async isIntersectingViewport(options) {
         
     | 
| 
       927 
     | 
    
         
            -
                    const { threshold = 0 } = options || {};
         
     | 
| 
       928 
     | 
    
         
            -
                    return await this.evaluate(async (element, threshold) => {
         
     | 
| 
       929 
     | 
    
         
            -
                        const visibleRatio = await new Promise((resolve) => {
         
     | 
| 
       930 
     | 
    
         
            -
                            const observer = new IntersectionObserver((entries) => {
         
     | 
| 
       931 
     | 
    
         
            -
                                resolve(entries[0].intersectionRatio);
         
     | 
| 
       932 
     | 
    
         
            -
                                observer.disconnect();
         
     | 
| 
       933 
     | 
    
         
            -
                            });
         
     | 
| 
       934 
     | 
    
         
            -
                            observer.observe(element);
         
     | 
| 
       935 
     | 
    
         
            -
                        });
         
     | 
| 
       936 
     | 
    
         
            -
                        return threshold === 1 ? visibleRatio === 1 : visibleRatio > threshold;
         
     | 
| 
       937 
     | 
    
         
            -
                    }, threshold);
         
     | 
| 
       938 
     | 
    
         
            -
                }
         
     | 
| 
       939 
     | 
    
         
            -
            }
         
     | 
| 
       940 
     | 
    
         
            -
            function computeQuadArea(quad) {
         
     | 
| 
       941 
     | 
    
         
            -
                /* Compute sum of all directed areas of adjacent triangles
         
     | 
| 
       942 
     | 
    
         
            -
                  https://en.wikipedia.org/wiki/Polygon#Simple_polygons
         
     | 
| 
       943 
     | 
    
         
            -
                */
         
     | 
| 
       944 
     | 
    
         
            -
                let area = 0;
         
     | 
| 
       945 
     | 
    
         
            -
                for (let i = 0; i < quad.length; ++i) {
         
     | 
| 
       946 
     | 
    
         
            -
                    const p1 = quad[i];
         
     | 
| 
       947 
     | 
    
         
            -
                    const p2 = quad[(i + 1) % quad.length];
         
     | 
| 
       948 
     | 
    
         
            -
                    area += (p1.x * p2.y - p2.x * p1.y) / 2;
         
     | 
| 
      
 211 
     | 
    
         
            +
                    return 'JSHandle:' + valueFromRemoteObject(__classPrivateFieldGet(this, _JSHandle_remoteObject, "f"));
         
     | 
| 
       949 
212 
     | 
    
         
             
                }
         
     | 
| 
       950 
     | 
    
         
            -
                return Math.abs(area);
         
     | 
| 
       951 
213 
     | 
    
         
             
            }
         
     | 
| 
      
 214 
     | 
    
         
            +
            _JSHandle_client = new WeakMap(), _JSHandle_disposed = new WeakMap(), _JSHandle_context = new WeakMap(), _JSHandle_remoteObject = new WeakMap();
         
     | 
| 
       952 
215 
     | 
    
         
             
            //# sourceMappingURL=JSHandle.js.map
         
     |