Skip to content

0.12

Compare
Choose a tag to compare
@route route released this 13 Sep 08:03
· 118 commits to main since this release

Added

  • Alias Ferrum::Frame#content= to Ferrum::Frame#set_content
  • Alias Ferrum::Node#propery to Ferrum::Node#[]
  • Implement Ferrum::Network#blacklist= and Ferrum::Network#whitelist=
  • Alias Ferrum::Network#blocklist= to Ferrum::Network#blacklist=
  • Alias Ferrum::Network#allowlist= to Ferrum::Network#whitelist=
  • Alias Ferrum::Page#go to Ferrum::Page#go_to
  • Ferrum::Browser#create_page accepts now new_context: true which can create a page in incognito context, and yields
    a block with this page, after which the page is closed.
  • Ferrum::Browser supports new option :proxy https://github.com/rubycdp/ferrum#proxy
  • Ferrum::Network::Response#params attr_reader added
  • Ferrum::Node
    • #selected checks selected options. Returns an array of Ferrum::Node that's selected.
    • #select selects options by passed attribute, default: :value.
    • #computed_style returns hash of computed styles
  • Ferrum::JavaScriptError#stack_trace attr_reader
  • Windows support
  • Show warning and accept dialog if no handler given
  • Ferrum::Cookies#set ability to set cookie using Ferrum::Cookies::Cookie object
  • Ferrum::Network#emulate_network_conditions activates emulation of network conditions
  • Ferrum::Network#offline_mode puts browser into offline mode
  • Ferrum::Page#tracing - instance of Ferrum::Page::Tracing for trace capabilities.
  • Ferrum::Page::Tracing#record(&block) start/stop tracing for steps provided in passed block

Changed

  • Use Concurrent::MVar as execution_id in Ferrum::Frame
  • Min Ruby version is 2.6 and 3.0 is supported
  • Ferrum::Page#bypass_csp accepts hash as argument enabled: true by default
  • Ferrum::Context#has_target? -> Ferrum::Context#target?
  • We now start looking for Chrome first instead of Chromium, the order for checking binaries has changed
  • Multiple methods are moved into Utils:
    • Ferrum.with_attempts -> Ferrum::Utils::Attempt.with_retry
    • Ferrum.started -> Ferrum::Utils::ElapsedTime.start
    • Ferrum.elapsed_time -> Ferrum::Utils::ElapsedTime.elapsed_time
    • Ferrum.monotonic_time -> Ferrum::Utils::ElapsedTime.monotonic_time
    • Ferrum.timeout? -> Ferrum::Utils::ElapsedTime.timeout?
    • Ferrum.windows? -> Ferrum::Utils::Platform.windows?
    • Ferrum.mac? -> Ferrum::Utils::Platform.mac?
    • Ferrum.mri? -> Ferrum::Utils::Platform.mri?

Fixed

  • Ferrum::Node#selected, Ferrum::Node#select to work in frame scope