selenium-webdriver 4.0.0.alpha6 → 4.0.0.alpha7
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.
- checksums.yaml +4 -4
 - data/CHANGES +41 -4
 - data/lib/selenium/server.rb +22 -6
 - data/lib/selenium/webdriver.rb +1 -1
 - data/lib/selenium/webdriver/atoms/findElements.js +89 -90
 - data/lib/selenium/webdriver/atoms/getAttribute.js +79 -59
 - data/lib/selenium/webdriver/atoms/isDisplayed.js +72 -72
 - data/lib/selenium/webdriver/atoms/mutationListener.js +38 -0
 - data/lib/selenium/webdriver/chrome/driver.rb +8 -1
 - data/lib/selenium/webdriver/chrome/options.rb +1 -1
 - data/lib/selenium/webdriver/chrome/profile.rb +1 -1
 - data/lib/selenium/webdriver/common.rb +3 -1
 - data/lib/selenium/webdriver/common/driver.rb +5 -0
 - data/lib/selenium/webdriver/common/driver_extensions/has_authentication.rb +89 -0
 - data/lib/selenium/webdriver/common/driver_extensions/has_devtools.rb +2 -1
 - data/lib/selenium/webdriver/common/driver_extensions/has_log_events.rb +143 -0
 - data/lib/selenium/webdriver/common/element.rb +5 -0
 - data/lib/selenium/webdriver/common/options.rb +3 -3
 - data/lib/selenium/webdriver/common/platform.rb +1 -1
 - data/lib/selenium/webdriver/common/takes_screenshot.rb +63 -0
 - data/lib/selenium/webdriver/devtools.rb +18 -4
 - data/lib/selenium/webdriver/devtools/console_event.rb +38 -0
 - data/lib/selenium/webdriver/devtools/exception_event.rb +36 -0
 - data/lib/selenium/webdriver/devtools/mutation_event.rb +37 -0
 - data/lib/selenium/webdriver/devtools/v84/accessibility.rb +64 -0
 - data/lib/selenium/webdriver/devtools/v84/animation.rb +100 -0
 - data/lib/selenium/webdriver/devtools/v84/application_cache.rb +66 -0
 - data/lib/selenium/webdriver/devtools/{audits.rb → v84/audits.rb} +33 -31
 - data/lib/selenium/webdriver/devtools/v84/background_service.rb +69 -0
 - data/lib/selenium/webdriver/devtools/v84/browser.rb +125 -0
 - data/lib/selenium/webdriver/devtools/v84/cache_storage.rb +75 -0
 - data/lib/selenium/webdriver/devtools/v84/cast.rb +72 -0
 - data/lib/selenium/webdriver/devtools/v84/console.rb +59 -0
 - data/lib/selenium/webdriver/devtools/v84/css.rb +167 -0
 - data/lib/selenium/webdriver/devtools/v84/database.rb +66 -0
 - data/lib/selenium/webdriver/devtools/v84/debugger.rb +231 -0
 - data/lib/selenium/webdriver/devtools/{device_orientation.rb → v84/device_orientation.rb} +20 -18
 - data/lib/selenium/webdriver/devtools/v84/dom.rb +322 -0
 - data/lib/selenium/webdriver/devtools/v84/dom_debugger.rb +95 -0
 - data/lib/selenium/webdriver/devtools/v84/dom_snapshot.rb +67 -0
 - data/lib/selenium/webdriver/devtools/v84/dom_storage.rb +81 -0
 - data/lib/selenium/webdriver/devtools/v84/emulation.rb +182 -0
 - data/lib/selenium/webdriver/devtools/v84/fetch.rb +99 -0
 - data/lib/selenium/webdriver/devtools/v84/headless_experimental.rb +63 -0
 - data/lib/selenium/webdriver/devtools/v84/heap_profiler.rb +109 -0
 - data/lib/selenium/webdriver/devtools/v84/indexed_db.rb +102 -0
 - data/lib/selenium/webdriver/devtools/v84/input.rb +142 -0
 - data/lib/selenium/webdriver/devtools/{inspector.rb → v84/inspector.rb} +22 -20
 - data/lib/selenium/webdriver/devtools/{io.rb → v84/io.rb} +25 -23
 - data/lib/selenium/webdriver/devtools/v84/layer_tree.rb +97 -0
 - data/lib/selenium/webdriver/devtools/{database.rb → v84/log.rb} +33 -29
 - data/lib/selenium/webdriver/devtools/{media.rb → v84/media.rb} +29 -27
 - data/lib/selenium/webdriver/devtools/v84/memory.rb +88 -0
 - data/lib/selenium/webdriver/devtools/v84/network.rb +230 -0
 - data/lib/selenium/webdriver/devtools/v84/overlay.rb +159 -0
 - data/lib/selenium/webdriver/devtools/v84/page.rb +376 -0
 - data/lib/selenium/webdriver/devtools/{performance.rb → v84/performance.rb} +28 -26
 - data/lib/selenium/webdriver/devtools/v84/profiler.rb +113 -0
 - data/lib/selenium/webdriver/devtools/v84/runtime.rb +195 -0
 - data/lib/selenium/webdriver/devtools/{schema.rb → v84/schema.rb} +14 -12
 - data/lib/selenium/webdriver/devtools/v84/security.rb +73 -0
 - data/lib/selenium/webdriver/devtools/v84/service_worker.rb +118 -0
 - data/lib/selenium/webdriver/devtools/v84/storage.rb +97 -0
 - data/lib/selenium/webdriver/devtools/{system_info.rb → v84/system_info.rb} +17 -15
 - data/lib/selenium/webdriver/devtools/v84/target.rb +143 -0
 - data/lib/selenium/webdriver/devtools/v84/tethering.rb +57 -0
 - data/lib/selenium/webdriver/devtools/v84/tracing.rb +78 -0
 - data/lib/selenium/webdriver/devtools/v84/web_audio.rb +72 -0
 - data/lib/selenium/webdriver/devtools/v84/web_authn.rb +96 -0
 - data/lib/selenium/webdriver/devtools/v85/accessibility.rb +64 -0
 - data/lib/selenium/webdriver/devtools/v85/animation.rb +100 -0
 - data/lib/selenium/webdriver/devtools/v85/application_cache.rb +66 -0
 - data/lib/selenium/webdriver/devtools/v85/audits.rb +63 -0
 - data/lib/selenium/webdriver/devtools/v85/background_service.rb +69 -0
 - data/lib/selenium/webdriver/devtools/v85/browser.rb +125 -0
 - data/lib/selenium/webdriver/devtools/v85/cache_storage.rb +75 -0
 - data/lib/selenium/webdriver/devtools/v85/cast.rb +72 -0
 - data/lib/selenium/webdriver/devtools/v85/console.rb +59 -0
 - data/lib/selenium/webdriver/devtools/v85/css.rb +167 -0
 - data/lib/selenium/webdriver/devtools/v85/database.rb +66 -0
 - data/lib/selenium/webdriver/devtools/v85/debugger.rb +231 -0
 - data/lib/selenium/webdriver/devtools/v85/device_orientation.rb +55 -0
 - data/lib/selenium/webdriver/devtools/v85/dom.rb +322 -0
 - data/lib/selenium/webdriver/devtools/v85/dom_debugger.rb +95 -0
 - data/lib/selenium/webdriver/devtools/v85/dom_snapshot.rb +67 -0
 - data/lib/selenium/webdriver/devtools/v85/dom_storage.rb +81 -0
 - data/lib/selenium/webdriver/devtools/v85/emulation.rb +182 -0
 - data/lib/selenium/webdriver/devtools/v85/fetch.rb +99 -0
 - data/lib/selenium/webdriver/devtools/v85/headless_experimental.rb +63 -0
 - data/lib/selenium/webdriver/devtools/v85/heap_profiler.rb +109 -0
 - data/lib/selenium/webdriver/devtools/v85/indexed_db.rb +102 -0
 - data/lib/selenium/webdriver/devtools/v85/input.rb +143 -0
 - data/lib/selenium/webdriver/devtools/v85/inspector.rb +57 -0
 - data/lib/selenium/webdriver/devtools/{log.rb → v85/io.rb} +33 -38
 - data/lib/selenium/webdriver/devtools/v85/layer_tree.rb +97 -0
 - data/lib/selenium/webdriver/devtools/v85/log.rb +68 -0
 - data/lib/selenium/webdriver/devtools/v85/media.rb +59 -0
 - data/lib/selenium/webdriver/devtools/v85/memory.rb +88 -0
 - data/lib/selenium/webdriver/devtools/v85/network.rb +230 -0
 - data/lib/selenium/webdriver/devtools/v85/overlay.rb +160 -0
 - data/lib/selenium/webdriver/devtools/v85/page.rb +376 -0
 - data/lib/selenium/webdriver/devtools/v85/performance.rb +65 -0
 - data/lib/selenium/webdriver/devtools/v85/profiler.rb +113 -0
 - data/lib/selenium/webdriver/devtools/v85/runtime.rb +196 -0
 - data/lib/selenium/webdriver/devtools/v85/schema.rb +48 -0
 - data/lib/selenium/webdriver/devtools/v85/security.rb +73 -0
 - data/lib/selenium/webdriver/devtools/v85/service_worker.rb +118 -0
 - data/lib/selenium/webdriver/devtools/v85/storage.rb +97 -0
 - data/lib/selenium/webdriver/devtools/{console.rb → v85/system_info.rb} +19 -24
 - data/lib/selenium/webdriver/devtools/v85/target.rb +145 -0
 - data/lib/selenium/webdriver/devtools/v85/tethering.rb +57 -0
 - data/lib/selenium/webdriver/devtools/v85/tracing.rb +78 -0
 - data/lib/selenium/webdriver/devtools/v85/web_audio.rb +72 -0
 - data/lib/selenium/webdriver/devtools/v85/web_authn.rb +96 -0
 - data/lib/selenium/webdriver/devtools/v86/accessibility.rb +64 -0
 - data/lib/selenium/webdriver/devtools/v86/animation.rb +100 -0
 - data/lib/selenium/webdriver/devtools/v86/application_cache.rb +66 -0
 - data/lib/selenium/webdriver/devtools/v86/audits.rb +63 -0
 - data/lib/selenium/webdriver/devtools/v86/background_service.rb +69 -0
 - data/lib/selenium/webdriver/devtools/v86/browser.rb +125 -0
 - data/lib/selenium/webdriver/devtools/v86/cache_storage.rb +75 -0
 - data/lib/selenium/webdriver/devtools/v86/cast.rb +72 -0
 - data/lib/selenium/webdriver/devtools/v86/console.rb +59 -0
 - data/lib/selenium/webdriver/devtools/v86/css.rb +181 -0
 - data/lib/selenium/webdriver/devtools/v86/database.rb +66 -0
 - data/lib/selenium/webdriver/devtools/v86/debugger.rb +233 -0
 - data/lib/selenium/webdriver/devtools/v86/device_orientation.rb +55 -0
 - data/lib/selenium/webdriver/devtools/v86/dom.rb +329 -0
 - data/lib/selenium/webdriver/devtools/v86/dom_debugger.rb +95 -0
 - data/lib/selenium/webdriver/devtools/v86/dom_snapshot.rb +67 -0
 - data/lib/selenium/webdriver/devtools/v86/dom_storage.rb +81 -0
 - data/lib/selenium/webdriver/devtools/v86/emulation.rb +193 -0
 - data/lib/selenium/webdriver/devtools/v86/fetch.rb +99 -0
 - data/lib/selenium/webdriver/devtools/v86/headless_experimental.rb +63 -0
 - data/lib/selenium/webdriver/devtools/v86/heap_profiler.rb +109 -0
 - data/lib/selenium/webdriver/devtools/v86/indexed_db.rb +102 -0
 - data/lib/selenium/webdriver/devtools/v86/input.rb +143 -0
 - data/lib/selenium/webdriver/devtools/v86/inspector.rb +57 -0
 - data/lib/selenium/webdriver/devtools/v86/io.rb +61 -0
 - data/lib/selenium/webdriver/devtools/v86/layer_tree.rb +97 -0
 - data/lib/selenium/webdriver/devtools/v86/log.rb +68 -0
 - data/lib/selenium/webdriver/devtools/v86/media.rb +59 -0
 - data/lib/selenium/webdriver/devtools/v86/memory.rb +88 -0
 - data/lib/selenium/webdriver/devtools/v86/network.rb +235 -0
 - data/lib/selenium/webdriver/devtools/v86/overlay.rb +183 -0
 - data/lib/selenium/webdriver/devtools/v86/page.rb +376 -0
 - data/lib/selenium/webdriver/devtools/v86/performance.rb +65 -0
 - data/lib/selenium/webdriver/devtools/v86/profiler.rb +113 -0
 - data/lib/selenium/webdriver/devtools/v86/runtime.rb +196 -0
 - data/lib/selenium/webdriver/devtools/v86/schema.rb +48 -0
 - data/lib/selenium/webdriver/devtools/v86/security.rb +73 -0
 - data/lib/selenium/webdriver/devtools/v86/service_worker.rb +118 -0
 - data/lib/selenium/webdriver/devtools/v86/storage.rb +97 -0
 - data/lib/selenium/webdriver/devtools/{tethering.rb → v86/system_info.rb} +19 -22
 - data/lib/selenium/webdriver/devtools/v86/target.rb +145 -0
 - data/lib/selenium/webdriver/devtools/v86/tethering.rb +57 -0
 - data/lib/selenium/webdriver/devtools/v86/tracing.rb +78 -0
 - data/lib/selenium/webdriver/devtools/v86/web_audio.rb +72 -0
 - data/lib/selenium/webdriver/devtools/v86/web_authn.rb +102 -0
 - data/lib/selenium/webdriver/devtools/v87/accessibility.rb +73 -0
 - data/lib/selenium/webdriver/devtools/v87/animation.rb +100 -0
 - data/lib/selenium/webdriver/devtools/v87/application_cache.rb +66 -0
 - data/lib/selenium/webdriver/devtools/v87/audits.rb +63 -0
 - data/lib/selenium/webdriver/devtools/v87/background_service.rb +69 -0
 - data/lib/selenium/webdriver/devtools/v87/browser.rb +125 -0
 - data/lib/selenium/webdriver/devtools/v87/cache_storage.rb +75 -0
 - data/lib/selenium/webdriver/devtools/v87/cast.rb +72 -0
 - data/lib/selenium/webdriver/devtools/v87/console.rb +59 -0
 - data/lib/selenium/webdriver/devtools/v87/css.rb +181 -0
 - data/lib/selenium/webdriver/devtools/v87/database.rb +66 -0
 - data/lib/selenium/webdriver/devtools/v87/debugger.rb +233 -0
 - data/lib/selenium/webdriver/devtools/v87/device_orientation.rb +55 -0
 - data/lib/selenium/webdriver/devtools/v87/dom.rb +329 -0
 - data/lib/selenium/webdriver/devtools/v87/dom_debugger.rb +95 -0
 - data/lib/selenium/webdriver/devtools/v87/dom_snapshot.rb +67 -0
 - data/lib/selenium/webdriver/devtools/v87/dom_storage.rb +81 -0
 - data/lib/selenium/webdriver/devtools/v87/emulation.rb +193 -0
 - data/lib/selenium/webdriver/devtools/v87/fetch.rb +99 -0
 - data/lib/selenium/webdriver/devtools/v87/headless_experimental.rb +63 -0
 - data/lib/selenium/webdriver/devtools/v87/heap_profiler.rb +109 -0
 - data/lib/selenium/webdriver/devtools/v87/indexed_db.rb +102 -0
 - data/lib/selenium/webdriver/devtools/v87/input.rb +143 -0
 - data/lib/selenium/webdriver/devtools/v87/inspector.rb +57 -0
 - data/lib/selenium/webdriver/devtools/v87/io.rb +61 -0
 - data/lib/selenium/webdriver/devtools/v87/layer_tree.rb +97 -0
 - data/lib/selenium/webdriver/devtools/v87/log.rb +68 -0
 - data/lib/selenium/webdriver/devtools/v87/media.rb +59 -0
 - data/lib/selenium/webdriver/devtools/v87/memory.rb +88 -0
 - data/lib/selenium/webdriver/devtools/v87/network.rb +247 -0
 - data/lib/selenium/webdriver/devtools/v87/overlay.rb +183 -0
 - data/lib/selenium/webdriver/devtools/v87/page.rb +376 -0
 - data/lib/selenium/webdriver/devtools/v87/performance.rb +65 -0
 - data/lib/selenium/webdriver/devtools/v87/profiler.rb +125 -0
 - data/lib/selenium/webdriver/devtools/v87/runtime.rb +196 -0
 - data/lib/selenium/webdriver/devtools/v87/schema.rb +48 -0
 - data/lib/selenium/webdriver/devtools/v87/security.rb +73 -0
 - data/lib/selenium/webdriver/devtools/v87/service_worker.rb +118 -0
 - data/lib/selenium/webdriver/devtools/v87/storage.rb +97 -0
 - data/lib/selenium/webdriver/devtools/v87/system_info.rb +52 -0
 - data/lib/selenium/webdriver/devtools/v87/target.rb +145 -0
 - data/lib/selenium/webdriver/devtools/v87/tethering.rb +57 -0
 - data/lib/selenium/webdriver/devtools/v87/tracing.rb +78 -0
 - data/lib/selenium/webdriver/devtools/v87/web_audio.rb +72 -0
 - data/lib/selenium/webdriver/devtools/v87/web_authn.rb +102 -0
 - data/lib/selenium/webdriver/edge.rb +2 -2
 - data/lib/selenium/webdriver/edge_chrome/driver.rb +6 -0
 - data/lib/selenium/webdriver/edge_chrome/options.rb +2 -1
 - data/lib/selenium/webdriver/edge_html/driver.rb +1 -2
 - data/lib/selenium/webdriver/firefox/driver.rb +0 -1
 - data/lib/selenium/webdriver/ie/driver.rb +0 -1
 - data/lib/selenium/webdriver/ie/options.rb +1 -1
 - data/lib/selenium/webdriver/remote/bridge.rb +4 -0
 - data/lib/selenium/webdriver/remote/capabilities.rb +4 -2
 - data/lib/selenium/webdriver/remote/driver.rb +0 -1
 - data/lib/selenium/webdriver/remote/http/default.rb +1 -2
 - data/lib/selenium/webdriver/safari.rb +7 -0
 - data/lib/selenium/webdriver/safari/driver.rb +0 -1
 - data/lib/selenium/webdriver/version.rb +1 -1
 - data/selenium-webdriver.gemspec +3 -3
 - metadata +193 -52
 - data/lib/selenium/webdriver/devtools/accessibility.rb +0 -62
 - data/lib/selenium/webdriver/devtools/animation.rb +0 -98
 - data/lib/selenium/webdriver/devtools/application_cache.rb +0 -64
 - data/lib/selenium/webdriver/devtools/background_service.rb +0 -67
 - data/lib/selenium/webdriver/devtools/browser.rb +0 -123
 - data/lib/selenium/webdriver/devtools/cache_storage.rb +0 -73
 - data/lib/selenium/webdriver/devtools/cast.rb +0 -70
 - data/lib/selenium/webdriver/devtools/css.rb +0 -165
 - data/lib/selenium/webdriver/devtools/debugger.rb +0 -229
 - data/lib/selenium/webdriver/devtools/dom.rb +0 -320
 - data/lib/selenium/webdriver/devtools/domdebugger.rb +0 -93
 - data/lib/selenium/webdriver/devtools/domsnapshot.rb +0 -65
 - data/lib/selenium/webdriver/devtools/domstorage.rb +0 -79
 - data/lib/selenium/webdriver/devtools/emulation.rb +0 -180
 - data/lib/selenium/webdriver/devtools/fetch.rb +0 -97
 - data/lib/selenium/webdriver/devtools/headless_experimental.rb +0 -61
 - data/lib/selenium/webdriver/devtools/heap_profiler.rb +0 -107
 - data/lib/selenium/webdriver/devtools/indexed_db.rb +0 -100
 - data/lib/selenium/webdriver/devtools/input.rb +0 -140
 - data/lib/selenium/webdriver/devtools/layer_tree.rb +0 -95
 - data/lib/selenium/webdriver/devtools/memory.rb +0 -86
 - data/lib/selenium/webdriver/devtools/network.rb +0 -228
 - data/lib/selenium/webdriver/devtools/overlay.rb +0 -157
 - data/lib/selenium/webdriver/devtools/page.rb +0 -374
 - data/lib/selenium/webdriver/devtools/profiler.rb +0 -111
 - data/lib/selenium/webdriver/devtools/runtime.rb +0 -193
 - data/lib/selenium/webdriver/devtools/security.rb +0 -71
 - data/lib/selenium/webdriver/devtools/service_worker.rb +0 -116
 - data/lib/selenium/webdriver/devtools/storage.rb +0 -95
 - data/lib/selenium/webdriver/devtools/target.rb +0 -141
 - data/lib/selenium/webdriver/devtools/tracing.rb +0 -76
 - data/lib/selenium/webdriver/devtools/web_audio.rb +0 -70
 - data/lib/selenium/webdriver/devtools/web_authn.rb +0 -94
 - data/lib/selenium/webdriver/support/cdp_client_generator.rb +0 -77
 
| 
         @@ -1,77 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # frozen_string_literal: true
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            # Licensed to the Software Freedom Conservancy (SFC) under one
         
     | 
| 
       4 
     | 
    
         
            -
            # or more contributor license agreements.  See the NOTICE file
         
     | 
| 
       5 
     | 
    
         
            -
            # distributed with this work for additional information
         
     | 
| 
       6 
     | 
    
         
            -
            # regarding copyright ownership.  The SFC licenses this file
         
     | 
| 
       7 
     | 
    
         
            -
            # to you under the Apache License, Version 2.0 (the
         
     | 
| 
       8 
     | 
    
         
            -
            # "License"); you may not use this file except in compliance
         
     | 
| 
       9 
     | 
    
         
            -
            # with the License.  You may obtain a copy of the License at
         
     | 
| 
       10 
     | 
    
         
            -
            #
         
     | 
| 
       11 
     | 
    
         
            -
            #   http://www.apache.org/licenses/LICENSE-2.0
         
     | 
| 
       12 
     | 
    
         
            -
            #
         
     | 
| 
       13 
     | 
    
         
            -
            # Unless required by applicable law or agreed to in writing,
         
     | 
| 
       14 
     | 
    
         
            -
            # software distributed under the License is distributed on an
         
     | 
| 
       15 
     | 
    
         
            -
            # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
         
     | 
| 
       16 
     | 
    
         
            -
            # KIND, either express or implied.  See the License for the
         
     | 
| 
       17 
     | 
    
         
            -
            # specific language governing permissions and limitations
         
     | 
| 
       18 
     | 
    
         
            -
            # under the License.
         
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
            require 'erb'
         
     | 
| 
       21 
     | 
    
         
            -
            require 'json'
         
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
            module Selenium
         
     | 
| 
       24 
     | 
    
         
            -
              module WebDriver
         
     | 
| 
       25 
     | 
    
         
            -
                module Support
         
     | 
| 
       26 
     | 
    
         
            -
                  class CDPClientGenerator
         
     | 
| 
       27 
     | 
    
         
            -
                    DEVTOOLS_DIR = File.expand_path('../devtools', __dir__)
         
     | 
| 
       28 
     | 
    
         
            -
                    BROWSER_PROTOCOL_PATH = File.expand_path('cdp/browser_protocol.json', __dir__)
         
     | 
| 
       29 
     | 
    
         
            -
                    JS_PROTOCOL_PATH = File.expand_path('cdp/js_protocol.json', __dir__)
         
     | 
| 
       30 
     | 
    
         
            -
                    TEMPLATE_PATH = File.expand_path('cdp/domain.rb.erb', __dir__)
         
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
       32 
     | 
    
         
            -
                    RESERVED_KEYWORDS = %w[end].freeze
         
     | 
| 
       33 
     | 
    
         
            -
             
     | 
| 
       34 
     | 
    
         
            -
                    def initialize
         
     | 
| 
       35 
     | 
    
         
            -
                      @browser_protocol = JSON.parse(File.read(BROWSER_PROTOCOL_PATH), symbolize_names: true)
         
     | 
| 
       36 
     | 
    
         
            -
                      @js_protocol = JSON.parse(File.read(JS_PROTOCOL_PATH), symbolize_names: true)
         
     | 
| 
       37 
     | 
    
         
            -
                      @template = ERB.new(File.read(TEMPLATE_PATH))
         
     | 
| 
       38 
     | 
    
         
            -
                    end
         
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
       40 
     | 
    
         
            -
                    def call
         
     | 
| 
       41 
     | 
    
         
            -
                      @browser_protocol[:domains].each(&method(:process_domain))
         
     | 
| 
       42 
     | 
    
         
            -
                      @js_protocol[:domains].each(&method(:process_domain))
         
     | 
| 
       43 
     | 
    
         
            -
                    end
         
     | 
| 
       44 
     | 
    
         
            -
             
     | 
| 
       45 
     | 
    
         
            -
                    def process_domain(domain)
         
     | 
| 
       46 
     | 
    
         
            -
                      result = @template.result_with_hash(domain: domain, h: self)
         
     | 
| 
       47 
     | 
    
         
            -
                      filename = File.join(DEVTOOLS_DIR, "#{snake_case(domain[:domain])}.rb")
         
     | 
| 
       48 
     | 
    
         
            -
                      File.write(filename, remove_empty_lines(result))
         
     | 
| 
       49 
     | 
    
         
            -
                    end
         
     | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
       51 
     | 
    
         
            -
                    def snake_case(string)
         
     | 
| 
       52 
     | 
    
         
            -
                      name = string.gsub(/([a-z])([A-Z])/, '\1_\2').downcase
         
     | 
| 
       53 
     | 
    
         
            -
                      # Certain CDP parameters conflict with Ruby keywords
         
     | 
| 
       54 
     | 
    
         
            -
                      # so we prefix the name with underscore.
         
     | 
| 
       55 
     | 
    
         
            -
                      name = "_#{name}" if RESERVED_KEYWORDS.include?(name)
         
     | 
| 
       56 
     | 
    
         
            -
             
     | 
| 
       57 
     | 
    
         
            -
                      name
         
     | 
| 
       58 
     | 
    
         
            -
                    end
         
     | 
| 
       59 
     | 
    
         
            -
             
     | 
| 
       60 
     | 
    
         
            -
                    def kwargs(parameters)
         
     | 
| 
       61 
     | 
    
         
            -
                      parameters = parameters.map do |parameter|
         
     | 
| 
       62 
     | 
    
         
            -
                        if parameter[:optional]
         
     | 
| 
       63 
     | 
    
         
            -
                          "#{snake_case(parameter[:name])}: nil"
         
     | 
| 
       64 
     | 
    
         
            -
                        else
         
     | 
| 
       65 
     | 
    
         
            -
                          "#{snake_case(parameter[:name])}:"
         
     | 
| 
       66 
     | 
    
         
            -
                        end
         
     | 
| 
       67 
     | 
    
         
            -
                      end
         
     | 
| 
       68 
     | 
    
         
            -
                      parameters.join(', ')
         
     | 
| 
       69 
     | 
    
         
            -
                    end
         
     | 
| 
       70 
     | 
    
         
            -
             
     | 
| 
       71 
     | 
    
         
            -
                    def remove_empty_lines(string)
         
     | 
| 
       72 
     | 
    
         
            -
                      string.split("\n").reject { |l| l =~ /^\s+$/ }.join("\n")
         
     | 
| 
       73 
     | 
    
         
            -
                    end
         
     | 
| 
       74 
     | 
    
         
            -
                  end
         
     | 
| 
       75 
     | 
    
         
            -
                end
         
     | 
| 
       76 
     | 
    
         
            -
              end
         
     | 
| 
       77 
     | 
    
         
            -
            end
         
     |