August 2015


Rebased some WebDriver PRs.


Rebased some more WebDriver PRs.


Submitted WebDriver PRs 157, 158, 159, and 160.

Also submitted PR 161 that optimises a match group in Is Element Selected.

Rebased PRs 140, and 154.

Submitted PRs 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, and 173 to WebDriver.


Submitted PRs 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, and 186 to WebDriver.


Submitted PRs 187, 188, 189, 190, 191, 192, and 193 to WebDriver.

Rebased PR 184.

Answered a needinfo request on bug 1188990.


Submitted PRs 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, and 208 to WebDriver.


Rebased some PRs to WebDriver.


Submitted PR 209 to WebDriver.


Provided some additional code review on bug 1191432.

Sorted out some issues with my own system. Also had meeting with mchen about hosting events.


Submitted PR 210 to WebDriver.


Provided some ideas on how to implement bug 905650.

Caught up on literature and feedback to various other Mozillians.

Reviewed r/5716 and r/5717.


Provided some additional information on bug 1191066, and feedback on bug 1159816.

Resolved some VPN issues.

Continued work on bug 1168396.

Rebased bug 1168396 and bug 1153822.


Work on bug 1168396 revealed a problem I’ve run into in the past. The Marionette Forms plugin ignores the error associated with finding an invalid element and assumes that the value returned must be an empty, non-existent Element reference type. We can work around this by returning when an error is encountered, or continue sending an empty element even when there is an error finding the element.

Fixing it allowed me to finally say backwards compatibility for the Marionette protocol version 1 has been added to the Marionette Node.js client. Now support for the Python client remains, as used out of the tree for the Firefox upgrade tests.

PR 30570 chronicles the struggles I’ve had with this patch. Mostly the problems have been to do with running tests locally and figuring out the exact right test setup. I’ve documented some of the things I’ve learned along the way elsewhere.

Started work on adapting the Python client to have backwards-compatible support for protocol version 1 in bug 1153822. I don’t expect this to be as much work as bug 1168396.


Sent email to the tools-marionette@ mailing list explaining a change to the deployment plan for bug 1153822 and bug 1168396. Due to the out-of-tree programs that depend on Marionette supporting n-1 versions of Firefox, I will need to split out the Python bindings patch and land this in four stages:

  1. Node.js bindings patch with backwards compatibility
  2. Python bindings patch with backwards compatibility
  3. Release new versions of the above, and upgrade pinnings
  4. Protocol changes

Since releasing new Python code at Mozilla can be quite tricky due to the special way we define versions in requirements.txt files, I will need to ask the help of someone who’s done this before.

Filed bug 1194968 about the Python changes.

Filed bug 1194986 about a visual issue with the hamburger menu in Firefox.


Started work on adding backwards-compatibility support to the Marionette Python bindings as part of bug 1194968. Ended up struggling with zombie process, probably left over from the dubious Gaia integration test process management.

Apparently clang-3.5 on Debian does not yet have the fix described in bug 1078370. Solution is to use clang-3.4 until clang-3.5 is updated to include the fix described in LLVM bug 20879.

Filed bug 1195440.

Attended monthly internal all-hands meeting.


Continued work on bug 1194968. Tests are passing locally, so pushed a try run.

Filed an issue with npmr that it fails to run on Debian.

Provided some feedback on bug 1194224 about adding Shadow DOM support to Marionette/WebDriver.

Filed bug 1195808 about a new search functionality for the the log viewer in Treeherder I’ve thought up.

Pushed patches for bug 1153822, bug 1168396, and bug 1194968 to review.


Reassigned the review for bug 1168396 to aus as gaye is going on PTO for a week.

Pushed bug 1194968 to inbound.

1:1 with dburns.

Wrote some simple unit tests for wires to learn a bit more Rust.


Submitted PR 12 to wires.

Submitted PR 14 to webdriver-rust to derive some Debug traits.

Rebased PR 201 in WebDriver.


Had to redirect review for bug 1197078 to dburns due to the insane review model Mozilla employs.

Reviewed r/2188.

Filed bug 1197130 as a tracker for converting listener commands to use the new dispatching technique.

Filed and patched bug 1197131, bug 1197133, bug 1197141, bug 1197143, and bug 1197146.

Submitted PR 212 to WebDriver.


Rebased and pushed bug 1197131, bug 1197133, bug 1197141, bug 1197143, and bug 1197146 to inbound.

Submitted PR 213 and PR 214 to WebDriver.

Reviewed rb/17015 which bumps Marionette Python libraries.


Submitted PRs 215 216, 217, 218, and 219 to WebDriver.

Landed the assorted listener dispatch patches from bug 1197146 by applying a bit of hg graft’ing.

Filed bug 1198279 about odd behaviour when highlighting all search results in Firefox.


1:1 with dburns.

Submitted PRs 220, 221, 222, 223, and 224 to WebDriver.

Decided to close PR 105 because Close Window now returns the set of window handles, which can be used by a local end to determine if the session was closed. This covers the most important use case.

Reviewed r/5755.

Filed bug 1199002, and duplicated bug 1190872 in favour of bug 1175116.

Reviewed rb/17337.

Started rewriting screen capture chapter in the WebDriver specification.


Rebased bug 1168396.

Addressed various issues in PRs to WebDriver.

Continued work on screen capture definition.


Submitted PRs 227 and 228 to WebDriver.


Reviewed r/5766.


WebDriver work: