WebDriver/RemoteProtocol/Meetings/2019/12/06
From MozillaWiki
< WebDriver | RemoteProtocol | Meetings
… on St Nicolaus day! 🎅🏻
Contents
Agenda
- Schedule Update (mmucci)
- Q2 2020 planning
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
JsWindowActor
s (“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 JsWindowActor
s)
- Which events/methods are hindered by not using
JsWindowActor
s?- 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
JsWindowActor
s should be done progressively, not as one patch- Gradually hook up more domains to use
JsWindowActors
?
- Gradually hook up more domains to use
- 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