Method: Ferrum::Context#add_target

Defined in:
lib/ferrum/context.rb

#add_target(params:, session_id: nil) ⇒ Object



60
61
62
63
64
65
66
67
68
69
70
# File 'lib/ferrum/context.rb', line 60

def add_target(params:, session_id: nil)
  new_target = Target.new(@client, session_id, params)
  # `put_if_absent` returns nil if added a new value or existing if there was one already
  target = @targets.put_if_absent(new_target.id, new_target) || new_target
  @default_target ||= target

  new_pending = Concurrent::IVar.new
  pending = @pendings.put_if_absent(target.id, new_pending) || new_pending
  pending.try_set(true)
  true
end