October 2016


Submitted PR 255 to geckodriver to upgrade to the webdriver Rust libary 0.15. This exposes the Get Window Position and Set Window Position commands.

Turns out that PR 255 was a duplicate of PR 254, but we’re still missing tests for it in WPT.

Pushed a number of updates to the W3C WPT WebDriver client.

Submitted PR 209, PR 210, PR 211, and PR 212.

Submitted PR 3858, PR 3859, and PR 3860 to WPT.

Submitted PR 122 to wpt-tools to upgrade the wdclient dependency.

The summary of these changes are that they:

Resolved bug 1307154 as invalid because the log interface isn’t specified by WebDriver, and consequently not implemented in geckodriver or Marionette.

Continued investigating issue 246 about cross-compilation issues on Windows 32-bit with geckodriver. It turns out that compilation is also broken for Windows 64-bit, and it just hasn’t surfaced on geckodriver’s master builds because Travis uses a known-good cached Rust version.

Commented on PR 251 to geckodriver about being ambivalent towards whether we should use the : character to denote namespaces in capabilities.

Submitted PR 256 which fixes the Windows build issues we have had recently in geckodriver. See the commit messages and the comments on issue 246 for more context on what the problem was.


Commented on issue 258 in geckodriver about publishing it on crates.io.

Fixed code review issues in PR 3860 and PR 3859 to WPT.

Triaged issue 245 in geckodriver about null having special meaning to release all modifers. This also needs to be addressed in the WebDriver specification, as the Element Send Keys command has not yet been defined.

Filed issue 346 in the WebDriver specification to track the progress of defining the Element Send Keys command.

Patched a missing underscore in a preference name in geckodriver.

Moved all WebDriver specification bugs to GitHub and had Mike Smith disable the Bugzilla component.

Closed issue 5 in port-of-rust because the 32-bit compilation issue was fixed by upstream Rust Nightly.

Commented on issue 38 about the remaining blockers for releasing a new geckodriver with Windows 32-bit support.

Closed issue 259 in geckodriver as it was more question than an issue. Anyway, I explained why the return values from geckodriver are different to those from Selenium.

Submitted PR 414 to the WebDriver specification.

Published issue.js which allows prose in an HTML document to be quoted when filing new GitHub issues.

Addressed review issues for PR 343 about defining extension capabilities for the WebDriver specification.


Addressed review issues in PR 414 to the WebDriver specification. It turns out that selection events are only turned on in Firefox Nightly, but a polyfill library makes it work in Firefox.

1:1 with dburns.

Rebased and merged PR 252, PR 254, and PR 248 to geckodriver.

Replied to an email discussion for the WebDriver specification about whether values should always be wrapped in objects.

Reviewed PR 345 to the WebDriver specification about always wrapping every value in a {value: <real value>} object.

Created a new 0.12 milestone in the geckodriver project and filed issue 262 and issue 261.

Closed PR 143 to lint geckodriver with rustfmt. Will address this at a later point in time.


Submitted PR 415 to the WebDriver specification.

Published the ultimo September edition of What’s cooking in Marionette.

Submitted patches for bug 1282833 so that the Set Window Position command returns the new position.

Submitted PR 2882 to the Selenium Python bindings to support the moz:firefoxOptions dictionary and somewhat improve the sanity of the FirefoxDriver class’ constructor.


Closed issue 265 in geckodriver because it is by design that the screenshot command only paints the visible portion of the viewport.

Provided needinfo on bug 1308453 about a regression in beta caused by bug 1302707.

Provided needinfo on bug 1306848 about a new possible intermittent caused by bug 1302707.

Commented on bug 1302707 about what caused the upgrade test failures on beta. Unfortunately as they happened in an unpinned out-of-tree client, there is no way we could detect this from the try integration tests alone.

Commented on bug 1306902 about an intermittent regarding a forced socket close in the WPT tests that I haven’t seen before.

Commented on bug 1308453 with a proposal for a possible solution.

Wrote a few paragraphs about the what it entails to change the Marionette API and protocol on MDN.


Resolved issue 266 about geckodriver Linux 32-bit builds as a duplicate of issue 237.

Submitted PR 267 to geckodriver to enable i686-unknown-linux-musl builds.

Addressed code review issues in PR 2882 to implement moz:firefoxOptions in the Selenium Python bindings.

Filed bug 1308887 about upgrading geckodriver in tooltool to version 0.11.1.

Submitted PR 268 to make use of the argument aliasing feature in clap 2.14.

Commented on PR 263 about wrapping all values in {value: …} objects, following the WebDriver WG’s latest decision.

Reviewed bug 1308887.

Submitted PR 416 to the WebDriver specification which updates the Echnida manifest with issue.js, which is needed before we can publish another TR.

Commented on issue 270 in geckodriver.

Spoke to engagement consultant.


Commented on issue 272 which is a likely fallout from the change we made to te capabilities in geckodriver 0.11.1.

Closed issue 17 in geckodriver about not being able to set text in a user prompt dialogue.


Resolved bug 1255957 as a duplicate of bug 1255955 regarding interaction with <select> elements in Marionette.

Provided needinfo on bug 1277791 regarding whether we need accessibility checks in Marionette.

Commented on issue 272 regarding announcing backwards incompatible changes to geckodriver.

Commented on bug 1309234 that there is no definition of what it means to be ‘keyboard interactable’ in the WebDriver specification.

Commented on bug 1309240 regarding Marionette not firing change events when interacting with <select> elemens. I’m quite sure we do that.

Commented on bug 1309244 regarding not being able to click overflow links in Marionette, which I believe is because we are using the bounding client rect instead of the first client rect to calculate the click position.

Commented on issue 418 in the WebDriver spec about returning the user prompt text when an unexpected alert present error is returned.

Commented on issue 417 in the WebDriver spec about serialisation of colour values from CSS. I believe we should just defer to the CSSOM spec.

Continued reviewing bug 1290372.

Resolved bug 1204889 as I cannot reproduce it anymore.


Published another TR draft of the WebDriver specification.

Submitted PR 421 to have the WebDriver specification automatically published to Echnida when validation passes on the master branch.

Commented on issue 97 in geckodriver.

Submitted PR 423 to the WebDriver specification about making the duration property of a pointerMove action optional.

Continued my review of bug 1303234 which implements the action chain unmarshaling in Marionette.

Commented on issue 277 in geckodriver about providing command-line flags for more options than just the Firefox binary.


Reviewed bug 1309556.


Commented on issue 2917 in Selenium regarding out of memory issues loading in 10G of data using WebDriver.

Commented on bug 1250290 regarding exposing the performance timeline through the Marionette automation protocol. Added some details about implementation details of Marionette.

Finished review of bug 1290372 to take into account whether the Firefox process disappears when waiting for the Marionette server port to become available.

Provided needinfo on bug 1308902 about exposing l10n features in the Marionette protocol in the future.

Continued review of bug 1309556 that adds a new Marionette:acceptConnections command to the Marionette server.

Closed issue 281 in geckodriver about adding functionality to hide the Firefox window on Windows. This is something that needs to be solved in Firefox directly.

Commented on issue 27 with regards to help on moving to the changed moz:firefoxOptions dictionary.

Resolved issue 280 as a duplicate of issue 93 regarding supporting TLS certificate management in Marionette.

Triaged issue 273 about Basic AUTH navigation in geckodriver.

Closed issue 270 in geckodriver because I’m unable to reproduce it.

Commented on issue 418 about encoding the user prompt alert text in the error response when encountering unexpected alerts.

Commented on issue 413 in WebDriver about adopting the Get Text atom from Selenium.


Provided needinfo on bug 1308902 about implementation of l10n features.

Reviewed bug 1309556 which introduces a Marionette:acceptConnections command to Marionette.

Closed issue 152 in geckodriver as we have added a capability for setting the verbosity.

Commented on bug 1309899.

Submitted patch for bug 1308453 which fixes the fallout of the Marionette:timeouts API change caused by bug 1302707.

Fixed bug 1309899 which bumps the version numbers of marionette-client and marionette-driver.


Requested needinfo on bug 1309899 about whimboo to release the Marionette Python packages to PyPI and send out a changelog to the mailing list.

Replied to a thread regarding implicit waits on the WebDriver specification mailing list.

Closed issue 283 in geckodriver because it didn’t contain an error.

Triaged issue 284 in geckodriver about supporting the Selenium logging interface that is available in FirefoxDriver.

Closed issue 172 in geckodriver in favour of issue 285 about the Close Window command not working as expected in Marionette.

Triaged issue 285 and filed bug 1310992 as a result.

Closed issue 74 in geckodriver since it was resolved some time ago.

Commented on issue 228 in geckodriver about support for the moz:firefoxOptions dictionary in the Selenium Ruby bindings.

Triaged issue 276 in geckodriver about the inability to maximize a window using Marionette through a Selenium client. It’s not a bug in Marionette, but the Selenium binding appears to be calling the wrong endpoint.

Filed issue 286 in geckodriver to implement the Status command endpoint that was recently added to the WebDriver specification.

Filed bug 1311041 about not using outerWindowID for the WebDriver window handle as it changes when a remoteness change occurs.

Submitted PR 44 to the WebDriver Rust library which renames the Close command to CloseWindow to match the spec.

Commented on issue 96 in geckodriver about implicit wait polling behaviour, which I believe might be linked to bug 1307127.


Closed issue 287 because I’m not going to track which Selenium versions are compatible with geckodriver.

Closed issue 276 as it turns out the problems with maximizing a window using Marionette was indeed a Selenium issue.

Commented on issue 211 in geckodriver about exposing Marionette:addons:*.

Requested uplift of bug 1307127 to Beta and Aurora.

Work on making geckodriver stop the browser process when calling Close Window and it returns an empty array.


Closed issue 290 in geckodriver as we do not maintain nuget.org.

Moved sny.no to a Debian server.


Closed issue 293 in geckodriver because the user is trying to run the wrong execuable for the operating system.

Closed issue 294 in geckodriver about <select> interaction as a duplicate of issue 94.


Commented on issue 152 that the error the user is seeing is a bug in the Selenium Java bindings, and not in geckodriver.

Closed issue 295 in geckodriver as it is a stacktrace from the Selenium Python bindings.

Closed issue 296 in geckodriver as a duplicate of issue 233 about implementing actions.

Reviewed PR 430 to the WebDriver specification.

Commented on issue 27 in geckodriver about how to use the Selenium Python bindings.

Requested a reduced test case for issue 289 in geckodriver.

Commented on issue 272 in geckodriver that the user is passing the Base64 encoded profile to the wrong key.

Continued review of bug 1303234 that implements processing of actions API input.

Closed issue 297 in geckodriver because it is using the old capabilities format.


Filed bug 1312717 about no green security lock appearing when visiting documents which render Atom- or RSS feeds in Firefox. Thanks to Berge for reporting this.

Reviewed bug 1312675 to try harder closing old windows in the WPT harness using Marionette.

Refused PR 298 to geckodriver as the documentation for the Selenium Java bindings belong in the Selenium project.

Provided needinfo on bug 1312674 about a hang that occurs if you navigate to about:blank twice in a row.

Resolved bug 1312696 as invalid.

Commented on issue 299 in geckodriver about the profile directory not being cleaned up when the geckodriver process is interrupted or terminated.

Fixed up PR 334 based on some of the code review issues. This lets the Status command in WebDriver return arbitrary additional JSON data.

Reviewed PR 432 in WebDriver which special-cases selectors passed in that are empty strings or null. This seems a bit odd, unless it is Selenium compatibility behaviour.

Submitted PR 434 to WebDriver which corrects the start nodes used for element retrieval and ensures the correct errors are returned when the using and value fields in the bodies are missing.

Closed issue 302 to geckodriver because it isn’t reproducible.

Reviewed PR 433 to WebDriver.

Provided needinfo on bug 1297551.

Commented on issue 233 about what the tracking bug for implementing a W3C conformant actions API in Marionette is.

Submitted PR 435 to WebDriver which adds a few references.

Commented on bug 1310628 with some guidance on how to expose the Marionette addons module.


Locked issue 229 in geckodriver as people just keep adding useless information to it.

Submitted PR 2 to rust-mozrunner which overrides Rust’s internal error description for ErrorKind::NotFound.

Submitted PR 304 to geckodriver to improve some UX when starting the browser process.

Reviewed bug 1303234.


Provided needinfo on bug 1145668 about calling loadURI in Marionette.

Closed issue 306 as a duplicate of issue 93 in geckodriver about TLS certificate support.

Closed issue 307 in geckodriver as it is unactionable.

Closed issue 308 in geckodriver as the spec does not say we should implicitly wait on elements to become interactable.

Closed issue 309 in geckodriver as element visibility is not taken into account when retrieving an element by the link text selector.

Provided needinfo on bug 1313338 about closing the last window causing Marionette to hang.

Provided needinfo on bug 1259055.

Work on bug 1313338.


Closed issue 313 in geckodriver where someone was trying to use the build.sh file to build locally.

Closed issue 311 about a Nuget package manager entry for geckodriver.

Closed issue 310 in geckodriver about waiting for elements to become interactable before clicking.

Triaged issue 308 in geckodriver about Marionette not performing implicit waiting when navigating backwards, forwards, refreshing, and clicking an element that causes navigation.

Work on bug 1313338.

Reviewed PR 436 to the WebDriver specification.


Requested uplift of bug 1303234 which implements extraction of the action chain in Marionette to Aurora and Beta.

Closed issue 314 in geckodriver for being unactionable.


Requested review on PR 2752 to WPT which I had forgotten about.

Commented on issue 314 in geckodriver about FirefoxDriver compatibility.

Filed bug 1314101 about testing/marionette/test_action.js failing. There also seems to be problems with running this test on try. I’m assuming it would otherwise have failed prior to the integration of the patch.

Closed bug 1281491 as it does not contain steps to reproduce.

Locked issue 210 in geckodriver as it just does not help to comment “me too”.

Submitted patches for bug 1313865 to centralise common assertions made in Marionette.

Reviewed PR 46 to webdriver-rust which adds the Take Element Screenshot command.