selenium-webdriver 3.0.3 → 3.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGES +13 -1
- data/lib/selenium/webdriver/common/platform.rb +1 -1
- data/lib/selenium/webdriver/firefox/extension/webdriver.xpi +0 -0
- data/lib/selenium/webdriver/firefox/launcher.rb +0 -4
- data/lib/selenium/webdriver/firefox/profile.rb +7 -1
- data/lib/selenium/webdriver/firefox/profiles_ini.rb +2 -3
- data/lib/selenium/webdriver/firefox/w3c_bridge.rb +7 -0
- data/lib/selenium/webdriver/remote/bridge.rb +1 -3
- data/lib/selenium/webdriver/remote/http/common.rb +4 -0
- data/lib/selenium/webdriver/remote/http/curb.rb +5 -2
- data/lib/selenium/webdriver/remote/http/default.rb +25 -4
- data/lib/selenium/webdriver/remote/http/persistent.rb +6 -1
- data/lib/selenium/webdriver/remote/w3c_capabilities.rb +1 -1
- data/selenium-webdriver.gemspec +1 -1
- metadata +2 -2
    
        data/CHANGES
    CHANGED
    
    | @@ -1,3 +1,15 @@ | |
| 1 | 
            +
            3.0.4 (2016-12-21)
         | 
| 2 | 
            +
            ===================
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            Firefox:
         | 
| 5 | 
            +
              * Implement profile support via geckodriver (#2933 thanks lmtierney)
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            Ruby:
         | 
| 8 | 
            +
              * Fix bug preventing use of Curb client (#2951 thanks clarkenciel)
         | 
| 9 | 
            +
              * Support Net::HTTP::Persistent version 3 (#3219 thanks Pete Johns)
         | 
| 10 | 
            +
              * Allow Net::HTTP::Default to set open_timout and read_timeout independently (#3264 thanks richseviora)
         | 
| 11 | 
            +
              * Change default for Net::HTTP::Default#open_timeout to facilitate debuggers  (#3264 thanks richseviora)
         | 
| 12 | 
            +
             | 
| 1 13 | 
             
            3.0.3 (2016-11-26)
         | 
| 2 14 | 
             
            ===================
         | 
| 3 15 |  | 
| @@ -134,7 +146,7 @@ Firefox: | |
| 134 146 | 
             
            2.49.0 (2016-01-13)
         | 
| 135 147 | 
             
            ===================
         | 
| 136 148 |  | 
| 137 | 
            -
            Ruby:
         | 
| 149 | 
            +
            Ruby:g
         | 
| 138 150 | 
             
              * support for SessionNotCreatedError (thanks Alexander Bayandin)
         | 
| 139 151 |  | 
| 140 152 | 
             
            Safari:
         | 
| @@ -150,7 +150,7 @@ module Selenium | |
| 150 150 | 
             
                      paths.each do |path|
         | 
| 151 151 | 
             
                        full_path = File.join(path, binary_name)
         | 
| 152 152 | 
             
                        full_path.tr!('\\', '/') if windows?
         | 
| 153 | 
            -
                        exe = Dir.glob(full_path). | 
| 153 | 
            +
                        exe = Dir.glob(full_path).find { |f| File.executable?(f) }
         | 
| 154 154 | 
             
                        return exe if exe
         | 
| 155 155 | 
             
                      end
         | 
| 156 156 | 
             
                    end
         | 
| Binary file | 
| @@ -92,10 +92,6 @@ module Selenium | |
| 92 92 | 
             
                    def fetch_profile
         | 
| 93 93 | 
             
                      if @profile_name
         | 
| 94 94 | 
             
                        @profile = Profile.from_name @profile_name
         | 
| 95 | 
            -
             | 
| 96 | 
            -
                        unless @profile
         | 
| 97 | 
            -
                          raise Error::WebDriverError, "unable to find profile named: #{@profile_name.inspect}"
         | 
| 98 | 
            -
                        end
         | 
| 99 95 | 
             
                      else
         | 
| 100 96 | 
             
                        @profile = Profile.new
         | 
| 101 97 | 
             
                      end
         | 
| @@ -42,7 +42,9 @@ module Selenium | |
| 42 42 | 
             
                      end
         | 
| 43 43 |  | 
| 44 44 | 
             
                      def from_name(name)
         | 
| 45 | 
            -
                        ini[name]
         | 
| 45 | 
            +
                        profile = ini[name]
         | 
| 46 | 
            +
                        return profile if profile
         | 
| 47 | 
            +
                        raise Error::WebDriverError, "unable to find profile named: #{name.inspect}"
         | 
| 46 48 | 
             
                      end
         | 
| 47 49 |  | 
| 48 50 | 
             
                      def default_preferences
         | 
| @@ -193,6 +195,10 @@ module Selenium | |
| 193 195 | 
             
                      proxy
         | 
| 194 196 | 
             
                    end
         | 
| 195 197 |  | 
| 198 | 
            +
                    def encoded
         | 
| 199 | 
            +
                      Zipper.zip(layout_on_disk)
         | 
| 200 | 
            +
                    end
         | 
| 201 | 
            +
             | 
| 196 202 | 
             
                    private
         | 
| 197 203 |  | 
| 198 204 | 
             
                    def set_manual_proxy_preference(key, value)
         | 
| @@ -57,11 +57,10 @@ module Selenium | |
| 57 57 | 
             
                          is_relative = Regexp.last_match(1).strip == '1'
         | 
| 58 58 | 
             
                        when /^Path=(.+)$/
         | 
| 59 59 | 
             
                          path = Regexp.last_match(1).strip
         | 
| 60 | 
            +
                          p = path_for(name, is_relative, path)
         | 
| 61 | 
            +
                          @profile_paths[name] = p if p
         | 
| 60 62 | 
             
                        end
         | 
| 61 63 | 
             
                      end
         | 
| 62 | 
            -
             | 
| 63 | 
            -
                      p = path_for(name, is_relative, path)
         | 
| 64 | 
            -
                      @profile_paths[name] = p if p
         | 
| 65 64 | 
             
                    end
         | 
| 66 65 |  | 
| 67 66 | 
             
                    def path_for(name, is_relative, path)
         | 
| @@ -59,6 +59,13 @@ module Selenium | |
| 59 59 | 
             
                      caps = opts.delete(:desired_capabilities) || Remote::W3CCapabilities.firefox
         | 
| 60 60 | 
             
                      firefox_options_caps = caps[:firefox_options] || {}
         | 
| 61 61 | 
             
                      caps[:firefox_options] = firefox_options_caps.merge(opts[:firefox_options] || {})
         | 
| 62 | 
            +
                      if opts.key?(:profile)
         | 
| 63 | 
            +
                        profile = opts.delete(:profile)
         | 
| 64 | 
            +
                        unless profile.is_a?(Profile)
         | 
| 65 | 
            +
                          profile = Profile.from_name(profile)
         | 
| 66 | 
            +
                        end
         | 
| 67 | 
            +
                        caps[:firefox_options][:profile] = profile.encoded
         | 
| 68 | 
            +
                      end
         | 
| 62 69 |  | 
| 63 70 | 
             
                      Binary.path = caps[:firefox_options][:binary] if caps[:firefox_options].key?(:binary)
         | 
| 64 71 | 
             
                      caps
         | 
| @@ -22,8 +22,6 @@ require 'curb' | |
| 22 22 | 
             
            module Selenium
         | 
| 23 23 | 
             
              module WebDriver
         | 
| 24 24 | 
             
                module Remote
         | 
| 25 | 
            -
                  # added for rescue
         | 
| 26 | 
            -
                  Bridge::QUIT_ERRORS << Curl::Err::RecvError
         | 
| 27 25 |  | 
| 28 26 | 
             
                  module Http
         | 
| 29 27 | 
             
                    #
         | 
| @@ -40,6 +38,11 @@ module Selenium | |
| 40 38 | 
             
                    #
         | 
| 41 39 |  | 
| 42 40 | 
             
                    class Curb < Common
         | 
| 41 | 
            +
             | 
| 42 | 
            +
                      def quit_errors
         | 
| 43 | 
            +
                        [Curl::Err::RecvError] + super
         | 
| 44 | 
            +
                      end
         | 
| 45 | 
            +
             | 
| 43 46 | 
             
                      private
         | 
| 44 47 |  | 
| 45 48 | 
             
                      def request(verb, url, headers, payload)
         | 
| @@ -28,6 +28,28 @@ module Selenium | |
| 28 28 | 
             
                    class Default < Common
         | 
| 29 29 | 
             
                      attr_accessor :proxy
         | 
| 30 30 |  | 
| 31 | 
            +
                      attr_accessor :open_timeout
         | 
| 32 | 
            +
                      attr_accessor :read_timeout
         | 
| 33 | 
            +
             | 
| 34 | 
            +
                      # Initializes object.
         | 
| 35 | 
            +
                      # Warning: Setting {#open_timeout} to non-nil values will cause a separate thread to spawn.
         | 
| 36 | 
            +
                      # Debuggers that freeze the process will not be able to evaluate any operations if that happens.
         | 
| 37 | 
            +
                      # @param [Numeric] open_timeout - Open timeout to apply to HTTP client.
         | 
| 38 | 
            +
                      # @param [Numeric] read_timeout - Read timeout (seconds) to apply to HTTP client.
         | 
| 39 | 
            +
                      def initialize(open_timeout: nil, read_timeout: nil)
         | 
| 40 | 
            +
                        @open_timeout = open_timeout
         | 
| 41 | 
            +
                        @read_timeout = read_timeout
         | 
| 42 | 
            +
                      end
         | 
| 43 | 
            +
             | 
| 44 | 
            +
                      # Maintaining backward compatibility.
         | 
| 45 | 
            +
                      # @param [Numeric] value - Timeout in seconds to apply to both open timeout and read timeouts.
         | 
| 46 | 
            +
                      # @deprecated Please set the specific desired timeout {#read_timeout} or {#open_timeout} directly.
         | 
| 47 | 
            +
                      def timeout=(value)
         | 
| 48 | 
            +
                        Kernel.warn 'Selenium::WebDriver::Remote::Http::Default#timeout= is deprecated. Use #read_timeout= or #open_timeout= instead'
         | 
| 49 | 
            +
                        self.open_timeout = value
         | 
| 50 | 
            +
                        self.read_timeout = value
         | 
| 51 | 
            +
                      end
         | 
| 52 | 
            +
             | 
| 31 53 | 
             
                      private
         | 
| 32 54 |  | 
| 33 55 | 
             
                      def http
         | 
| @@ -38,10 +60,9 @@ module Selenium | |
| 38 60 | 
             
                          http.verify_mode = OpenSSL::SSL::VERIFY_NONE
         | 
| 39 61 | 
             
                        end
         | 
| 40 62 |  | 
| 41 | 
            -
                         | 
| 42 | 
            -
             | 
| 43 | 
            -
             | 
| 44 | 
            -
                        end
         | 
| 63 | 
            +
                        # Defaulting open_timeout to nil to be consistent with Ruby 2.2 and earlier.
         | 
| 64 | 
            +
                        http.open_timeout = self.open_timeout
         | 
| 65 | 
            +
                        http.read_timeout = self.read_timeout if self.read_timeout
         | 
| 45 66 |  | 
| 46 67 | 
             
                        http
         | 
| 47 68 | 
             
                        )
         | 
| @@ -42,7 +42,12 @@ module Selenium | |
| 42 42 | 
             
                          proxy = URI.parse(url)
         | 
| 43 43 | 
             
                        end
         | 
| 44 44 |  | 
| 45 | 
            -
                        Net::HTTP::Persistent | 
| 45 | 
            +
                        if Net::HTTP::Persistent::VERSION >= '3'
         | 
| 46 | 
            +
                          Net::HTTP::Persistent.new name: 'webdriver', proxy: proxy
         | 
| 47 | 
            +
                        else
         | 
| 48 | 
            +
                          warn 'Support for this version of net-http-persistent is deprecated. Please upgrade.'
         | 
| 49 | 
            +
                          Net::HTTP::Persistent.new 'webdriver', proxy
         | 
| 50 | 
            +
                        end
         | 
| 46 51 | 
             
                      end
         | 
| 47 52 |  | 
| 48 53 | 
             
                      def response_for(request)
         | 
| @@ -79,7 +79,7 @@ module Selenium | |
| 79 79 | 
             
                        opts[:browser_version] = opts.delete(:version) if opts.key?(:version)
         | 
| 80 80 | 
             
                        opts[:platform_name] = opts.delete(:platform) if opts.key?(:platform)
         | 
| 81 81 |  | 
| 82 | 
            -
                        new({browser_name: 'firefox'}.merge(opts))
         | 
| 82 | 
            +
                        new({browser_name: 'firefox', marionette: true}.merge(opts))
         | 
| 83 83 | 
             
                      end
         | 
| 84 84 |  | 
| 85 85 | 
             
                      alias_method :ff, :firefox
         | 
    
        data/selenium-webdriver.gemspec
    CHANGED
    
    | @@ -5,7 +5,7 @@ raise "cwd must be #{root} when reading gemspec" if root != Dir.pwd | |
| 5 5 |  | 
| 6 6 | 
             
            Gem::Specification.new do |s|
         | 
| 7 7 | 
             
              s.name = 'selenium-webdriver'
         | 
| 8 | 
            -
              s.version = '3.0. | 
| 8 | 
            +
              s.version = '3.0.4'
         | 
| 9 9 |  | 
| 10 10 | 
             
              s.authors = ['Alex Rodionov', 'Titus Fortner']
         | 
| 11 11 | 
             
              s.email = ['p0deje@gmail.com', 'titusfortner@gmail.com']
         | 
    
        metadata
    CHANGED
    
    | @@ -2,7 +2,7 @@ | |
| 2 2 | 
             
            name: selenium-webdriver
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 4 4 | 
             
              prerelease: 
         | 
| 5 | 
            -
              version: 3.0. | 
| 5 | 
            +
              version: 3.0.4
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors: 
         | 
| 8 8 | 
             
              - Alex Rodionov
         | 
| @@ -11,7 +11,7 @@ autorequire: | |
| 11 11 | 
             
            bindir: bin
         | 
| 12 12 | 
             
            cert_chain: []
         | 
| 13 13 |  | 
| 14 | 
            -
            date: 2016- | 
| 14 | 
            +
            date: 2016-12-21 00:00:00 -06:00
         | 
| 15 15 | 
             
            default_executable: 
         | 
| 16 16 | 
             
            dependencies: 
         | 
| 17 17 | 
             
              - !ruby/object:Gem::Dependency 
         |