WebDriver/RemoteProtocol/Meetings/2019/12/06

From MozillaWiki
Jump to: navigation, search

… on St Nicolaus day! 🎅🏻

Agenda

Roster

Present

mmucci, whimboo, ato, maja_zf, AutomatedTester, digitarald

Regrets

Minutes

Schedule update (mmucci)

  • Status: Green - In Development and On Track.
  • Team has completed 85% of the entire MVP Backlog which is forecast to be completed on Dec 20.
  • In total, there are 2 bugs remaining in the MVP Backlog to be completed - 2 in development, 0 available for selection and 0 contingency.
  • Parallel development has begun on bugs from the Reserve Backlog - 6 in development, 24 available for selection and 4 completed.
  • No schedule risks present.
  • Next phase of the project will be planned on Dec 20.

2020 planning

Summary

  • Fission work helpful in many areas
    • High priority, blocks work on all APIs that somehow interact with content/subframes
  • Specification work
  • New APIs/backlog investigations
  • Puppeteer upstream work
    • Make a nicer user experience

How work can be shared:

  • ato: spec work, schema validation
  • whimboo: converting to JsWindowActors (“Fission”)
  • maja_zf: puppeteer package interaction with Firefox
  • all: continued work on high priority APIs

Time at all-hands will be focussed around Fission work.

Discussion

Most impactful:

  • Being able to download Firefox in puppeteer npm package (as part of installation, like Chrome)
  • High-value APIs, informed by feedback from users
  • Running Puppeteer unit tests against Firefox Nightly in CI
Fission (move to JsWindowActors)
  • Which events/methods are hindered by not using JsWindowActors?
    • Anything with frames, subframes
    • executionContextCreated only works on top-level doc, not subframes
    • Logs
  • Likely means major refactoring work
  • Doesn’t make sense to file specific bugs now, needs more planning/investigation first, we should be aware this is going to be a sizable chunk of our work next quarter
    • Only a few domains that are not affected (e.g. domains that only live in the parent process)
    • Known unknowns, unknown unknowns, &c.
    • digitarald: Puppeteer for chromium also broken for their site isolation? Are these issues just for Firefox?
      • Puppeteer papers over frame/browsing context tracking, there should be no difference for users between Chromium and Firefox in that respect
      • No upstream work needed in Puppeteer to support Fission
      • whimboo: Run Puppeteer unit tests with Fission in our CI to see differences
      • AutomatedTester: Definitely don't want to change an API to get Fission compatibility, this is something that should only happen in the background
  • Figure out what is not blocked by Fission so we can parallelize
  • Porting to JsWindowActors should be done progressively, not as one patch
    • Gradually hook up more domains to use JsWindowActors?
  • Prioritize team work on JsWindowActors in Berlin
Spec work + Schema validation
  • Do we get schema validation from rust-cdp working, do we do a new thing for WebDriver bi-di, or both?
  • We currently develop against the published API docs that are in sync with Chromium upstream and Puppeteer version used in Gutenberg
    • No guarantee that these are in sync and we predict there will be subtle differences
  • We ought to target a specific CDP version
    • This means importing the schema definition from a specific Chromium revision
Which APIs are highest priority off the top of your head?
  • Question: what do people want to use Puppeteer for? (AutomatedTester)
    • digitarald: screenshot diffs, visual regression analysis (came up twice); cross browser support (design system team at uber?) -- want to check that nothing breaks in foundational UI
    • whimboo: logging available from the browser
      • digitarald hasn't heard this
  • ato: more nuanced work left to do on logging (DevTools code for synthesizing info for logs is very complex and JsWindowActors useful here too)
  • ato: web scraping (which aligns well with screenshots), prerequisite is navigation (and therefore also blocked by Fission)
  • Not high priority but maybe jumping into DevTools debugger (see what Logmein people say in January)
  • AutomatedTester will talk to SauceLabs about other requirements from them beside logging
    • Generally useful to get debug logs from anyone who uses Puppetee so we can measure method frequency

Next meeting: Fission triage (what is blocked by Fission) and review updated 2020 planning document.

Keep track of easy things to work on in backlog for potential contributors. There is some low-hanging fruit in the Page domain, for example.

Using Puppeteer with Firefox

Harald asked if we need to coordinate with the Puppeteer maintainers about their upcoming release. Is it usable with Firefox Nightly currently?

  • It is likely a frustrating experience to use Puppeteer with Firefox right now because of a number of papercuts, missing APIs, and lack of site isolation support
  • David has asked the Chrome team to keep quiet about preliminary Firefox support in Puppeteer for now
  • This enables a soft-launch in early 2020, and we should evaluate next year what we can do to make the user experience better

Actions

  • ato: update the 2020 planning document based on priorities set out in this meeting
  • ato: file bug about running Puppeteer unit tests with Fission enabled

Recording

Status of Milestone 1

  • Last week: 75 Total; 50 Open (66.67%); 25 Resolved (33.33%); 0 Verified (0%);
  • This week: 78 Total; 48 Open (61.54%); 30 Resolved (38.46%); 0 Verified (0%);

Changelog

% git log --date=iso --pretty=format:'%ad%x09%H' -- remote/ | awk '$0 >= "2019-11-29" && $0 <= "2019-12-06"' | awk -F $'\t' '{print $2}' | xargs git show -s --format='%h%x09%an%x09%s'
a8efb7d11559    Andreas Tolfsen bug 1590828: remote: take appropriate action on errors during startup r=remote-protocol-reviewers,maja_zf,whimboo
d0a148d0b2b6    Andreas Tolfsen bug 1590828: remote: return NS exceptions from nsIRemoteAgent r=remote-protocol-reviewers,whimboo,maja_zf
45fbb433526f    Andreas Tolfsen bug 1600121: remote: rely on nsIHttpServer.registerPathHandler to assert path r=remote-protocol-reviewers,maja_zf,whimboo
71991bc4fa3f    Andreas Tolfsen bug 1600111: remote: make nsIRemoteAgent.listen() sync r=remote-protocol-reviewers,maja_zf
de2a8d45314a    Andreas Tolfsen bug 1600111: remote: make nsIRemoteAgent.close() sync r=remote-protocol-reviewers,whimboo,maja_zf
cbccda740167    Gurzau Raul     Backed out 2 changesets (bug 1600330) for failing at browser_agent.js on a CLOSED TREE.
f64a8f3a9d69    Andreas Tolfsen bug 1600330: remote: test nsIRemoteAgent r=remote-protocol-reviewers,maja_zf,whimboo
58baf702937f    Andreas Tolfsen bug 1600330: remote: add fail() browser-chrome test helper r=remote-protocol-reviewers,maja_zf
83bac17ec976    Andreas Tolfsen bug 1544393: remote: ship remote agent in Firefox Nightly r=remote-protocol-reviewers,whimboo,maja_zf
78f685ecd49c    Henrik Skupin   Bug 1600317 - [remote] Deny internal methods to be called. r=remote-protocol-reviewers,maja_zf

Work

Milestones
Development status of Puppeteer alpha
Puppeteer alpha dashboard
Bugzilla queries
All project work currently in development
Available MVP work
Completed MVP work
Bug overviews
Gutenberg dependency tree
Puppeteer examples dependency tree
Complete Puppeteer dependency tree
All ze boogs

PTO (🎄)

  • ato away Thursday 5th December