W3C

- DRAFT -

WebPerf WG F2F Meeting

20 Jun 2017

Agenda: https://docs.google.com/document/d/1fcWpKZhJdrmBlpYUB2wIx42svo9zqojoJMZg8aY7E7Y/edit

See also: Notes on Google Doc

Attendees

Present
igrigorik, shubhie, Todd, Yoav, Phil, Harald, Nic, Benoit, xiaoqian, Colin, Ryosuke, Charles
Regrets
Chair
igrigorik, Todd
Scribe
igrigorik, Yoav

Contents


Intros

Yoav: working on RUM APIs to enable optimization features

Todd: Understanding ergonomics

Phil: RUM

Shubhie: Building blocks
... Desktop memory

Harald: Quantum: servo/rust → gecko, with target to optimize perceived performance
... Long Task API

Nic: PerfObserver, Resource Timing

Benoit: Sharing opportunities that we see @ FB

Ryosuke: Finalizing issues in RT and NT issues + tests
... Future: Paint Timing API

Charles: Getting Server-Timing + PerfObserver

Progress since TPAC 2016

igrigorik: [A very brief kick-off deck].

igrigorik: [TPAC 2016 review].

PerformanceObserver

Developer friendliness

Q: How do we motivate developers to use PerformanceObserver?

Nic: New specs are moving towards performanceobserver.

Ryosuke: let’s work on a coherent strategy across specs

Buffers, buffers everywhere

Q: Should we increase individual buffers?

Goal
Proposal

Iframes + PerfObserver

Nic: With RT we crawl all the iframes and harvest all the data
... - with PO we have to crawl all the observers
... - third party scripts can create same-origin iframes

Ryosuke: in MutationObserver we have subtree monitoring

Todd: all same-origin iframes are observed to the observer
... - Subtree?

Complications
Proposal -- feature request.

Linking entries -- e.g. Resource Timing and Server Timing

Q1: Linking to ResourceTiming

Q2: Should we be linking Fetch and RT L3 entries?

Charles: There is no way to link ST and RT reliably
... RT resources with same name (existing paint point)
... ST events emitted separately, hard to link

We can merge related entries where it makes sense

We can look for a more generic solution?

Guidance
If it’s meaningful to observe entries separately..
Keep them separate but provide an ID to link the entries.
Otherwise, hang it off the parent entry...
Child shouldn’t block creation of the parent
Proposal
Add a hook in ResourceTiming
Server Timing spec populates fields on the RT object
Update ST to populate an array of ST entries on RT

Element Timing API

Need to make sure we’re not exposing any new privacy/security vectors

Double-rAF as a baseline

Start with some simple use cases --

Change strategy?

Start by defining behavior and restrictions for particular types
img, video, fonts, etc.

Lifecycle API

Memory pressure

Ryosuke: MP is of interest, we just recently added 4GB memory limit to each web content process (~equivalent to Chrome renderer process)

Shubhie: Unclear if it was targeted at foreground or background?
... There is desire for signals for telemetry..
... - Instead of dynamic (e.g. purge memory), perhaps the outcome is a change in the app for all users

Ryosuke: we are still interested in Memory Pressure, unsure about revealing memory size

Todd: we were thinking of a simple model: 1GB == medium, 2GB == … 4GB = kill

Shubhie: what do we expect sites to do with this signal?

Todd / Ryosuke: All browsers have a stick (2GB/4GB) engine

Todd: My model is “hold this tab accountable for own limits - e.g. you’re using >1GB”
... That would accommodate the “leak detection” use case
... Proposal:
... - Per tab: low, medium, high
... -- Low ~ 50% of the limit on the content process
... -- Medium ~75% of the limit …
... -- High ~90% …

Shubhie: What about OOM reporting?

Todd: use Reporting API to deliver OOM reports?
... - Lack of implementation
... - Design a simple Javascript API

Use Cases

Event Timing

[Shubhie's Presentation]

Long Task

Shubhie: v2: want to make it measurement based
... - If the top level task takes >50ms
... -- If script tasks are running, note which doc frame they belong to, record
... * Name: self, same origin, ancestor, descendent
... * Attribute: [<TaskAttributionTiming>]
... ** Describes what’s happening within the task
... *** > 12ms

v2

Compression API?

[Yoav's Proposal] -- Motivation, use cases.

Prioritization: which items should we tackle as a group?

Q: which items should we tackle as a group?

Summary of Action Items

Summary of Resolutions

[End of minutes]

Minutes formatted by David Booth's scribe.perl version 1.152 (CVS log)
$Date: 2017/06/27 15:08:08 $