[Webkit-unassigned] [Bug 74086] [chromium] Layer contents scale change should trigger invalidation

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Dec 8 12:09:29 PST 2011


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


James Robinson <jamesr at chromium.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #118384|review?                     |review+, commit-queue-
               Flag|                            |




--- Comment #5 from James Robinson <jamesr at chromium.org>  2011-12-08 12:09:29 PST ---
(From update of attachment 118384)
View in context: https://bugs.webkit.org/attachment.cgi?id=118384&action=review

Please fix the ChangeLogs + nits, otherwise R=me

> Source/WebCore/ChangeLog:10
> +        Change-Id: Ic824414f65c2214ab7bacbe50f909c4cbc9ab59d

I don't know where this comes from but it doesn't belong here.

>>>> Source/WebCore/platform/graphics/chromium/LayerChromium.cpp:428
>>>> +    if (!needsContentsScale() || m_contentsScale == contentsScale)
>>> 
>>> I don't understand how this interacts with the needsContentsScale() check.  Only ContentLayerChromium handles contents scale at this point.  Do we want to set the contents scale for any layer, even if it doesn't handle it?
>>> 
>>> What layer type are you trying to solve this for?
>> 
>> The contents scale should only be set for layers for which needsContentScale() is true. The check that I've added is intended to avoid unnecessary invalidation in the case that the contents scale did not actually change from its current value. I haven't checked whether that actually happens; this is just a precaution.
>> 
>> I'm seeing the problem of missed invalidations on non-root ContentLayerChromium instances. The root layer is properly invalidated through WebViewImpl::invalidateRootLayerRect() when the page scale changes.
> 
> Thanks for the explanation; this makes a lot more sense to me with that context.  :)

this feels a lot like an issue with our type system. We have functions on LayerChromium that should only ever be called on subclasses of LayerChromium, and we have this information available at the callsite.

Something to clean up later, methinks. This looks fine.

> Source/WebKit/chromium/ChangeLog:10
> +        Change-Id: Ic824414f65c2214ab7bacbe50f909c4cbc9ab59d

Same here

> Source/WebKit/chromium/tests/LayerChromiumTest.cpp:710
> +    bool needsContentsScale() const

this is virtual, please tag it as such here for clarity

-- 
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