# File lib/selenium/client/base.rb, line 83
      def start_new_browser_session(options={})
        start_args = [@browser_string, @browser_url, @extension_js]

        if driver = options.delete(:driver)
          expected_browser_string = "*webdriver"
          unless @browser_string == expected_browser_string
            raise ArgumentError, "can't use :driver unless the browser string is #{expected_browser_string.inspect} (got #{@browser_string.inspect})"
          end

          sid = driver.capabilities['webdriver.remote.sessionid']
          sid or raise ArgumentError, "This driver can not be wrapped in the RC API."

          start_args << "webdriver.remote.sessionid=#{sid}"
        end

        start_args << options.collect {|key,value| "#{key.to_s}=#{value.to_s}"}.sort.join(";")

        @session_id = string_command "getNewBrowserSession", start_args
        # Consistent timeout on the remote control and driver side.
        # Intuitive and this is what you want 90% of the time
        self.remote_control_timeout_in_seconds = @default_timeout_in_seconds
        self.highlight_located_element = true if highlight_located_element_by_default
      end