Identify Chrome on iOS and Android
Prevent race during IE6 navigation delay.

Additionally replace use of beforeunload event with unload.

If a reconnection occurs after IE6 page navigation is
scheduled, the moving bit would be reset which would trigger
an unload ping when the page moves to the next test.

Instead of using flags, attach the unload handler using
browser event APIs and detach the handler before a controlled
move to the next test.
Accept YETI_NO_TIMEOUT env to halt agent reap.

The presence of YETI_NO_TIMEOUT will cause the reap interval
timer to not be set, preventing disconnects of browsers
caused by no activity.
Better debug logs in SimpleEvents, accept log fn.

Accept a function for the debug argument in SimpleEvents'
constructor, which will handle calls made to SimpleEvents#debug.

Provide better log messages that use one argument, if possible.
This makes logging easier on older browsers that only accept
one argument to console.log.
Provide SimpleEvents debug messages to the Hub.

Enables Yeti's loglevel debug to include SimpleEvents
debug messages.
Provide Agent debug messages to the Hub.

Enables Yeti's loglevel debug to include Hub
debug messages.

Emit a message when unloading an agent.
Provide module events, provides extended EE2.

This should have been checked in with previous commit
83e72e9d46f7a7c2d2dad0116fe725e686d11c6f.

The YetiEventEmitter2, provided as EventEmitter2, provides
pipeLog to pipe log message events to other EventEmitters.
Remove old Socket.io references from public API.

`log.**.socketio` event on Hub was renamed to `log.**.websocket`.
Remove Node.js 0.7 from Travis CI testing.
Provide query CLI option to the server.

The query option specifies a query-string parameter
that will be added during testing. This is used
to trigger YUI Loader to load instrumented files
for code coverage, e.g. with filter=coverage.

Note: router support for the query string does not exist yet,
so files requested will contain the query part of the URL
as the filename.
Refactor Batch-related APIs to use options object.

Instead of changing several argument lists when adding
a new parameter to the Batch, use an object with expandable
properties. These properties are defined in YUIDoc code
comments above `Client.createBatch()`.

Introduce `util.shallowClone()` on the new `util` module,
which is an extension of the built-in `util`. When modifying
the options object argument, copy the object first using
`shallowClone` to prevent breaking API users, including
our own tests.
Fix linter error for use of `+` operator.
Remove query part of req.url for test requests.

The query part should not be treated as a part of the filename.
YUI Test Coverage support. Display line coverage.

If tested code was instrumented with YUI Test Coverage,
coverage data will be passed along with test results
in the agentResults event.

The `./go yui` script uses the recently-added `--query`
command-line option to run YUI's tests with `filter=coverage`
in the query string, which triggers YUI Loader to load
instrumented files.

A basic line coverage percentage is displayed during testing
on the command line when coverage data is available.
Reset heartbeat timer when test files are served.

The heartbeat timer is only reset when YUI Test reports
a test pass or fail event. If a test fails to run any YUI Tests
before the heartbeat timeout of 45 seconds, then future tests
will immediately hit this timeout because the timeout is not
cleared when a new test is requested.

This fix causes the timer to reset when test-related files
are served, which includes requesting a new test.

Credit to John Traver <jtraver@yahoo-inc.com> for
reporting this issue.
UA recognition for Windows 8 & Tablet PC.
Print test results on stdout instead of stderr.

Allows capturing test results to a file.
Rapid status line changes occur on stderr instead.
Extend doc for agentError and agentScriptError.

Define event payload's `details` object properties.
Set timeouts per batch, enforce timeouts.

Accept a `timeout` option in createBatch
and a `--timeout` option on the command line
to specify an agent timeout in seconds.

No longer use a `waiting` flag for agents on the
capture page. Instead, the capture page now checks
in with the Hub every 10 seconds which resets the
server-side agent timeout.

Change the server-side agent timeout to 45 seconds,
up from 3.6 seconds.
Display stack trace when testing fails.