class Selenium::WebDriver::Remote::BiDiBridge

def browsing_context

def browsing_context
  @browsing_context ||= WebDriver::BiDi::BrowsingContext.new(self)
end

def close

def close
  execute(:close_window).tap { |handles| bidi.close if handles.empty? }
end

def create_session(capabilities)

def create_session(capabilities)
  super
  socket_url = @capabilities[:web_socket_url]
  @bidi = Selenium::WebDriver::BiDi.new(url: socket_url)
end

def get(url)

def get(url)
  browsing_context.navigate(url)
end

def go_back

def go_back
  browsing_context.traverse_history(-1)
end

def go_forward

def go_forward
  browsing_context.traverse_history(1)
end

def quit

def quit
  super
ensure
  bidi.close
end

def refresh

def refresh
  browsing_context.reload
end