# frozen_string_literal: true# 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.moduleSeleniummoduleWebDrivermoduleChromiummoduleFeaturesCHROMIUM_COMMANDS={launch_app: [:post,'session/:session_id/chromium/launch_app'],get_network_conditions: [:get,'session/:session_id/chromium/network_conditions'],set_network_conditions: [:post,'session/:session_id/chromium/network_conditions'],delete_network_conditions: [:delete,'session/:session_id/chromium/network_conditions'],set_permission: [:post,'session/:session_id/permissions'],get_available_log_types: [:get,'session/:session_id/se/log/types'],get_log: [:post,'session/:session_id/se/log']}.freezedeflaunch_app(id)execute:launch_app,{},{id: id}enddefcast_sinksexecute:get_cast_sinksenddefcast_sink_to_use=(name)execute:set_cast_sink_to_use,{},{sinkName: name}enddefcast_issue_messageexecute:cast_issue_messageenddefstart_cast_tab_mirroring(name)execute:start_cast_tab_mirroring,{},{sinkName: name}enddefstart_cast_desktop_mirroring(name)execute:start_cast_desktop_mirroring,{},{sinkName: name}enddefstop_casting(name)execute:stop_casting,{},{sinkName: name}enddefset_permission(name,value)execute:set_permission,{},{descriptor: {name: name},state: value}enddefnetwork_conditionsexecute:get_network_conditionsenddefnetwork_conditions=(conditions)execute:set_network_conditions,{},{network_conditions: conditions}enddefdelete_network_conditionsexecute:delete_network_conditionsenddefsend_command(command_params)execute:send_command,{},command_paramsenddefavailable_log_typestypes=execute:get_available_log_typesArray(types).map(&:to_sym)enddeflog(type)data=execute:get_log,{},{type: type.to_s}Array(data).mapdo|l|LogEntry.newl.fetch('level','UNKNOWN'),l.fetch('timestamp'),l.fetch('message')rescueKeyErrornextendendend# Bridgeend# Chromiumend# WebDriverend# Selenium