September 2016


Commented on issue 90 in geckodriver about a system path issue.

Requested uplift of bug 1280947 and bug 1244425 in preparation of removing the pref that disables CPOW checks. This is challenging because the Marionette Python client is being used to test upgrades, so we need the relevant patches to also be available on Aurora and Beta. The tracking bug for this work is bug 1238095, which I commented on.

Closed issue 63 in geckodriver as it was resolved by PR 2686 to Selenium and PR 203 to geckodriver.

Filed issue 206 with geckodriver about the fact that it only supports Selenium-styled capabilities objects.

Closed issue 197 in geckodriver as it was resolved by PR 2686 to Selenium and PR 203 to geckodriver.

Worked on the W3C WebDriver compliant Python client. Made a lot of changes to… well… make it work.

Continued work on patch to geckodriver to make logging options part of the firefoxOptions dictionary.




Commented on issue 209 in geckodriver about missing support for the new firefoxOptions object in the Selenium client bindings.

Commented on issue 207 about an alleged conformance issue in Marionette to do with the Get Element Rect command in a geckodriver issue.

Commented on issue 211 in geckodriver about extension commands to install (temporary) add-ons through Marionette. Since I landed bug 1298025 last week, I think all we need to do is to expose this in the geckodriver server.

Closed issue 208 in geckodriver because it is not actionable. Gave a few hints about what to do.

Closed issue 210 in geckodriver which was caused by bug 1051567. It is likely not going to be uplifted to Firefox 48 because it is not a top crasher, and 49 is scheduled for release next week.

Reviewed PR 212 to switch compilation of geckodriver from Rust stable to beta because Rust issue 34978 has not been fixed yet for stable.

Commented on PR 325 about removing the limitation of one session per browser in WebDriver. I think it sounds like a fine idea, but I’m not sure how we would address the race condition issues it creates.

Commented on PR 324 which changes the normative language in the Security chapter to non-normative in the WebDriver specification.

Commented on PR 326 to the WebDriver specification.


Reviewed PR 213 that enables Windows 32-bit builds of geckodriver.

Closed PR 138 as it is superseded by PR 213.

Reviewed PR 162 to geckodriver again, but it requries some further changes.

Submitted PR 41 to webdriver-rust to have it return hyper::server::Listening so consumers can access the listening socket address.

Submitted PR 217 to geckodriver which lets the logging level be set by a capability.

Submitted PR 218 to geckodriver to print the listening host and port after we have spun up the HTTPD.

Submitted PR 219 to geckodriver to use formal type definitions for all supported capabilities in the documentation.

Closed issue 215 in geckodriver because it is more a support request than an issue.

Submitted PR 13186 to Servo which upgrades the webdriver-rust library.

Made some documentation improvements to the W3C WebDriver client.


Resolved bug 1301030 as invalid because it is a bug with the Selenium Java bindings, which we do not maintain.

Rebased PR 13186 to Servo which upgrades the webdriver-rust library.

Rebased and merged PR 218 to log, not print, the listening host and port in geckodriver on startup.

Traiged bug 1301073 that reports that Switch To Window should not allow switching to window by Also added it to the WebDriver status page.


Reviewed bug 1301320.

Reviewed bug 1296175.

Commented on issue 80 in geckodriver about the startup page tab.

Worked on integrating slog in geckodriver.

Submitted PR 222 to geckodriver to remove the first run page in officially branded Firefox builds.


Unassigned myself from bug 1261180.

Tried to reproduce issue 168 about setting an <input type=file> element’s value, but wasn’t able to either with Firefox 48 or Nightly.

Triaged issue 223 and filed issue 2751 with Selenium. It looks like the RemoteWebDriver in Selenium is using the HTTP POST method when getting the current active element.

Closed issue 221 in geckodriver because it’s not reproducible.

Commented on issue 128 in geckodriver.

Addressed a code review issue for PR 222 in geckodriver.

Submitted PR 135 to gotk3 which adds popover functions to MenuButton.


Fixed a long outstanding issue that prevented feeds here on to not be auto-generated. This means new tags get detected and their feed generation rules populated automatically.


Continued work on integrating slog with geckodriver.

Filed issue 43 in slog about slog-stream not being published.

Provided needinfo on bug 1300709 about waiting for the session to restore in Marionette.

Requested uplift of bug 1280947 about dispatching the right DOM events when uploading files, but found that bug 1290966 needs to be uplifted first.

Commented on issue 224 in geckodriver about Firefox support.


Submitted PR 226 which replaces the default log facilities in geckodriver with slog, so that we can reinitialise the logger when the firefoxOptions.log.level capability requests another log level from the one specified by a command-line flag.

Commented on issue 225 in geckodriver about frequent crashes in Firefox when quitting a session using geckodriver.

Submitted PR 43 to webdriver-rust to have it return early when it encounters errors from spinning up the HTTPD, instead of unwrapping the return value.

Submitted PR 227 to geckodriver to use to propagate the error we receive from webdriver::server::start instead of creating a custom one.

Filed bug 1302458 with a feature request for Firefox devtools to implement the monitorEvents and unmonitorEvents functions exposed the JS console in Blink.

Submitted PR 202 to wptrunner to correct the imports it gets from WPT’s tools directory. This resolves issue 201, which is a blocker for upgrading wptrunner in Servo.

Filed bug 1302500 about branded Firefox builds sometimes crashing when started via X forwarding over SSH. Thanks to Gijs and dholbert for giving me hints on how to find people to Cc on the bug.

Filed bug 1302506 about git mozreview configure assuming the CWD is the repository’s root directory.

Filed and patched bug 1302503 to have GeckoDriver#quitApplication optionally take no parameters when called. This is related to the discussion we had in issue 225 in geckodriver, which incidentally is a great issue report.

Filed issue 228 in geckodriver as a tracking bug to update the Selenium client bindings to support the upcoming changes to capabilities in geckodriver 0.11.0.


Commented on issue 231 in geckodriver about Windows 32-bit compatibility.

Commented on issue 230 in geckodriver about inability to locate elements by tag name. However we need more information before we can pinpoint what is wrong.

Closed issue 229 in geckodriver because it is not actionable in its current state.

Requested uplift of bug 1302503 about GeckoDriver#quitApplication not requiring any flags.

Submitted PR 329 to the WebDriver specification which makes the Set Timeouts command more coherent and stricter in its type checks.

Submitted PR 330 to lexicographically order UI Events dependencies in the WebDriver specification.

Submitted PR 331 to the WebDriver specification that fixes stylistic issues in the element retrieval chapter.

Filed bug 1302743 about some visual issues with the new find in page functionality in Firefox nightly.

Patched bug 1302707 in which it turned out that we were never setting the page load timeout.

Closed bug 1302397 as invalid as it is a Selenium issue, and not a geckodriver issue.


Commented on issue 144 about extending WebDriver to support getting logs off the JS console.

Provided needinfo on bug 1301320 to hskupin regarding his patch to retry binding to the port.

Provided needinfo on bug 1302503 regarding its uplift to beta.

Addressed review comments in PR 226 abuot replacing log with slog in geckodriver.

Continued to review PR 328 to the WebDriver specification that specifies the behaviour of pointers in the Actions API.

Responded to PR 325 in the WebDriver specification about allowing multiple sessions to the same browser process.

Attended internal meeting.

Spent some time trying to navigate the WebDriver discussions around capabilities. I’m not convinced that involving the final endpoints in parsing is the best idea.


Commented on issue 232 in geckodriver about providing the version number of geckodriver itself as part of the returned capabilities.

Commented on issue 228 in geckodriver about what command-line flags are still available, and how they related to the new firefoxOptions capabilities dictionary.


Travel day to Lisbon.


TPAC Browser Tools- and Testing WG meetings.


TPAC Browser Tools- and Testing WG meetings.


Rebased and landed PR 330 which lexicographically orders UI events dependencies in the WebDriver specification.

Submitted PR 334 to let the Status command in WebDriver optionally include arbitrary JSON fields.

Commented on issue 56 in geckodriver about what Firefox versions the patch is available in.

Resolved bug 1274761.

Commenteed on PR 327 about the new capabilities proposal from jleyba.

Submitted PR 335 to WebDriver which suggests that user agents provides a UX element that makes it easy to recognise OS windows that are under automation control by WebDriver. It also makes contributes some other minor security chapter fixups.

Filed issue 336 with the WebDriver specification about defining what ‘response’ means.

Submitted PR 235 to geckodriver wich re-introduces the --webdriver-port argument for backwards compatibility.

Filed bug 1304477 about the new find-in-page toolbar not respecting the paint order/z-index of elements above itself, causing the white and yellow overlay boxes to bleed through.

Submitted PR 337 to the WebDriver specification which is a significant refactor of how navigation and TLS certificate handling works.

Commented on issue 232 in geckodriver about returning version number.

Commented on issue 233 in geckodriver about the implementation of actions.

Rebased PR 226 to replace env_logger with slog in geckodriver.


Travel to London.


Filed issue 669 in clap-rs with a feature request for the ability to alias regular arguments.

Filed issue 51 with slog about the slog-atomic crate being out of sync with the code used on the master branch.

Updated PR 226 to replace log with slog in geckodriver to use slog 1.0.0 which was recently released. Unfortunately it appears that the slog-atomic crate was not released and thus the code available us differs a bit from that which is used in the examples on master. Was able to apply a bit of hackery to get it working, however.

Commented on issue 234 and issue 229 in geckodriver about lacking debug information.

Commented on issue 236 about a possible case of failing to use the profile provided by the Selenium Java bindings.


Provided needinfo on bug 1244425 about uplifting.

Commented on issue 194 in geckodriver about failure to start geckodriver with a custom profile in the Selenium .NET bindings.

Commented on issue 225 in geckodriver about the plugin container crash in officially branded builds that happens when the homepage URL is not set to about:blank.

Commented on issue 233 in geckodriver about the possibility of generating events in JS for as long as the actions API is not implemented in geckodriver.

Commented on bug 1295151 about a claim that Marionette isn’t used much for UI testing of Firefox.

Resolved bug 1303716 as invalid as Selenium FirefoxDriver is not a Mozilla project.

Commented on issue 237 in geckodriver about Linux 32-bit support.

Resolved bug 1304121 as invalid as the stacktrace shows this is a bug in the Selenium Node.js bindings.

Commented on issue 236 in geckodriver about the Selenium Java bindings never picking up on the passed Firefox profile. This would explaina lot of the issue reports we are getting for geckodriver.

Commented on issue 51 about how the slog crates are published and the challenges attached to finding the right version numbers to depend on.

Commented on issue 2751 regarding the Get Active Element command in Selenium using the HTTP POST method instead of GET.

Commented on issue 2301 about providing a shim for Selenium bindings to use the Element Get Property to implement getAttribute. Another possibility is to just re-use the getAttribute JS atom and be done with it.

Responded to code review comment in PR 88 in the selenium-docs repository about adding source code highlighter.

Commented on issue 173 in geckodriver about a stack trace that looks like it is a duplicate of issue 210.

Wrote a summary of what’s cooking in Marionette email to the tools-marionette@ mailing list. I hope to make this a regular occurrence, but I think I need to automate the process. I think that’s quite feasible, but it will still need some manual editing to make it useful, e.g. by providing context and references and improve bad commit messages.

Did my expenses from Lisbon, which always takes a shockingly long time to do. I wish Mozilla would have a per diem approach.

Rebased and fixed up code review issues in bug 1302707 about fixing a lot of issues with setting timeouts in Marionette, as well as making Marionette conformant to the WebDriver specification.

Filed issue 2835 in Selenium about the FirefoxDriver ctor in the Java bindings not picking up on the binary or profile when using geckodriver.


Closed issue 2835 that I raised yesterday about the Java bindings not picking up on the passed profile or binary in favour of issue 2572 that lukeis had filed some time ago.

Commented on issue 237 about providing 32-bit Linux builds of geckodriver.

Cherry-picked patch for bug 1244425 onto the beta branch to verify that it works correctly.

Provided needinfo on bug 1259055 with regards to remoteness changes causing the outerWindowID to change. Marionette uses this for window handles, and we either need a value to uniquely identify a browser that is more persistent from somewhere in Gecko, or we need to create our own lookup table with UUIDs that we assign ourselves.

Commented on issue 229, explaining how to get verbose logs from geckodriver.

Rebased and fixed an additional test failure for bug 1302707 where Marionette was not returning a timeout error when the page loading timeout was set to 0 because of an invalid type check in the listener.

Responded to review comments in PR 334 to the WebDriver specification which deals with the new Status command.

Commented on PR 3824 to WPT about providing a test status list for the WebDriver conformance tests.

Responded to a lot of email traffic on the WebDriver spec mailing list.

Reviewed PR 339 which attempts to fix updating the current browsing context when switching windows in the WebDriver specification.

Requested uplift of bug 1244425 to beta again, after the patch applied cleanly to the beta branch and tests appears to be all passing.

Commented on PR 328 to the WebDriver standard.

Commented on issue 90 in geckodriver regarding the wires.exe to geckodriver.exe name change that happen a while ago.


Resolved duplicate issue 238 in geckodriver.

Reviewed PR 339 to update the definition of what a top-level browsing context is in the WebDriver standard, and fix the prose to switch windows.

Reviewed bug 1290372 that takes into account that the Firefox process might have died whilst waiting for the port to become available.

Spent almost the entire day reviewing bug 1303234 which is the beginning to implement the new WebDriver actions API in Marionette.

Filed bug 1306029 about the fact that Firefox DevTools is unable to display the source of inline JavaScript in data URIs.

Closed issue 240 in geckodriver about conformance negotiation in the Selenium remote server because it is a Selenium issue.

Fixed another issue with the patches for bug 1302707. I found that the page loading timeout has only worked incidentally in Marionette because of a faulty type check. When I fixed this, I discovered that the default page loading timeout is set to null, which triggered this behaviour and causing tests to pass. I’ve now fixed it so that the default timeout is five minutes, which is what the WebDriver specification mandates.

Commented on bug 1306046 about the old action API failing to propagate thrown errors in the promise chain properly.

Merged PR 3824 to WPT with a list of test coverage in WebDriver.

Reviewed bug 1304046 which enables wdspec tests on try.

Provided needinfo on bug 1296628 about loading frame scripts twice in officially branded builds of Firefox.


Commented on issue 243 in geckodriver about an element that gets clicked even though it is hidden.

Commented on issue 340 in the WebDriver specification about supporting the serialisation of DOM text nodes.

Commented on issue 17 in geckodriver about what is required to support setting an alert’s text.

Commented on PR 39 in webdriver-rust that I can’t merge it. We need to see about getting this moved to the Mozilla organisation on GitHub.

Submitted PR 244 to geckodriver which mitigates issue 241 by not opening a second tab on Firefox upgrades in officially branded builds with a fresh profile. But it doesn’t really solve the underlying issue.

Filed issue 341 in the WebDriver specification’s new issue tracker about supporting namespacing in capabilities.

Commented on issue 2751 in Selenium.


Commented on issue 243 in geckodriver where I requested a test case.

Commented on issue 172 in geckodriver, which I still have no idea what is about.

Responded to review comments for bug 1303234.

Commented on issue 340 in the WebDriver specification about the serialisation of textual- and comment nodes.

Closed issue 247 in geckodriver because W3C WebDriver does not implement a form submit command.

Filed issue 5 with port-of-rs that the Rust Nightly 1.14.0 release breaks linking on Windows i686 with geckodriver. This is related to the tracking issue 246 in geckodriver.

Filed issue 2854 for Selenium to provide a shim for submitting a form to work with W3C-conformant WebDriver remote ends.

Submitted PR 248 to geckodriver which is yet another attempt at making the firefoxOptions capabilities documentation look nicer in an HTML table.

Filed issue 249 in geckodriver to upgrade the webdriver-rust libary to version 0.15.0.

Submitted PR 342 to the WebDriver specification with some editorial changes.

Submitted PR 343 to the WebDriver specification defining what extension capabilities are.

Submitted PR 251 to geckodriver in order to rename firefoxOptions to moz:firefoxOptions.

Submitted PR 252 to geckodriver which moves FirefoxOptions to a new file src/

Submitted PR 253 to geckodriver to provide some more tools for debugging CI issues on Travis.

Commented on issue 246 in geckodriver about the path forward for getting i686 Windows builds to work short-term.