WebDriver/RemoteProtocol/Meetings/2019/07/23

From MozillaWiki
Jump to: navigation, search

Agenda

  • Brief update from security review meeting (ato)
  • Puppeteer client workarounds and changes (ato)
  • Gutenberg update (jdescottes)
  • Current work/coming up next
  • Other announcements?

Roster

Present
mmucci, jdescottes, ochameau, ato
Regrets
AutomatedTester

Minutes

Puppeteer client workarounds and changes

The extent of the changes we’ve made to the Puppeteer client so far are limited to the necessary workarounds for getting the tests barely running with Firefox. The changes are almost exclusively limited to the lib/Launcher.js file, which deals with finding the browser binary, profile/user-data-dir tweaks, and starting it as a subprocess.

Beyond this we’re expecting the Firefox CDP implementation not to diverge on the interface level from Chrome. For certain domains—such as console- and network logging—we may see the server return messages with varying content, but the interaction from the client’s point of view should remain 1:1 comparable with Chrome.

Maintaining a single client, with abstractions for Chrome’s and Firefox’ launcher code, would likely be beneficial. We may however have to maintain a fork of Puppeteer until we have something more tangible to upstream, since we don’t want to block upstream Puppeteer from releasing newer versions. We should however work in such a way that we maintain Chrome support in the fork, rather than replacing it.

Brief update from security review meeting

The security testing meeting went fine, and we answered some questions. Not heard back after this, but we expect sec-review to not be a problem.

Gutenberg progress

See spreadsheet for currently failing Gutenberg tests.

Many Gutenberg tests failing because of unexpected console logs. Unlike WebDriver, Puppeteer/CDP does not have classes or variant types of errors, which means tests typically rely on parsing the error message string.

Since we can’t change the messages for these errors without risking web compat problems for the web platform, we must find a way to work around this in order to pass more Gutenberg tests. One particular worry is that Gutenberg is not an isolated case, and that other test suites in the wild do the same thing.

Ideally, it was argued in the meeting, the different non-platform errors, for example from the CSS parser, would be uniquely identifiable and defined in a web standard. This would enable users of Puppeteer to work with console errors in a more reliable way across browsers. It is worth airing this idea with other vendors at a future point, but does not offer any practical, immediate solution.

Other alternatives are to hide messages on the server side, or the push the responsibility on to the test writer. The conclusion from the meeting was to do the latter, which likely means in this case that we will have to upstream some patches to the WordPress project to include a couple of Firefox-specifc error ignores in order for us to pass more tests.

Current work/coming up next

  • ato still working on fixing up Puppeteer-tests-on-try patches to address code review issues raised by build peers
  • ochameau has ceased work on the remote agent until new developers from Interop are joining, in order to maximise value of knowledge transfer
  • jdescottes has one patch that still needs review, dealing with JavaScript dialogues, but expects to transition now to work on Fission in DevTools

Changelog

a5bfdec7f135    Bug 1563690 - Make Target class save a list of Connection rather than Session. r=remote-protocol-reviewers,jdescottes
41ea918cba7b    Bug 1563689 - Release DOM event listeners set on top level windows. r=remote-protocol-reviewers,jdescottes
a2d64139bc3a    Bug 1563689 - Ensure removing listeners set by TabObserver. r=remote-protocol-reviewers,jdescottes
9ad3e9566815    Bug 1563689 - Revamp how targets are watched and reported. r=remote-protocol-reviewers,ato,jdescottes
750855e5306c    Bug 1562740 - Add test for race condition when using dispatchKeyEvent r=remote-protocol-reviewers,ato,ochameau
c197ac200e28    Bug 1562740 - Simplify dispatchKeyEvent test and stop waiting for content events in the test r=remote-protocol-reviewers,ochameau
2a4c52051dda    Bug 1562740 - Input:dispatchKeyEvent should wait for events in content process r=remote-protocol-reviewers,ochameau
ebfd74ef21a2    Bug 1562740 - Allow Domains managed by a TabSession to call executeInChild r=remote-protocol-reviewers,ochameau
99157498883c    Bug 1566182: Annotate mochitests that fail with Fission enabled. r=mccr8
a81691851fed    Bug 1544458 - Document the remote agent architecture. r=remote-protocol-reviewers,ato,jdescottes
b0534d7027da    Bug 1563692 - Move all CDP's JSON packet handling to Connection. r=remote-protocol-reviewers,jdescottes,ato
d8de74d62d0b    Bug 1563687 - Rename Targets.disconnect to destructor to better match project's conventions. r=remote-protocol-reviewers,jdescottes,ato
252c9480be43    Bug 1564360 - Ignore iframes for Page.frameNavigated r=remote-protocol-reviewers,ochameau
5cf550848175    Bug 1563685 - Rename WebSocketDebuggerTransport class to match its JSM file name. r=remote-protocol-reviewers,jdescottes,ato
588b98519ea0    Bug 1563685 - Rename WebSocket.jsm and drop unused accept method. r=remote-protocol-reviewers,jdescottes,ato
aee8bb4227e5    Backed out 2 changesets (bug 1563685) for causing bc perma failures in  browser/base/content/test/static/browser_all_files_referenced.js CLOSED TREE
8e6217eb2e00    Bug 1563685 - Rename WebSocketDebuggerTransport class to match its JSM file name. r=remote-protocol-reviewers,jdescottes,ato
2a0ba0745a2e    Bug 1563685 - Rename WebSocket.jsm and drop unused accept method. r=remote-protocol-reviewers,jdescottes,ato
2aac30d92a71    Bug 1563687 - Renamed ContentProcessSession.destroy to destructor in order to match this project's conventions. r=remote-protocol-reviewers,jdescottes
33c2ce668cf2    Bug 1563621 - Fix browser_main_target.js product assertion when running in headless mode: take new Prettier style into account. a=eslint-fix CLOSED TREE
4b0070ca6864    Bug 1563621 - Fix browser_main_target.js product assertion when running in headless mode r=remote-protocol-reviewers,ato
ac188018507a    Bug 1561435 - Format remote/, a=automatic-formatting
f75cc6ff012d    Bug 1560301 - Implement very minimal support of browser context. r=remote-protocol-reviewers,ato

Work

Current milestone
MVP dependency tree
General overview
Puppeteer dependency tree
All ze boogs
Velocity tracking
Project tracking dashboard
All project work currently in development
Available MVP project work
Completed MVP project work

PTO (☀️)

  • ochameau away Friday 26 July