The log messages of what geckodriver sends and receives from the
Marionette server will now be logged at trace level. This brings parity
to the way protocol chatter is logged in the Marionette server.
This effectively filters out all log entries from modules that do not
begin with either "geckodriver" or "webdriver". This is a big hack,
but works well enough for the time being.
Travis at some point changed the default compiler in their images to be
clang. Cross-compiling Rust code with clang is not possible quite yet,
so we force gcc to be used.
Fixes: https://github.com/mozilla/geckodriver/issues/495
* readme: expand usage instructions
Expands the usage instructions section of the README to contain actual,
useful information on how to use geckodriver with Selenium and as a
standalone WebDriver server.
Following https://bugzilla.mozilla.org/show_bug.cgi?id=1348782
and https://bugzilla.mozilla.org/show_bug.cgi?id=1354323, the
sendKeysToElement and sendKeysToDialog commands in Marionette accept
only a string `text' field as input.
These patches to Firefox has since been uplifted all the way to Firefox
53. In order to make geckodriver work with newer Firefox versions again,
we need to pass the `text' field. But in order to support older Firefoxen
without the `text' field requirement, we also want to continue to send
`value' as a string array.
Clients must unfortunately send a string `text' field, but it is believed
it is easier to upgrade to the latest Selenium release than to pin the
exact versions of geckodriver and Firefox.
Fixes: https://github.com/mozilla/geckodriver/issues/594
marionette.logging has been renamed marionette.log.level, but we keep
the former around for backwards compatibility with earlier Firefoxen.
This is similar to change made in 8f19dc4dac
for marionette.port.
Remove one layer of wrapping inside the `capabilities' field when
geckodriver sends the capabilities to Marionette.
Prior to this patch, geckodriver would send the following JSON Object
to Marionette's newSession command:
{capabilities: {foo: 1, {desiredCapabilities: {foo: 1}}}}
Following this patch, it sends:
{foo: 1, {capabilities: {desiredCapabilities: {foo: 1}}}}
In the future, the idea is to remove the capabilities object altogether
and just send
{foo: 1}
The marionette.defaultPrefs.port preference
has been renamed to marionette.port as part of
https://bugzilla.mozilla.org/show_bug.cgi?id=1344748.
We keep the fallback preference around until Firefox 54 becomes stable
for backwards compatibility reasons.
When a user provides a profile that wnats to override browser.warnOnQuit,
browser.tabs.warnOnClose, or browser.showQuitWarning, we should
allow users to do stupid things. We should not prevent the profile's
preferences from being applied.
dom.ipc.cpows.forbid-unsafe-from-browser is being removed because all
targetted Firefoxen are not using any unsafe CPOWs in Marionette code.
marionette.defaultPrefs.enabled is superfluous for as long as the
--marionette flag is being passed to the Firefox binary.
Remaining relevant prefs from prefs::REQUIRED have been merged into
prefs::DEFAULT.
This is a follow-up to the discussion around
https://github.com/mozilla/geckodriver/pull/423.
Merges prefs::Default prefs into custom profile unless the custom
profile explicitly sets that preference.
Sets the marionette.defaultPrefs.port preference last so users cannot
accidentally overwrite its value by providing it in capabilities.
This change makes the tests compile and makes use of the public typedef
webdriver::capabilities::Capabilities, which reduces the need for type
declarations of BTreeMap.
In the interests of avoiding the
Aborting on channel error.: file c:/builds/moz2_slave/m-rel-w32-00000000000000000000/build/src/ipc/glue/MessageChannel.cpp, line 2056
error we have seen frequently reported on geckodriver, this change forces
the Flash plugin to be disabled by default. The Firefox homepage triggers
the plugin container to start, which is causing problems when quitting
Firefox through geckodriver.
Since Flash cannot be interacted with through WebDriver and it is soon
going away from the web, I don't think this is a big sacrifice.
Fixes: https://github.com/mozilla/geckodriver/issues/225
Support the alwaysMatch/firstMatch new session command. Move the
capabilities handling into geckodriver as far as possible so that
marionette itself should not be rejecting sessions (as this is
expensive and can only happen after gecko starts). Use mozversion to
provide (currently somewhat hacky) version number matching for the
browserVersion capability.