selenium-webdriver 2.27.2 → 2.29.0

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES CHANGED
@@ -1,3 +1,17 @@
1
+ 2.29.0 (2013-01-21)
2
+ ===================
3
+
4
+ Firefox:
5
+ * Firefox 18 support (for native events).
6
+ IE:
7
+ * New 'requireWindowFocus' desired capability.
8
+ * IE view port calculation take scroll bars into account (#3602)
9
+ Safari:
10
+ * Replace 'libwebsocket' with 'websocket' gem. This should ensure
11
+ support with recent Safari.
12
+ Other:
13
+ * Fix Cygwin issue in PortProber/Firefox::Bianry (#4963)
14
+
1
15
  2.27.2 (2012-12-11)
2
16
  ===================
3
17
 
@@ -19,12 +19,15 @@ module Selenium
19
19
  port
20
20
  end
21
21
 
22
+ IGNORED_ERRORS = [Errno::EADDRNOTAVAIL]
23
+ IGNORED_ERRORS << Errno::EBADF if Platform.cygwin?
24
+
22
25
  def self.free?(port)
23
26
  Platform.interfaces.each do |host|
24
27
  begin
25
28
  TCPServer.new(host, port).close
26
- rescue Errno::EADDRNOTAVAIL
27
- $stderr.puts "port prober could not bind to #{host}:#{port}" if $DEBUG
29
+ rescue *IGNORED_ERRORS => ex
30
+ $stderr.puts "port prober could not bind to #{host}:#{port} (#{ex.message})" if $DEBUG
28
31
  # ignored - some machines appear unable to bind to some of their interfaces
29
32
  end
30
33
  end
@@ -15,7 +15,11 @@ module Selenium
15
15
  QUIT_TIMEOUT = 5
16
16
 
17
17
  def start_with(profile, profile_path, *args)
18
- profile_path = profile_path.gsub("/", "\\") if Platform.windows?
18
+ if Platform.cygwin?
19
+ profile_path = Platform.cygwin_path(profile_path, :windows => true)
20
+ elsif Platform.windows?
21
+ profile_path = profile_path.gsub("/", "\\")
22
+ end
19
23
 
20
24
  ENV['XRE_CONSOLE_LOG'] = profile.log_file if profile.log_file
21
25
  ENV['XRE_PROFILE_PATH'] = profile_path
@@ -1,4 +1,4 @@
1
- require 'libwebsocket'
1
+ require 'websocket'
2
2
 
3
3
  module Selenium
4
4
  module WebDriver
@@ -15,8 +15,8 @@ module Selenium
15
15
  @server = Server.new(port, timeout)
16
16
  @server.start
17
17
 
18
- @browser = Browser.new
19
- @browser.start(prepare_connect_file)
18
+ @safari = Browser.new
19
+ @safari.start(prepare_connect_file)
20
20
 
21
21
  @server.wait_for_connection
22
22
 
@@ -27,7 +27,7 @@ module Selenium
27
27
  super
28
28
 
29
29
  @server.stop
30
- @browser.stop
30
+ @safari.stop
31
31
  end
32
32
 
33
33
  def driver_extensions
@@ -6,7 +6,6 @@ module Selenium
6
6
  def initialize(port, command_timeout)
7
7
  @port = port
8
8
  @command_timeout = command_timeout
9
- @frame = LibWebSocket::Frame.new
10
9
  end
11
10
 
12
11
  def start
@@ -22,13 +21,15 @@ module Selenium
22
21
  json = WebDriver.json_dump(command)
23
22
  puts ">>> #{json}" if $DEBUG
24
23
 
25
- frame = LibWebSocket::Frame.new(json).to_s
24
+ frame = WebSocket::Frame::Outgoing::Server.new(:version => @version, :data => json, :type => :text)
26
25
 
27
- @ws.write frame
26
+ @ws.write frame.to_s
28
27
  @ws.flush
29
28
  end
30
29
 
31
30
  def receive
31
+ @frame ||= WebSocket::Frame::Incoming::Server.new(:version => @version)
32
+
32
33
  until msg = @frame.next
33
34
  end_time = Time.now + @command_timeout
34
35
 
@@ -44,12 +45,12 @@ module Selenium
44
45
  retry
45
46
  end
46
47
 
47
- @frame.append(data)
48
+ @frame << data
48
49
  end
49
50
 
50
51
  puts "<<< #{msg}" if $DEBUG
51
52
 
52
- WebDriver.json_load msg
53
+ WebDriver.json_load msg.to_s
53
54
  end
54
55
 
55
56
  def ws_uri
@@ -107,29 +108,32 @@ window.onload = function() {
107
108
 
108
109
  def process_handshake
109
110
  @ws = @server.accept
110
- hs = LibWebSocket::OpeningHandshake::Server.new
111
+ hs = WebSocket::Handshake::Server.new
111
112
 
112
113
  req = ''
113
- until hs.done?
114
+ until hs.finished?
114
115
  data = @ws.getc || next
116
+
115
117
  req << data.chr
118
+ hs << data
119
+ end
116
120
 
117
- unless hs.parse(data.chr)
118
- if req.include? "favicon.ico"
119
- @ws.close
120
- process_handshake
121
- return
122
- else
123
- raise Error::WebDriverError, "#{hs.error}: #{req}"
124
- end
121
+ unless hs.valid?
122
+ if req.include? "favicon.ico"
123
+ @ws.close
124
+ process_handshake
125
+ return
126
+ else
127
+ raise Error::WebDriverError, "#{hs.error}: #{req}"
125
128
  end
126
129
  end
127
130
 
128
131
  @ws.write(hs.to_s)
129
132
  @ws.flush
130
133
 
131
- puts "handshake complete" if $DEBUG
134
+ puts "handshake complete, v#{hs.version}" if $DEBUG
132
135
  @server.close
136
+ @version = hs.version
133
137
  end
134
138
  end
135
139
 
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: selenium-webdriver
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 2.27.2
5
+ version: 2.29.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Jari Bakken
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2012-12-11 00:00:00 +01:00
13
+ date: 2013-01-21 00:00:00 +01:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -47,14 +47,14 @@ dependencies:
47
47
  type: :runtime
48
48
  version_requirements: *id003
49
49
  - !ruby/object:Gem::Dependency
50
- name: libwebsocket
50
+ name: websocket
51
51
  prerelease: false
52
52
  requirement: &id004 !ruby/object:Gem::Requirement
53
53
  none: false
54
54
  requirements:
55
55
  - - ~>
56
56
  - !ruby/object:Gem::Version
57
- version: 0.1.3
57
+ version: 1.0.4
58
58
  type: :runtime
59
59
  version_requirements: *id004
60
60
  - !ruby/object:Gem::Dependency