New issue
Advanced search Search tips

Issue 709437 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Task

Blocking:
issue 613662
issue 849544
issue 870301



Sign in to add a comment

Move SVG relative length handling to the layout tree

Project Member Reported by f...@opera.com, Apr 7 2017

Issue description

Tracking and invalidation of relative lengths is largely (but not entirely) managed via the DOM structure (SVGElement::m_elementsWithRelativeLengths and associated methods.) Tracking however seems better suited for the layout tree, since during layout we need to check geometry properties et.c to determine layout properties (and also traverse the containers.) Invalidation could still be performed based on outer stimuli (although currently that's either done just before or during layout a bit depending.)
Tracking via the layout tree would probably require 1-2 bits of storage per relevant LayoutObject-subclass (tentatively: 1 bit for "leaves", maybe 2 bits for containers) compared to one HeapHashSet<...> per SVGElement. Some operation might be slower (invalidation traversal might require virtual dispatch), but tracking could piggyback on the regular layout traversal.

There's also some bugs here currently with that geometry properties are not tracked properly, like:

https://jsfiddle.net/e233tf4e/

which would hopefully be more straightforward to fix/handle if tracking via the layout tree.
 
Labels: PaintTeamTriaged-20170407 BugSource-Team

Comment 2 by f...@opera.com, Jun 5 2018

Blocking: 849544
Blocking: 870301
Blocking: 613662

Sign in to add a comment