February 2017


Commented on PR 702 to WebDriver regardin the renaming of the unexpectedAlertBehaviour capability.

Rebased and fixed test failures for bug 1319237 which makes the Set Window Size and Set Window Position synchronous and generalises an implicit wait utility for Marionette.

Closed issue 285 regarding ending the session when the last window is closed.

Closed issue 97 in geckodriver about passing proxy settings as a desired capability.

Closed issue 447 in geckodriver because it cannot be reproduced.

Submitted PR 452 to geckodriver to disable the new tab page now that we can load about:blank twice in Marionette.

Rebased bug 1322862 and tried to reproduce test failures with navigating backwards in a debug build, but was unsuccessful. Contemplating pushing again to see if it has sorted itself out.

Reviewed bug 1335240.

Rewrote the wait condition utility in bug 1319237.

Attended Marionette chitchat.


Commented on bug 1335778, bug 1291320, and bug 1330348.

Also commented on bug 1322862 regarding its backout. It is still failing on the backwards/forwards tests on try.

Submitted PR 15347 to Servo which upgrades the libssl dependency on Debian.

Filed bug 1336088 that all output lines from mach is preceded by the string “None”.

(Hopefully) fixed test failures for bug 1322862 by using wait conditions to work around raciness in the backward/forward commands.

Fixed some more test failures for bug 1319237 to do with making the window positioning command synchronous.

Filed bug "https://bugzilla.mozilla.org/show_bug.cgi?id=1336107">bug 1336107 to upgrade geckodriver to 0.14.0 on tooltool and requested needinfo from maja_zf.

Marked bug 1319237 as a dependency for bug 1328298 because it fixes some new test failures with contexts.py. Rebased bug 1328298.

Submitted PR 455 to geckodriver to make it call Marionette’s deleteSession instead of quitApplication.

Filed and patched bug 1336124 to return an ‘invalid session id’ error when there is no current session in Marionette.

Resolved bug 1202246 as a duplicate of bug 1311041.

Filed issue 706 on the WebDriver specification about waiting for navigation to fragments to make commands synchronous.

Worked on remoteness change/permanentKey bug a lot. Made big progress.


Reviewed bug 1322383 which adds curren top-level browsing context tests for Marionette, which brings us a lot closer to WebDriver conformance.

Closed issue 456 because we don’t support the Selenium logging API in geckodriver since it is not part of the WebDriver specification.

Requested needinfo on bug 1336107.

Reviewed PR 715, PR 714, and PR 720 to the WebDriver specification.

Provided needinfo on bug 1334149 regarding increasing the socket timeout.

Rebased and fixed up PR 2 to allow wdclient to send raw command requests.

Reviewed PR 4668 which puts the WebDriver test fixtures directly in WPT.

Rebased and fixed test failures for bug 1319237.

Addressed test failures in bug 1336124.

Reviewed PR 4 which fixes the command endpoints for window commands in the wdclient libary.

Responded to review feedback on bug 1322383.

Reviewed bug 1336445.

Provided needinfo on bug 1323701.

Submitted PR 717 to the WebDriver specification which removes the need to check for an existing container element, since all elements have container elements.

Submitted PR 718 to the WebDriver specification to try to bring an element into view before checking its pointer-interactability.

Submitted PR 719 to the WebDriver specification that adds an issue reminding us to check if an element is enabled before clicking it.

Fixed up and finally submitted patches for bug 1333014 that introduces the ‘element click intercepted’ error to Marionette. The patches also align Marionette with the Element Click command in the WebDriver specification.


Reviewed bug 1322277 and bug 1336445.

Closed issue 5 in wdclient.

Rebased and landed bug 1336124 bug 1319237, and bug 1322862.

Filed issue 735 on the WebDriver specifcation about incorrect handling of <option> elements that are inside <datalist> contexts, as these may be associated with any arbitrary <input> element anywhere in the document.

Addressed review issues for bug 1333014.

Attended EngProd fortnightly meeting.

Reviewed PR 734 about deserialising the session timeouts configuration object in the WebDriver specification.

Reviewed PR 733 to the WebDriver specification regarding the deserialisation of the page load strategy capability.


Requested uplift of bug 1322862 and bug 1336124 to Aurora and Beta.

Reviewed bug 1322383.

Provided needinfos on bug 1283216 bug 1336137, and bug 1333458.

Commented on bug 1330348 regarding refactoring the wait for navigation algorithm in Marionette.

Commented on issue 735 in the WebDriver specification regarding the behaviour of <datalist> and the Element Click command.

Commented on bug 1337464.

Reviewed PR 6 which corrects some command URLs related to window management in wdclient.


Reviewed PR 739 to the WebDriver specification.

Provided needinfo on bug 1333458.

Responded to review comments on bug 1333014.

Addressed code review comments for PR 697 to the WebDriver specification.

Commented on issue 285 in geckodriver relating to the “crash” in MessageChannel.cpp.

Reviewed PR 461 in geckodriver which removes the eForceQuit mask it passes to the quitApplication command.

Closed bug 1242595 in favour of bug 1333458.

Reviewed PR 745 to the WebDriver specification.


Reviewed PR 747 to the WebDriver specification which removes the notion of “transparent” elements.

Commented on issue 285 regarding the MessageChannel.cpp crash in geckodriver.

Commented on issue 233 in geckodriver.

Commented on issue 68 in webdriver-rust.

Commented on issue 746 in the WebDriver specification voicing my support for removing the notion of “transparent” elements.

Commented on bug 1333458 regarding the redesign of the page loading algorithm in Marionette.

Reviewed PR 748 to the WebDriver specification.

Filed issue 353 on ripgrep.

Finished review of bug 1322383.

Reviewed bug 1337133 which implements pointer actions in Marionette.

Filed issue 847 on clap-rs about its use of colour escape codes when TERM=dumb.

Patched bug 1337743 to stop unconditionally appending eAttemptQuit when the quitApplication command is being called in Marionette.

Started work on bug 1336214. I think it’s fair to say that error prototypes is one of my least favourite things about JS.


Commented on issue 680 on the WebDriver specification.

Cursory review of PR 756 to thw WebDriver specification which is a stab at using promises for script execution.

Filed issue 757 about the capabilities examples in the WebDriver specification.

Reviewed PR 67 to webdriver-rust which implements specification-conforming capabilities processing.

Reviewed bug 1338257.

Reviewed PR 4756 to WPT which changes a lot of things in the WebDriver tests. I’m not happy about all of the changes.

Commented on bug 1337899, pointing out that the WebDriver specification recently changed to run all injected scripts in promises, and that we might consider fixing both things at once. The promises-based injected script implementation is tracked by bug 1335472.

Reviewed PR 464 which fixes the error string for cookie expiry in geckodriver.

Patched bug 1336214 to retain the original error’s stacktrace in Marionette.

Addressed code review issues with bug 1337743.

Addressed the last remaining test failure with bug 1319237, which is about making the commands for setting a window’s position and size synchronous. I found that the DOM resize event is, despite its promises, not synchronous. When it says it fires after the document view has been resized, it is most definitely lying. Because resize events can fire at a high rate, DOM modifications are not guaranteed to have propagated by the time it fires. This means, amongst other things, that outerWidth/outerHeight may not have been written to the DOM by the time resize has fired.

Even more interesting, I found that when running the WPT WebDriver tests, the width axis would get updated before the height axis. I discovered this only after adding a synchronous wait condition for outerWidth/outerHeight to change. To add to the fun, requestAnimationFrame, which is what we should be using for this, does not want to play well with our praticular flavour of XUL. On the upside, it is good to know that messaging passing in Marionette is fast, and also that a test I wrote for WPT ages ago saved us from integrating faulty code into Gecko. The downside is, I guess, that the web still does suck.


Rebased and addressed code review issues for bug 1319237.

Commented on issue 466 on geckodriver.

Triaged issue 469 in geckodriver which is bug 1332122.

Commented on issue 468 in geckodriver, but unfortunately unable to diagnose without a trace-level log.

Addressed code review issues for bug 1337743.

Reviewed PR 4812 to WPT.

Addressed code review issues and test failures for the patches to bug 1336214.

Commented on bug 1297688 regarding Marionette and WebDriver conformance. I think it’s unlikely we will have fixed most conformance issues by Firefox 52.

Requested needinfo on bug 1338397 regarding a socket timeout issue with the Marionette client and wptrunner.

Reviewed PR 7 to wdclient, correcting the URIs for script related commands.

Commented on bug 1338528.

Reviewed PR 763 to the WebDriver specification.

Addressed code review issues and test failures for the patches to bug 1333014.

Commented on issue 322 in geckodriver regarding address bar focus, which was originally reported in issue 394 and fixed in bug 1328676.


Commented on issue 765 about capabilities for resizing- and repositioning the window on the WebDriver specification.

Reviewed PR 766 to the WebDriver specification.

Commented on PR 767 to the WebDriver specification.

Closed issue 470 in geckodriver.

Closed issue 471 as it is either a case of an outdated client binding or a bug in the Node.js Selenium bindings.

Reviewed bug 1283216 which makes it much more pleasant to interact with Marionette via ./mach python as the current build is deduced for you.

Closed issue 472 in geckodriver.

Addressed code review issues and test failures with bug 1333014.

Responded to countless review issues for bug 1337743.



Closed issue 474 in geckodriver because it is related to Selenium. We cannot be blamed for a consumer using the wrong flag.




Addressed yet more code review issues with bug 1337743 about not appending the eAttemptQuit flag if arguments are given to the quitApplication Marionette command. It is astounding to me that such a simple patch can generate this amount of busy work.

Rebased and addressed code review issues with bug 1333014.

Filed bug 1340569 to have git mozreview push error when an interactive rebase is in progress.

Rebased bug 1328298 which unbreaks some WebDriver WPT tests for Marionette.

Submitted PR 478 to geckodriver to prepare it for import to mozilla-central.

Filed and patched bug 1340637 about importing geckodriver to mozilla-central.

Filed issue 1 on rust_mozprofile about an Emacs backup file being present in the crate package.


Commented and requested needinfo on bug 1306848 about a slow test_timeouts.py test on Android debug.

Provided needinfo on bug 1283216, which got backed out because it broke the mochitest harness.

Provided needinfo on bug 1334035, which I think maybe is related to bug 1306848.

Provided needinfo on bug 1340099 about why the GeckoDriver class in Marionette is constructed multiple times when running Mn tests. I laid out a broader vision for how I would like Marionette to function in bug 1330309.

Provided needinfo on bug 1340306 about yet another slow and timing-related test on Android debug.

Provided early feedback on bug 1330348 to make a standalone page loading algorithm, and in the process making the back- and forward commands synchronous.

Closed issue 68 in webdriver-rust, as it was resolved by landing PR 69.

Reviewed bug 1337133 which adds pointer events to Marionette and a few action tests to the WPT WebDriver tests. This is great work!

Closed issue 479 in geckodriver about closing the last window causing the WebDriver session to end.

Commented on PR 478, which I will leave open until I’m sure I don’t need to make any more changes. I also triggered a new Travis build of geckodriver’s master branch as I suspect that the Linux 32-bit failures are due to a Rust upgrade.

Closed issue 466 in geckodriver as it cannot be reproduced with the available information.

Closed issue 477 in geckodriver as it cannot be reproduced with the available information.

Closed issue 481 whereby Windows is misidentifying the 32-bit package as a virus. Not sure there’s anything we can do about that.

Commented on issue 480 on geckodriver about failing to find the Firefox binary on the system.

Commented on issue 476 on geckodriver about selecting an attribute using an XPath selector.


Reviewed bug 1329184.

Closed issue 482 in geckodriver as CSS colour values should be returned as either rgb or rgba, unaltered from the browser, according to the WebDriver specification.

Commented on issue 477 to geckodriver. Still not reproducible…

Commented on issue 483 to geckodriver.

Filed bug 1341041 about failing to compile Rust programs in mozilla-central (using RUST_PROGRAMS in the moz.build file) when artifact builds are enabled.

Commented on bug 1329999 about how to approach using a changer’s real name for Bugzilla email correspondence.

Closed issue 389 in geckodriver as it was resolved by bug 1322862.

Commented on issue 785 on the WebDriver specification about quotation style.





Reviewed bug 1341415.

Reviewed bug 1337133.

Closed bug 1341538 as invalid because it is a Selenium bug.

Closed issue 490 to geckodriver because proxyAutoconfigUrl is supposed to be a string type, not null.

Reviewed PR 70 to webdriver-rust.

Submitted PR 801 to the WebDriver specification.

Reviewed PR 798 and PR 802 to the WebDriver specification.

Rebased PR 37 to make the linting tool in WPT machine readable.


Closed issue 492 to geckodriver as it was more question than an actual issue (about fullscreen support in Marionette).

Commented on issue 486 to geckodriver about the Set Timeouts command not working properly when used from Selenium. Need a trace-level log to tell what is going on.

Commented on bug 1341591 about potentially using Marionette to automate top 1000 sites.

Closed issue 491 as it is not reproducible.

Filed issue 804 and submitted PR 805 to the WebDriver specification. This allows the x/y coordinates passed to the Set Window Rect command to be signed integers.

Requested uplift to Aurora and Beta of bug 1341415.

Patched intermittent bug 1340775, which allows window position coordinates to be negative numbers when passed to Marionette.

Closed issue 475 to geckodriver about using F11 and F5 keys and expecting them to maximise the window and reload the document.

Commented on bug 1334035 questioning the benefits of running the Mn tests on Android debug.

Fixup to PR 37 to wpt-tools.

Closed issue 488 to geckodriver as a duplicate of issue 308.

Closed issue 96 also as a duplicate of issue 308.

Commented on issue 308 with a status update of how the work on bug 1330348, about decoupling the wait-for-page-to-load algorithm, is going.

Closed issue 487 to geckodriver because it is rubbish.

Reviewed PR 800 PR 799, PR 796, PR 793, PR 792, PR 754, and PR 714 to the WebDriver specification.

Filed issue 806 on the WebDriver specification about making the Set Timeouts command use the deserialisation steps of the session timeouts configuration object.

Commented on issue 795 and issue 794 on the WebDriver specification.

Submitted PR 8 to wdclient to align webdriver.Timeouts with the specification.

Filed and patched bug 1342162 to align the pageLoad key in the session timeouts configuration object with the WebDriver specification.

Submitted PR 72 to webdriver-rust which aligns the timeouts configuration object with the specification. Also submitted PR 493 to geckodriver with the corresponding changes there.


Reviewed 4756 which changes a lot of things in the WebDriver WPT tests.

Reviewed PR 714, PR 754, PR 811, PR 814, and PR 809 to the WebDriver specification.

Rebased PR 493 to geckodriver about implementing a spec-conforming Get Timeouts command.

Released webdriver-rust 0.21.0.

Filed issue 495 about the geckodriver builds being broken on Linux x86 + musl.


Reviewed PR 73 to webdriver-rust.


Reviewed PR 74 to webdriver-rust, which wraps the error object in a {value: …} field, since this is what the specification appears to want.

Reviewed PR 9 to wdclient.

Pushed some fixes of wdclient directly to the repository. Also submitted PR 10 and PR 11 to return the response body unaltered.

Reviewed PR 75 to webdriver-rust.

Commented on issue 497 to geckodriver about the allegedly missing field marionetteProtocol.

Reviewed PR 498 to geckodriver, which upgrades the webdriver-rust dependency.

Reviewed PR 5022, PR 5023, and PR 5024 to WPT.

Closed issue 496 to geckodriver as a duplicate of PR 440.

Rebased and fixed test failures with bug 1342162 to align pageLoad duration key name with the WebDriver specification in Marionette.

Requested uplift of bug 1337133:


Commented on issue 496 in geckodriver.

Reviewed bug 1322383.

Requested uplift to Aurora and Beta of bug 1342162.

Responded to review comments in PR 11 to wdclient.

Reviewed PR 820 to the WebDriver specification.

Commented on issue 97 to geckodriver.

Assigned issue 71 about pointer move origin support in webdriver-rust to maja_zf.

Rebased and added assertions to bug 1340775.

Reviewed bug 1322383.

Fixed review comments with bug 1333014.

Rebased and addressed review comments with bug 1337743.

Closed issue 502 to geckodriver.