// Licensed to the Software Freedom Conservancy (SFC) under one // or more contributor license agreements. See the NOTICE file // distributed with this work for additional information // regarding copyright ownership. The SFC licenses this file // to you under the Apache License, Version 2.0 (the // "License"); you may not use this file except in compliance // with the License. You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, // software distributed under the License is distributed on an // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. import { RecorderPreprocessor } from '@seleniumhq/side-api' import api from 'browser/api/bidi' import { resolversByID } from 'browser/api/classes/DriverHandler' import preload from 'browser/helpers/preload' import Recorder from './preload/recorder' const recorderProcessors: RecorderPreprocessor[] = [] preload({ plugins: { addRecorderPreprocessor: (fn) => { recorderProcessors.push(fn) }, }, recorder: api.recorder, }) window.sideAPI.resolveAPI = (id: string, ...args: any[]) => { const resolver = resolversByID[id] if (resolver) { resolver(...args); } } window.addEventListener('DOMContentLoaded', async () => { setTimeout(async () => { console.debug('Initializing the recorder') const recorder = new Recorder(window, recorderProcessors) recorder.attach() }, 500) })