[Webkit-unassigned] [Bug 70103] [chromium] Implement position:fixed in compositor thread

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Oct 20 09:43:39 PDT 2011


https://bugs.webkit.org/show_bug.cgi?id=70103





--- Comment #11 from Hin-Chung Lam <hclam at google.com>  2011-10-20 09:43:39 PST ---
(In reply to comment #10)
> (From update of attachment 111788 [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=111788&action=review
> 
> > WebCore/platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:91
> > +    return getParentScrollDelta(layer->parent()) + layer->scrollDelta();
> 
> We should only be compensating for scrollDelta of the closest enclosing scrolling frame, not all of them.
> 
> > WebCore/platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:184
> > +        position += getParentScrollDelta(layer->parent());
> 
> I'm afraid I may have mislead you with my previous comments.  You'll need to first transform the frame's scroll delta to the layer's coordinate system before adjusting the position.  What you have here won't work if, for example, one of the ancestors of the fixed position layer is rotated.

I agree, that matches what I was expected too..

Actually I'm not so sure about separating the logic for transformation of position:fixed elements (i.e. walk up the tree and walk down again to recompute transformation with scroll). I worry that we'll have to duplicate the logic for transformation in two places.. note that calculateDrawTransformsAndVisibilityInternal has side effect and I don't think it's suitable for re-computation of transformation without scroll delta.

On the other hand, if we maintain a nonscrolled transformation, most of the time it'll just be a copy of the scrolled, so we can probably shortcut the extra matrix multiplications.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list