mozprofile gives us an error and we can forward it to the user so
we know what the underlying reason is for not being able to write
the Firefox profile.
The patch c1df1c2e46f6 contained a faulty rebase where the coercion
of logging::max_level() changed from the Pref type to a string.
The string representation of geckodriver::logging::Level is given
in upper-case, e.g. "INFO", and the Pref representation is given as
"Info" to be compatible with managing the log level from Log.jsm in Gecko.
This inadvertently caused
https://github.com/web-platform-tests/wpt/issues/12166 to reappear
in almost the same way: before the problem was that Marionette’s
frame script always included all log level entries. This was fixed
with https://bugzilla.mozilla.org/show_bug.cgi?1482829, but then
https://bugzilla.mozilla.org/show_bug.cgi?id=1396821 broke it so
that log entries also from chrome space appeared.
Depends on D7077
Differential Revision: https://phabricator.services.mozilla.com/D7078
--HG--
extra : moz-landing-system : lando
mozprofile gives us an error and we can forward it to the user so
we know what the underlying reason is for not being able to write
the Firefox profile.
Depends on D7075
Differential Revision: https://phabricator.services.mozilla.com/D7076
--HG--
extra : moz-landing-system : lando
Done automatically by running MarionetteHandler through rustfmt(1).
Depends on D7074
Differential Revision: https://phabricator.services.mozilla.com/D7075
--HG--
extra : moz-landing-system : lando
PrefValue implements From<&'static str>, and this makes the calling
code slightly nicer to look at.
Differential Revision: https://phabricator.services.mozilla.com/D7074
--HG--
extra : moz-landing-system : lando
With the Serde refactoring we have made this flag mandatory. This patch
reverts that change, and allows it to be skipped.
Differential Revision: https://phabricator.services.mozilla.com/D7050
--HG--
extra : moz-landing-system : lando
Removes the non-standard /session/{session id}/element/{element
id}/tap endpoint command from geckodriver.
Differential Revision: https://phabricator.services.mozilla.com/D6879
--HG--
extra : moz-landing-system : lando
Provides almost the same functionality, but without convoluted
functional style. This will allow us to provide VCS specific
instructions in the future.
This sets HGPLAIN and GIT_CONFIG_NOSYSTEM to bypass local user
version control system configuration when the build script is invoked.
If not set, the version control system's output could be influenced
by configuration settings. It was for example discovered that if
you have "hg log" default to --follow, this slows down the Gecko
build significantly since it prints the node for every single commit.
According to hg(1) it is highly recommended for programs invoking
hg to set this.
This moves large parts of the geckodriver README to
firefox-source-docs.m.o so that we avoid duplicating content.
This move also makes sense in the context that we will not continue
to release from GitHub for ever.
By default the stream read timeout is set to None, which means if
geckodriver successfully connects to a port, which doesn't send any
data, it waits forever.
Given that handshake data should be received immediately reduce the
read timeout on supported platforms to 10s. This would still allow
slower builds (eg. ASAN) to send the Marionette handshake.
--HG--
extra : rebase_source : be351c9d15b950c0e493e5a1809296764db75c20
If the handshake by creating a Marionette connection fails, the
browser process has to be killed.
Also geckodriver has to check for both application type,
and Marionette protocol having valid values.
--HG--
extra : rebase_source : 80fbc37e3fc13c4492dbdfe70e79084c3c54bac8
Whilst it is logically correct to use 408 for the
ErrorStatus::ScriptTimeout and ::Timeout errors, it
causes a collision with HTTP semantics implement in HTTP clients.
To support Keep-Alive we allow retries in HTTP clients and if a
client sees code 408 it thinks that the server has gone away and
retries the request.
This causes WebDriverCommand::ExecuteScript, ::Get, and ::Refresh
commands to be sent twice with some HTTP clients.
This is a backwards incompatible change to WebDriver in order to
not break HTTP/1.1 Keep-Alive.
The patch switches the serialization and deserialization of data
structures from the rustc_serialize crate to serde. By doing that
all the custom code for serialization and deserialization can be
removed in favor of serde's automatically derived serializers and
deserializers.
MozReview-Commit-ID: B8H3bZQKkJ7
--HG--
extra : rebase_source : 9f6a18d1f3be15237133ce7e9b0bd7f0d8126429
If a command is used before creating a new session, an
"invalid session id" error has to be returned by the
driver.
--HG--
extra : rebase_source : c45f33e9e39d876f5fd77561b57ab1fe664452d1
This patch adopts Logger#managerLevelFromPref from Log.jsm to set
and keep track of the Marionette logger's verbosity.
This has the advantage that we do not have to roll separate
implementations of Log for the child- and parent processes. It also
has the upside that the log level will be reflected when changed
at runtime through the use of an observer.
In order to facilitate the use of Log.jsm's Logger#manageLevelFromPref,
geckodriver needs to ensure that the input value for the
marionette.log.level preference conforms to the variants in the
Log.Level enum.
This patch implements the Into<T> conversion from geckodriver's
logging::Level into mozprofile::preferences::Pref by way of a new
function to_gecko(), that ensures the preference value is correctly
formatted.
Logger#manageLevelFromPref expects a string value such as "Info",
which exactly matches Log.Level's own properties. It is in other
words case sensitive, and this ensures that Marionette no longer
has to case convert the input data.