WebDriver/RemoteProtocol/Meetings/2019/05/21

From MozillaWiki
Jump to: navigation, search

Agenda

  • Current work/coming up next
    • Puppeteer tests on try update (ato)
    • Gutenberg tests
      • puppeteer-firefox/juggler is having the following results:
        Tests: 129 failed, 4 skipped, 247 passed, 380 total
      • With all patches attached to the child of this meta bug), on mozilla-central, we get:
        Tests: 77 failed, 4 skipped, 299 passed, 380 total
      • This at least comes from fixes in key and mouse events.
      • List of all puppeteers methods to be implemented to Gutenberg
      • Similar list, but for all CDP methods/events.
      • Tasks left:
        • land various simple CDP method/events (Target.closeTarget, DOM.getContentQuads, ...). We mostly have to write unit tests.
        • Implement request interception to fix just a couple of tests (bug)
        • Implement dialog control methods (Page.handleJavaScriptDialog/Page.javascriptDialogOpening), used by a few tests (bug).
        • Support almost all key events, this is challenging! (bug)
  • Collaboration
  • Other announcements

Roster

Present
ato, mmucci, jdescottes, einbinder, andrey, yulia, AutomatedTester, past
Regrets
sole

Minutes

Current work/coming up next

Puppeteer tests on try update

  • Vendoring of Puppeteer npm package done
  • Can’t vendor its dependencies due to the large number of dependencies (~88M, >400M with Chrome)
  • mozharness generally a bit of a pain to deal with and wasted a lot of time on that
  • jgraham suggested to me to use a full source checkout, similarly to what we do for the Node.js-based linting task
    • Has the benefit that all we need is a mach command that runs the tests, since you will have access to mach through having a full source checkout

Gutenberg tests

  • We are slightly ahead of Juggler on passing the Gutenberg tests, and making good progress
  • puppeteer-firefox/juggler is having the following results: Tests: 129 failed, 4 skipped, 247 passed, 380 total
  • With all patches attached to the child of this meta bug), on mozilla-central, we get: Tests: 77 failed, 4 skipped, 299 passed, 380 total
  • There are a few edge cases that requires some workarounds
  • Alex has some work in progress patches, but they are completely missing tests
  • Looks like the Gutenberg tests depend on only a limited subset of Network domain events; not so much on instrumentation, just that events fire
  • Key events will take a lot of work
    • Shift + Click, Control + Shift + a key workarounds
    • The workarounds are not really satisfying, hoping to get some help from other Mozillians

Questions:

  • (einbinder) Could we get upstream tests to Puppeteer for the discrepancies?
    • (ochameau) there are some differences with special input keys [?]
  • (past) Experimental CDP methods?
    • (andrey) We cannot guarantee that the experimental bits are not stable yet and that they will continue changing
    • (ochameau) There are different levels of stability, I’ve noticed you don’t change core functionality that often
    • For example, Gutenberg doesn’t use lifecycle events
    • (ato) [something about real world tests]
      • (einbinder) This is true, for example what CDP methods the Puppeteer API uses can change and that is linked to a specific Chrome version

Resources:

Tasks left:

  • Land various simple CDP method/events (Target.closeTarget, DOM.getContentQuads, et al.)
  • We mostly have to write unit tests
  • Implement request interception to fix just a couple of tests (bug 1552326)
  • Implement dialog control methods (Page.handleJavaScriptDialog/Page.javascriptDialogOpening), used by a few tests (bug 1545724)
  • Support almost all key events, this is challenging! (bug 1543142)

Collaboration

  • (ato) What is your plan going forward in relationship to Juggler?
  • (andrey) Our priority is to gain Firefox support
    • We seem to have a different vision on the firefox-puppeteer npm package and managing
    • We don’t think you should implement experimental CDP methods in Firefox at all, it’s a dead end
    • For Puppeteer we will regardless end up needing a Firefox specific abstraction
    • For example the network code works differently in Chrome and Firefox, and I suspect you don’t want to change Firefox to match Chrome’s behaviour because that would be a hassle
    • Besides the Debugging and [inaudible] domains used by VSCode and a few other debugger tools, there’s not a single other tool out there in the wild that uses CDP so I’m not sure why you’re insisting on implementing CDP: we should instead all standardise on Puppeteer

Meeting time error

This meeting was scheduled for the wrong time slot. It should be one hour earlier.

Other announcements

We will continue the discussion on how to deal with rapidly changing experimental CDP APIs in a separate meeting on Thursday at 17:30 BST.

einbinder/andrey and ochameau will prepare proposals before then.

Changelog

% git log --date=iso --pretty=format:'%ad%x09%H' -- remote/ | awk '$0 >= "2019-05-14" && $0 <= "2019-05-21"' | awk -F $'\t' '{print $2}' | xargs git show -s --format='%h%x09%s'
7d2710f26f95    Bug 1549785 - Fix Remote object support for Node/Elements objects. r=remote-protocol-reviewers,ato
c2bdbe7ffd2e    Bug 1549785 - Implement Runtime.releaseObject. r=remote-protocol-reviewers,ato
5ca7ee561a46    Bug 1551689 - Print listener address with a new-line. r=remote-protocol-reviewers,ato
a0556ad84bff    Bug 1548102 - Coordinate Page.frameNavigated and Runtime.executionContextDestroyed/Created events. r=remote-protocol-reviewers,ato
8abd0aadefc1    Bug 1549384 - Implement Page.getFrameTree. 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 24 May
    • May 27–16 June
  • ato away Monday 27 May (Bank Holiday)