The Connection class is fairly large and combines the responsibilities
of booting the server and connecting to it.
This extracts a class to encapsulate booting a server. It also provides
a hook for injecting your own server.
We're not completely compatible with the release, as Node#send_keys
implementation is missing. However, we're going to release this so that
people can get started with Capybara 2.5 today.
Because:
* SocketDebugger is less useful than debug logging in the driver
* SocketDebugger has been broken for several releases and is unused
* The socket_class option was only used for injecting SocketDebugger
This commit:
* Removes the SocketDebugger class
* Deprecates the socket_class option
* This behavior changed in Capybara 2.4.
* Previously we would focus and send keypress events to readonly
elements. Now readonly elements are ignored, and a warning is emitted
by Capybara.
This adds support for the full Capybara 2.3.0 API. There are two known
incompatibilities:
* Selenium supports outerWidth and outerHeight, which we cannot, because we
dont' have an actual OS window.
* Selenium raises errors after interacting with a closed window. We focus the
next available window after closing.
This commit adds the following:
* Implement Driver#close_window
* Implement Driver#current_window_handle
* Implement Driver#maximize_window
* Implement Driver#open_new_window
* Implement Driver#no_such_window_error
* Implement Driver#resize_window_to
* Implement Driver#switch_to_window
* Implement Driver#window_size
* Implement Driver#go_back
* Implement Driver#go_forward
* Support change events when clearing a text input
* Support setting contentEditable elements
* Support window.close() in JavaScript
* Don't return text from hidden elements
* Skip Capybara specs which use outerWidth, outerHeight
* Don't use Qt object ownership to manage windows
Forwarding stderr via 2>&1 causes an additional child process to be
spawned. Killing that process does not kill webkit_server.
JavaScipt console messages and alerts are now written to the logger
instead of directly to stdout.
This allows console.log() messages to be visible, and prevents
large numbers of console.log() calls from filling up webkit_server's pipe
which would block the process.