# File lib/selenium/webdriver/safari/server.rb, line 111
        def process_handshake
          @ws = @server.accept
          hs  = WebSocket::Handshake::Server.new

          req = ''
          until hs.finished?
            data = @ws.getc || next

            req << data.chr
            hs << data
          end

          unless hs.valid?
            if req.include? "favicon.ico"
              @ws.close
              process_handshake
              return
            else
              raise Error::WebDriverError, "#{hs.error}: #{req}"
            end
          end

          @ws.write(hs.to_s)
          @ws.flush

          puts "handshake complete, v#{hs.version}" if $DEBUG
          @server.close
          @version = hs.version
        end