lib/selenium/devtools/v136/network.rb



# 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.

# This file is automatically generated. Any changes will be lost!
module Selenium
  module DevTools
    module V136
      class Network
        EVENTS = {
          data_received: 'dataReceived',
          event_source_message_received: 'eventSourceMessageReceived',
          loading_failed: 'loadingFailed',
          loading_finished: 'loadingFinished',
          request_intercepted: 'requestIntercepted',
          request_served_from_cache: 'requestServedFromCache',
          request_will_be_sent: 'requestWillBeSent',
          resource_changed_priority: 'resourceChangedPriority',
          signed_exchange_received: 'signedExchangeReceived',
          response_received: 'responseReceived',
          web_socket_closed: 'webSocketClosed',
          web_socket_created: 'webSocketCreated',
          web_socket_frame_error: 'webSocketFrameError',
          web_socket_frame_received: 'webSocketFrameReceived',
          web_socket_frame_sent: 'webSocketFrameSent',
          web_socket_handshake_response_received: 'webSocketHandshakeResponseReceived',
          web_socket_will_send_handshake_request: 'webSocketWillSendHandshakeRequest',
          web_transport_created: 'webTransportCreated',
          web_transport_connection_established: 'webTransportConnectionEstablished',
          web_transport_closed: 'webTransportClosed',
          direct_tcp_socket_created: 'directTCPSocketCreated',
          direct_tcp_socket_opened: 'directTCPSocketOpened',
          direct_tcp_socket_aborted: 'directTCPSocketAborted',
          direct_tcp_socket_closed: 'directTCPSocketClosed',
          request_will_be_sent_extra_info: 'requestWillBeSentExtraInfo',
          response_received_extra_info: 'responseReceivedExtraInfo',
          response_received_early_hints: 'responseReceivedEarlyHints',
          trust_token_operation_done: 'trustTokenOperationDone',
          policy_updated: 'policyUpdated',
          subresource_web_bundle_metadata_received: 'subresourceWebBundleMetadataReceived',
          subresource_web_bundle_metadata_error: 'subresourceWebBundleMetadataError',
          subresource_web_bundle_inner_response_parsed: 'subresourceWebBundleInnerResponseParsed',
          subresource_web_bundle_inner_response_error: 'subresourceWebBundleInnerResponseError',
          reporting_api_report_added: 'reportingApiReportAdded',
          reporting_api_report_updated: 'reportingApiReportUpdated',
          reporting_api_endpoints_changed_for_origin: 'reportingApiEndpointsChangedForOrigin',
        }.freeze

        def initialize(devtools)
          @devtools = devtools
        end

        def on(event, &block)
          event = EVENTS[event] if event.is_a?(Symbol)
          @devtools.callbacks["Network.#{event}"] << block
        end

        def set_accepted_encodings(encodings:)
          @devtools.send_cmd('Network.setAcceptedEncodings',
                             encodings: encodings)
        end

        def clear_accepted_encodings_override
          @devtools.send_cmd('Network.clearAcceptedEncodingsOverride')
        end

        def can_clear_browser_cache
          @devtools.send_cmd('Network.canClearBrowserCache')
        end

        def can_clear_browser_cookies
          @devtools.send_cmd('Network.canClearBrowserCookies')
        end

        def can_emulate_network_conditions
          @devtools.send_cmd('Network.canEmulateNetworkConditions')
        end

        def clear_browser_cache
          @devtools.send_cmd('Network.clearBrowserCache')
        end

        def clear_browser_cookies
          @devtools.send_cmd('Network.clearBrowserCookies')
        end

        def continue_intercepted_request(interception_id:, error_reason: nil, raw_response: nil, url: nil, method: nil, post_data: nil, headers: nil, auth_challenge_response: nil)
          @devtools.send_cmd('Network.continueInterceptedRequest',
                             interceptionId: interception_id,
                             errorReason: error_reason,
                             rawResponse: raw_response,
                             url: url,
                             method: method,
                             postData: post_data,
                             headers: headers,
                             authChallengeResponse: auth_challenge_response)
        end

        def delete_cookies(name:, url: nil, domain: nil, path: nil, partition_key: nil)
          @devtools.send_cmd('Network.deleteCookies',
                             name: name,
                             url: url,
                             domain: domain,
                             path: path,
                             partitionKey: partition_key)
        end

        def disable
          @devtools.send_cmd('Network.disable')
        end

        def emulate_network_conditions(offline:, latency:, download_throughput:, upload_throughput:, connection_type: nil, packet_loss: nil, packet_queue_length: nil, packet_reordering: nil)
          @devtools.send_cmd('Network.emulateNetworkConditions',
                             offline: offline,
                             latency: latency,
                             downloadThroughput: download_throughput,
                             uploadThroughput: upload_throughput,
                             connectionType: connection_type,
                             packetLoss: packet_loss,
                             packetQueueLength: packet_queue_length,
                             packetReordering: packet_reordering)
        end

        def enable(max_total_buffer_size: nil, max_resource_buffer_size: nil, max_post_data_size: nil)
          @devtools.send_cmd('Network.enable',
                             maxTotalBufferSize: max_total_buffer_size,
                             maxResourceBufferSize: max_resource_buffer_size,
                             maxPostDataSize: max_post_data_size)
        end

        def get_all_cookies
          @devtools.send_cmd('Network.getAllCookies')
        end

        def get_certificate(origin:)
          @devtools.send_cmd('Network.getCertificate',
                             origin: origin)
        end

        def get_cookies(urls: nil)
          @devtools.send_cmd('Network.getCookies',
                             urls: urls)
        end

        def get_response_body(request_id:)
          @devtools.send_cmd('Network.getResponseBody',
                             requestId: request_id)
        end

        def get_request_post_data(request_id:)
          @devtools.send_cmd('Network.getRequestPostData',
                             requestId: request_id)
        end

        def get_response_body_for_interception(interception_id:)
          @devtools.send_cmd('Network.getResponseBodyForInterception',
                             interceptionId: interception_id)
        end

        def take_response_body_for_interception_as_stream(interception_id:)
          @devtools.send_cmd('Network.takeResponseBodyForInterceptionAsStream',
                             interceptionId: interception_id)
        end

        def replay_xhr(request_id:)
          @devtools.send_cmd('Network.replayXHR',
                             requestId: request_id)
        end

        def search_in_response_body(request_id:, query:, case_sensitive: nil, is_regex: nil)
          @devtools.send_cmd('Network.searchInResponseBody',
                             requestId: request_id,
                             query: query,
                             caseSensitive: case_sensitive,
                             isRegex: is_regex)
        end

        def set_blocked_urls(urls:)
          @devtools.send_cmd('Network.setBlockedURLs',
                             urls: urls)
        end

        def set_bypass_service_worker(bypass:)
          @devtools.send_cmd('Network.setBypassServiceWorker',
                             bypass: bypass)
        end

        def set_cache_disabled(cache_disabled:)
          @devtools.send_cmd('Network.setCacheDisabled',
                             cacheDisabled: cache_disabled)
        end

        def set_cookie(name:, value:, url: nil, domain: nil, path: nil, secure: nil, http_only: nil, same_site: nil, expires: nil, priority: nil, same_party: nil, source_scheme: nil, source_port: nil, partition_key: nil)
          @devtools.send_cmd('Network.setCookie',
                             name: name,
                             value: value,
                             url: url,
                             domain: domain,
                             path: path,
                             secure: secure,
                             httpOnly: http_only,
                             sameSite: same_site,
                             expires: expires,
                             priority: priority,
                             sameParty: same_party,
                             sourceScheme: source_scheme,
                             sourcePort: source_port,
                             partitionKey: partition_key)
        end

        def set_cookies(cookies:)
          @devtools.send_cmd('Network.setCookies',
                             cookies: cookies)
        end

        def set_extra_http_headers(headers:)
          @devtools.send_cmd('Network.setExtraHTTPHeaders',
                             headers: headers)
        end

        def set_attach_debug_stack(enabled:)
          @devtools.send_cmd('Network.setAttachDebugStack',
                             enabled: enabled)
        end

        def set_request_interception(patterns:)
          @devtools.send_cmd('Network.setRequestInterception',
                             patterns: patterns)
        end

        def set_user_agent_override(user_agent:, accept_language: nil, platform: nil, user_agent_metadata: nil)
          @devtools.send_cmd('Network.setUserAgentOverride',
                             userAgent: user_agent,
                             acceptLanguage: accept_language,
                             platform: platform,
                             userAgentMetadata: user_agent_metadata)
        end

        def stream_resource_content(request_id:)
          @devtools.send_cmd('Network.streamResourceContent',
                             requestId: request_id)
        end

        def get_security_isolation_status(frame_id: nil)
          @devtools.send_cmd('Network.getSecurityIsolationStatus',
                             frameId: frame_id)
        end

        def enable_reporting_api(enable:)
          @devtools.send_cmd('Network.enableReportingApi',
                             enable: enable)
        end

        def load_network_resource(frame_id: nil, url:, options:)
          @devtools.send_cmd('Network.loadNetworkResource',
                             frameId: frame_id,
                             url: url,
                             options: options)
        end

        def set_cookie_controls(enable_third_party_cookie_restriction:, disable_third_party_cookie_metadata:, disable_third_party_cookie_heuristics:)
          @devtools.send_cmd('Network.setCookieControls',
                             enableThirdPartyCookieRestriction: enable_third_party_cookie_restriction,
                             disableThirdPartyCookieMetadata: disable_third_party_cookie_metadata,
                             disableThirdPartyCookieHeuristics: disable_third_party_cookie_heuristics)
        end

      end # Network
    end # V136
  end # DevTools
end # Selenium