July 2016


Reviewed and merged PR 134 in geckodriver that disables autofilling of forms.

Reviewed PR 136 that makes some changes to the way we deploy geckodriver.

Closed issue 135 because issues with Windows Defender is unrelated to geckodriver.


Responded to issue 110 that a 32-bit build of geckodriver might help.

Triaged issue 137 in in geckodriver, which is about the inability to find elements by partial link text in XHTML documents. Filed and submitted bug 1283999 in relation to this issue, which fixes lookup of elements in XHTML documents by link text and partial link text.

Did some investigation on cross compilation of Rust programs to the i686-pc-windows-gnu toolchain. After some reasearch, I discovered it’s hard. Added a comment to PR 138.

Commented on bug 1283459, renaming the pacUrl field to proxyAutoconfigUrl in Marionette’s proxy configuration, about which Firefoxen to expect it in.

Commented on issue 131.

Closed issue 140 because it is off-topic for geckodriver.


Resolved bug 1284029, on implementing the Fullscreen command in Marionette, as a duplicate of bug 1189749.


Filed bug 1284229 about a serif font being used for the main user interface on macOS Sierra.

Resolved issue 141 in geckodriver because Marionette does not implement the Selenium actions API.

Commented on issue 140 in geckodriver that the fact that getting an element by ID and name aren’t primitives, is a bug with the specification rather than geckodriver.

Triaged and confirmed issue 127 in geckodriver, that HTMLAllCollection, HTMLFormControlsCollection, and HTMLOptionCollection are unhandled by Marionette when attempting to return such collections from an evaluated script. Filed and patched bug 1284232 with Marionette to address this. This is also a specification issue.

Reviewed bug 1283745 that bumps the marionette-driver versiont o 0.3.1.

Filed issue 69 with a Mail.app add-on called Quote Fix.

Reviewed PR 192 to wptrunner to always pass a default screen resolution value to Servo.

Provided needinfo on bug 1284232.


Reviewed bug 1257476 which stops the browser process when Firefox comes up with a YSOD (yellow screen of death).

Resolved bug 1283988 as WFM because it is not a Marionette issue.

Marked bug 1284405 as a good first bug.

Reviewed bug 1281915 that resolves an intermittent in Marionette.

Reviewed PR 82 to add language tabbing to the new Selenium documentation.

Commented on issue 81 with some tips on how to surface the driver logs from the Node.js Selenium bindings for geckodriver.

Fixed up PR 2407, which adds the Set Context and Get Context commands to the Firefox implementation in the Selenium Node.js client bindings. I added a few trivial tests.

Sent out an email to the office mailing list about setting distributed compilation in the office.

Commented on PR 193 to wptrunner regarding where the pytest library gets picked up from when running the Web Platform Tests.


Resolved issue 137 in geckodriver because bug 1283999 landed in central.

Replied to the dev-platform-ux@ mailing list with some empirical input on the design of permission dialogues.


Provided feedback on a blog post that an intern is writing about Marionette.

Reviewed bug 1281915 that tries to address an intermittent test in Marionette.

Reviewed PR 312 that trims leading- and trailing whitespace off the link text selector in the WebDriver specification.

Work on fixing up test failures for bug 1284232 about fixing the marshaling of collections in Marionette.

Provided some context on bug 1282570 about raciness when a WebDriver session is closed in Marionette.

Responded to issue 139 regarding geckodriver 0.9.0 not being an executable file.

Updated geckodriver’s changelog.

Reviewed and merged PR 196 that fixes some console output formatting for Servo to wptrunner.

Filed issue 12325 with Servo because I am unable to link the release target.

Reviewed r/6672 about requiring pytest as a system-wide dependency again. See the issue comment for more information.

Reviewed bug 1285240 that trims a link’s visible text when looking them up by link text.


Submitted PR 197 to wptrunner which I think will solve the issues Servo is having with running the CSS tests.

Addressed test failures for bug 1284232 and submitted a couple of more minor patches for review.


Submitted PR 143 to geckodriver which lints the code using rustfmt.

Closed issue 144 because accessing the console is not part of the WebDriver specification.


Reviewed a blog post a colleague had written.

Followed up on some pension system activation problems with Aegon Retiready. They appear completely incompetent.

Travel day to Redmond.

Commented on bug 1284457 about the need for the 360 second timeout we have in the Marionette client.


Reviewed bug 1284029 that implements the Fullscreen command in Marionette.

Meetings with jgraham and dburns about various things, mostly WebDriver.

Reviewed PR 145 which replaces the argument parser in geckodriver.

Commented on bug 1282873 about setting proxy settings in Marionette.

Resolved bug 1286107 about firing onchange events for sending filenames by sending keys to <input type=file> as being a duplicate of bug 1280947.


Closed issue 146 about providing a 32-bit Windows executable of geckodriver, because there is already an open PR about it.

Attended the first day of the WebDriver WG F2F at Microsoft in Redmond, Washington.


Resolved bug 1286819 because it is related to Selenium and not to geckodriver.

Second day of WG meetings.


Travel day back to London.


Still travelling…


Reviewed PR 83 that tries to add installation steps for Selenium to the new Selenium docs repo.

Provided needinfo on bug 1284405 that suggests a fix for the --socket-timeout flag in the Marionette test runner, which currently does not accept floats.

Added a comment to bug 1287221 about possible slowness with regards to navigating to documents in Marionette.

Submitted PR 313 to invoke the user prompt handler in the WebDriver spec implicitly. This is required for all commands that “spin the event loop”, such as Execute Script, Execute Async Script, and Actions.

Submitted PR 314 to the WebDriver specification text so that it errors on serialising the WindowProxy exotic object of a discarded browsing context.

Submitted PR 315 to reference HTTP normatively in the WebDriver specification.

Submitted PR 316 to the WebDriver specification which fixes the SSL certificate handling.

Pushed a try run for bug 1239552 which I spent some time looking into. It looks like we are registering listeners’ message handlers twice: Once implicitly through the aAllowDelayedLoad argument to loadFrameScript being set to true, and once explcitly by calling GeckoDriver#whenBrowserLoaded for each browser as they appear.

The simple workaround is the patch I posted to try, but this is really a more fundamental problem with how message managers are… well… managed. Instead of broadcasting every message to every listener, a better approach would be to have a single, unique message channel for each individual browser/content frame. There also ought to be some guards in testing/marionette/listener.js that prevents it from calling registerSelf() more than once. That would also be an acceptable hot-fix for the immediate problem, by the way.


Followed up on code review of r/6332 that adds protocol tests for WebDriver to the WPT test repo.

Wrote a patch for bug 1239552 that is really about registering listeners twice in Marionette, but the patch I wrote addresses the immediate bug by disabling the first run welcome page properly. It looks like even though you disable startup.homepage_welcome.url, another preference takes over if it is disabled, called startup.homepage_welcome_url.additional.

Filed and patched bug 1287751 to remove a logging statement in the startBrowser method in Marionette.

Commented on issue 17 regarding setting alert dialogue text in Marionette on the geckodriver project. It appears the discussion is related to an old PR I submitted six months ago to the specification, suggesting that it makes no sense to send the text as an array of single unicode code points (note that the specification makes no effort at limiting the size of the individual array elements).

Submitted patch for bug 1280300 about navigating to a fragment/hash in Marionette.

Fixed up patch to bug 1239552 with an additional preference that is required on Windows 10, explained by RyanVM, and did another try run.

Submitted PR 317 to the WebDriver standard to return an error when the passed URL is malformed.

Submitted PR 318 also to the WebDriver standard to return an error on attempting to serialise a stale element.


Filed bug 1288068 about being unable to compile mozilla-central using clang 3.4.

Fixed some test failures for bug 1280300 that adds support for navigation by fragment to Marionette.

Continued review of PR 145 to geckodriver that changes the flag parser.

Commented on PR 58Published entities>, a small utility to convert special characters in HTML to entities, and vice versa. It comes with a Go library and a entityconv binary.

Reviewed r/5916 to wptrunner which adds support for the Edge browser.


Reviewed PR 38 which adds the ability to consume capabilities to the WebDriver Rust library.

Commented on about a possible issue to do with evaluation of scripts with the Execute Async Script command in Marionette.

Addressed code review issue in PR 317 to the WebDriver specification about navigating to an absolute URL.


Commented on issue 69 in the Selenium documentation project.

Landed PR 83 after some heavy editing to the Selenium docs.

Reviewed bug 1288863 which lower-cases platform- and browser name returned in the capabilities from Marionette.

Pushed a new try run for bug 1239552 with a patch that disables global scope for loaded frame scripts.

Wrote and published an update from the WebDriver working group’s meeting in July 2016.


Answered issue 152 about logging verbosity output in geckodriver.

Triggered more reruns of the Windows 10 test jobs on the try run for bug 1239552.

Finished reviewing PR 145 to geckodriver, and merged it.

Provided needinfo for dburns in bug 1125834 about double exception class mentions in the Marionette exception messages.

Provided needinfo on bug 1283216 to choose the default build of Firefox if one hasn’t been provided through the bin kwarg.

1:1 with dburns.

Discussion with whimboo about bug 1287904 and whether the Switch To Frame command should implicitly switch contexts for you when you attempt to switch to a <xul:browser> element from a privileged content page, such as about:addons.

Added some information to bug 1285085 about what graphics card the Windows 10 try machines have.