Changes between Version 3 and Version 4 of FiveYearPlan

Mar 12, 2015 2:54:29 PM (8 years ago)



  • FiveYearPlan

    v3 v4  
    3434* Could sites use progressive JPEGs?
    3535* Would like a way to opt-in to doing the image decoding on a background thread?
    36 * Perhaps a new <img> property that says "decode on background thread", and perhaps a way to be notified when decoding is complete.
     36* Perhaps a new <img> or <picture> element property:
     37   1. Causes us to decode on background thread".
     38   1. Notified when decoding is complete.
     39   1. Show a placeholder for the image and then trigger.
     40   1. Major point: Tell WebKit not to block main thread on decoding of this image.
     41* Might need a way to animate the pop-in of the decoded image to replace the placeholder.
     42* Many sites do this manually in JavaScript right now. Would be nice to codify these "hacks" in an official way.
    3844== Layout State Machine ==
    40 == Hackability ==
    41 * Renaming.
    43 == Text Measurement ==
     45Need stronger rules (assertions) about when we mark the tree as needing layout, or nodes as needing style recalculation.
     46Want to assert when hit tests or other things are triggered during layout.
     47Tasks would involve the following:
     48   1. FrameView and document updates to make these assertions.
     49   1. Correct the places where our tests cause assertions.
     50* This task would not be necessary with immutable render trees. This task might be a good step towards that goal.
     51* We have certain places where layout is done bottom up (e.g., MathML or some tables logic), which is extremely confusing because our normal CSS layout is top-down.
     52* In general, we should be using assertions to document these kinds of assumptions (or requirements) about the model state during layout or other operations.
     53* A precondition to this might be to address assertions in existing code; we have some assertions that fire in conditions that are valid.
     54* We should use asserts with messages.
    4556== Compositing ==
     57This will be discussed in a separate session.
    4658* Downstream
    4759* Incremental
     61== Hackability ==
     62There are some changes we could make to WebKit source code that would make development easier (and safer).
     63* One large benefit would be the the immutable render tree discussed above.
     64* Renaming
     65   1. RenderRegions rename to Fragment
     66* Try to find areas that are too complex;
     67   1. Elimination of continuations in render tree.
     68   1. Columns with spans
     69   1. Move line layout out of RenderBlock & RenderBlockFlow
     70   1. ScrollableArea and FrameView
    4972== Threading ==
    50 * Text measurement
     73Areas that could benefit by being spawned into separate work threads:
     741. Text measurement