Blink‎ > ‎Layout Team‎ > ‎Layout Team Meeting Notes‎ > ‎

Wednesday, February 18, 2015

Attendees: benjhayden, cbiesinger, dsinclair, eae, jchaffraix, nduca, szager, skobes, slightlyoff, hartmanng

Status updates:

Performance Tracking (benjhayden)
- Finished profiling most of the key silk test cases on android, added
  more graphs and information to the profiling doc.
- Next up, classifying types of layout.

Scrolling (skobes) []
- Smooth scrolling enabledd for RenderLayerScrollableArea.
- Fixed position elements.

win_blink flakiness (dsinclair)
- win_blink_rel now among the better bots in terms of flakiness.
- Slowly re-enabling tests, monitoring flakiness.

Rename Rendering -> Layout [] (dsinclair)
- Trying to rename RendereBlock to LayoutBlock. Involves 30k files which
  rietveld does not like. Uploading for reviews cases the upload command
  to crash.

List markers (dsinclair)
- Trying to figure out how to deal with an ancestor being moved.

Measure API (jchaffraix)
- Working on a number of prototypes for measure  together with Ian
- github repo for prototypes. To allow layout callbacks a script
  execution context might be needed. Runs js in snadbox since we cannot
  modify the DOM. Would not have even read-only access to the DOM.
  Needs to be able to access render tree in a safe way.
- Defining an API for the render tree, houdini style.
- slightlyoff would prefer to not add a new execution context that is
  not workers. jchaffraix and slightlyoff to talk offline.

Line Boxes (hartmanng, szager) []
- No real progress last week. Blocked on higher priority work to fix
  high profile regressions.

Flexbox (cbiesinger) []
- Working on updating flexbox implementation to match latest spec

Text  (kojii, eae)
- Made RenderCombinedText less obstructive. 4 if-RenderCombinedText
  removed, 1 moved to less frequent path. (kojii)
- Worked with dominik.rottsches to make vertical flow performance
  test. (kojii)
- Started analyzing complex path performance. It looks like
  characteristics varies by scripts and values of properties. I'll look
  into CJK vertical flow first. (kojii)
- Fixed two text regressions on Mac causing incorrect rendering and/or a
  render crash (due to an ASSERT). Required a Harfbuzz change and roll.
  (eae, behdad)
- Added support for emoticons and emoji on Windows. (eae)

Line layout (szager)
- Fixed bug where shrink-wrapping of some content failed on Facebook,
  caused by imprecision in LayoutUnit to floating point conversions.
  Writing a test for this was tricky as layout tests run without
  subpixel text on most platforms. (szager)

Going over the list of OKRs and discussing each one:

[ Have telemetry benchmark suite running key_silk_cases monitoring layout times with less than 1% variation between runs. ]
[ Add 3 real-world pages with lots of layout to key_silk_cases. At least two of which are mobile oriented. ]
<benjhayden> A couple of cases with large variance, most have low variance.
<benjhayden> Layout measurement should fix this in most cases. Some tests have a bi-modal behavior, triggering an extra layout in some cases.
<nduca> We want a link on the layout team site to a set of graphs by the end of the quarter.
<eae> So we're looking pretty good, do we think we can get there by the end of the quarter?
<benjhayden> Yes.
* on track *

[ Speed up some key_silk_cases tests. ]
<eae> We've made a number of small improvements to complex text performance and have ongoing work that should result in a 10% improvement.
<eae> Any other ongoing performance work?
* at risk *

[ Create a Measure API prototype and write-up of lessons learned. ]
<jchaffraix> On second or third prototype, have a better understanding since the Sydney convergence.
<jchaffraix> Github repo with prototype, working on write-up.
* on track *

[ Support natural layout animations (subpixel layout during animation) ]
<eae> No real progress, have rough proof of concept prototype but nothing concrete.
<eae> Might miss.
<nduca> Should be explicit if it wasn't a priority and what we did instead.
* at risk *

[ Finish root layer scrolling. ]
<skobes> Making progress, fixing issues as discovered.
<skobes> Handful of hard problems, some risk of slipping into Q2.
* on track *

[ Move line layout to LayoutUnit. ]
<hartmanng> Distracted by P1 bugs, have made some progress.
<hartmanng> Complications with full-page zoom implementation.
<hartmanng> Should be possible if we get time to work on it.
<szager> Agreed.
* on track *

[ Triage all clusterfuzz asserts and fix 50% of them. [cbiesinger]
<cbiesinger> Starting to realize that 50% might have been a bit optimistic. Not all are reproducible.
<cbiesinger> Without minimized test cases it is really hard, given up on a subset of them (without test cases).
<eae> What would a realistic goal be for Q1?
<cbiesinger> Triaging all reproducible ones and fixing the ones with minimal test cases would be feasible.
* at risk *

[ Have bugs automatically filed for new clusterfuzz asserts. ]
<cbiesinger> Need to work with someone on the clusterfuzz team, should be easy.
* on-track *

[ Render tree modifications during layout. ]
<dsinclair> first-letter is stabilized, list-marker is a lot closer.
<dsinclair> One tricky outstanding issue regarding descendants (list-marker).
<jchaffraix> Full screen is a road block. Re-attach destroys renderer, restarts plugins. Currently we do no reattach. We need to add a hoisting mechanist to make it work. Prototype patch among those lines but it does break plugins. Needs more work and is complicated.
<jchaffraix> Have not had time to dig into it, need to fix path.
<dsinclair> single-item-menu won't be done this quarter.
<dsinclair> On track according to plan, decent amount of risk.
* on track *

High level discussion:
<dsinclair> Renaming rendering to layout has been sucking up a lot of time for everyone.
<eae> As has dealing with regressions and blocking bugs.
<nduca> Are we spending more or less time on work not captured in the OKRs than expected?
<eae> Was expecting about a 50%/50% split between OKR work and high-priority bug fixes. So for this quarter we've spent a bit more time on bugs/regressions than expected.
<nduca> For Q2 OKRs should capture that work.