May 2016


Followed up on landing bug 905650.

Published update on the WebDriver spec test harness.

Closed PR 2050 containing some WebDriver navigation tests for the old test framework in WPT.


1:1 with dburns.

Submitted PR 59 to the new geckodriver project to elaborate the README file.

Submitted PR 60 to geckodriver to update the Cargo.toml file to match realities of the new repository on Github.

Communicated with lbolstad, dbaron, and Sam Uong (Google) about support for the renewal of the Browser Tools- and Testing WG’s charter. Apparently W3C has this crazy rule that you need at least 5% feedback on questionnaires to be able to renew it. At the time of writing this, that equates to 21 votes.




Reviewed PR 187 which fixes a problem where timeouts were recognised as errors in wptrunner.

Reviewed PR 302 to add missing element location strategies to WebDriver.

Reviewed bug 1258316 that fixes window maximise behaviour in Marionette.

Reviewed bug 965308 that removes the b2g property from the session capabilities in Marionette.

Reviewed PR 188 that adds WebDriver specification test support to wptrunner for Servo.


Continued reviewing PR 188 to wptrunner.


Provided info on bug 1270799 about inability to switch to a frame in a chrome space application in B2G.

Address an issue with mochitest usage of __marionetteParams for bug 1123506. Triggered new try runs featuring all tests.

Filed bug 1271322 about not being able to autoland bug 1123506.

Landed bug 1123506 on inbound!


Confirmed that bug 1123506 works. I think the fallout that hskupin describes is related to setTimeout being called on the window chrome object, which may not support it.

Filed and patched bug 1271596 which removes some unused emulator-related functions from testing/marionette/listener.js.

Filed and patched bug 1271616 about moving BrowserObj into its own JS module.

Followed up on bug 1271294.

Filed and fixed bug 1271636 about clarifying language for error in GeckoDriver#setWindowSize.

Patched bug 945734, correcting error type for wrong screen orientation in Marionette.

Submitted PR 303 to the WebDriver specification about returning an error when attempting to delete a cookie that does not exist. This was part of following up on bug 1123847.

Performed some Marionette WebDriver compatibility bug triage.


Gave feedback on bug 1271758 which fixes a regression evaluating scripts in chrome context caused by bug 1123506.

There was a massive infrastructure outage with try yesterday, and I had to rebase and retrigger try runs for bug 1271636 and bug 945734.


Followed up on bug 1272118 which I think is caused by not forcing a clobber build when changing Mochitest’s __marionetteParams.

Provided some input on bug 1239552 where enabling the build option --enable-official-branding causes some listener commands to be called twice. This is a very odd one…

Provided input on bug 1272109 which is about a lot of tests getting disabled after bug 965308 removed the b2g capability.


Filed and patched bug 1272639 to remove some leftover debug statements.

Filed and patched bug 1272642 about fixing the fallout from the execute script tests that are not currently run on desktop. The problem is described in bug 1272109.

Filed and patched bug 1272653 to implement the Get Element Property command from WebDriver and adjust the Get Element Attribute command to match the algorithm in the spec.


Published a short document about evaluating scripts with side-effects in Marionette.


Reviewed bug 1273275 that changes the behavoiur of scrollIntoView for web elements in Marionette.

Worked on bug 1272653 to implement the Get Element Properties command and make Get Element Attribute spec compatible.

Attended Engineering Productivity fortnightly meeting. (A rare occurrence!)




Fixed a test failure in patch for bug 1271636 that corrects language in an error message related to the Set Window Size command.

Fixed a symbol error in bug 1272642 and pushed it to inbound.

Provided needinfo on bug 1270799.

Attended 1:1 with dburns.


Provided input on issue 62 in geckodriver with regards to the -foreground flag.

Filed bug 1274251 about providing a JSON serialisation for the Window object in Marionette, as the WebDriver spec now requires this.

Submitted PR 304 to WebDriver to refer to JSON serialisation/deserialisation in a uniform way.

Requested needinfo on bug 1274408 regarding removing emulator support from Marionette. I’m at this point in time not convinced this is a good idea. (Mainly because It’s so hard to add back in.)

Filed and patched bug 1274271 that removes an unused function applyNamedArgs from testing/marionette/evaluate.js.


Filed bug 1274550 about the Get Active Element command incorrectly returning the element’s associated web element reference (UUID) as a string instead of a web element object representation.

Continued work on bug 1274274 to decouple element retrieval methods from ElementManager in Marionette.

Filed bug 1274638 about providing a separate storage for browsers in Marionette.

Submitted patches for bug 1274274 about decoupling element retrieval functions, and a lot more stuff I discovered a long the way, from the element store in Marionette.

Reviewed bug 1274408 that removes emulator support from Marionette. I have mixed feelings about removing it, mostly I think because I have spent such an enormous amount of time getting it right. But it is not a sign of good programs to keep dead and unused code paths around. Still, I’d quite like to see us keeping the asynchronous primitives of the Marionette protocol (version 3).


Filed bug 1274761 about misalignment problem with the history dropdown button in the address bar on first launch of Firefox.


Patched bug 1274638 to store Window object references separately from seen elements in Marionette.

Fixed a problem in the patches for bug 1274274.

The test failures in the try run for bug j looks to mostly be fallouts from the backwards-incompatible change to the Get Element Attribute command. Fixed the tests. We’re going to worry about downstream (Selenium) compatibilty later. Most likely we will replicate existing behaviour using the new WebDriver primitives in the local end.

Reviewed bug 1272653 that adds capabilities support to the WebDriver Rust library.

Started work on bug 1274550 with associating tabmodal dialogues with the browser.

Started work on reviving PR 183 to wptrunner which aims at providing pristine WebDriver sessions.

Filed and patched bug 1275042 to return error messages and stacktraces as strings when they are undefined. This blocks WebDriver conformance.

Filed and patched bug 1275043 to return a "no such window" error when the listener cannot be reached in Marionette. This is meant as a stopgap solution to make it possible to work with the wdspec. The long-term solution would be to implement the tests for current top-level browsing context where the WebDriver specification says the tests should take place.

Submitted PR 64 to webdriver-rust to fix a typo in an error message.


Provided needinfo on bug 1275249.

Rebased, fixed code review issues, and landed bug 1272653, bug 1274638, bug 1275042, and bug 1275043.

Discussed with jgraham about how to get geckodriver onto try.

Patched bug 1275249 to fix test failures in the Firefox UI tests that are a fallout of the changes to attributes and properties stemming from bug 1272653.

Provided some input on bug 1272145 about moving the Firefox UI tests into the directories of their respective browser components.

Input on bug 1275243 about uploading screenshots when Marionette tests fails/errors.

Triaged bug 1274639.

Filed bug 1275270 regarding missing logging statements in testing/marionette/listener.js. This clearly needs more investigation.

Filed bug 1275273 to remove the atom.getElementAttribute Selenium atom from Marionette once bug 1272653 lands on central.

Provided input on bug 1275230 about enabling testing of the WebDriver specification in central, but more specifically about how we can integrate Cargo and build geckodriver inside central.

Worked on solving the remaining test failures in bug 1274274, that decouples the element retrieval methods from the ElementManager.

Fixed up PR 183 that adds functionality for returning the WebDriver session to a pristine environment state after each test function has been run.

Filed and fixed bug 1275311; another fallout from bug 1272653 I forgot to address earlier.


Submitted PR 3070 to WPT to remove a debug statement in the WebDriver navigation tests.

Fixed one more bug in the patch for bug 1274274, rebased and resolved conflicts.

Submitted PR 32 to webdriver-rust to remove an unused file.

Reviewed PR 65 to geckodriver that adds support for passing on arguments to the binary.

Addressed code review issues in PR 183 to return the WebDriver session to a pristine state in wptrunner.


Continued reviewing PR 65 to geckodriver.

Patched bug 1274550 that makes Get Active Element command in Marionette return a web element reference.

Reviewed bug 960931 that returns an error from Marionette when a session has already been started.

Attended monthly speaker’s series (cantina).


Spent most of the day working on bug 1274251, about providing a serialisation of Window objects. I tried to come up with a better architecture for dealing with browsing contexts, browser views (<browser> elements) and element retrieval.


Travel to New York for ACM Applicative.