# File lib/selenium/webdriver/safari/server.rb, line 30 def receive @frame ||= WebSocket::Frame::Incoming::Server.new(:version => @version) until msg = @frame.next end_time = Time.now + @command_timeout begin data = @ws.read_nonblock(1) rescue Errno::EWOULDBLOCK, Errno::EAGAIN now = Time.now if now >= end_time raise Error::TimeOutError, "timed out waiting for Safari to respond" end IO.select([@ws], nil, nil, end_time - now) retry end @frame << data end puts "<<< #{msg}" if $DEBUG WebDriver.json_load msg.to_s end