[Webkit-unassigned] [Bug 130892] [CSS Blending] Isolation descendant dependent flags are not updated correctly

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Apr 3 03:43:10 PDT 2014


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





--- Comment #14 from Ion Rosca <rosca at adobe.com>  2014-04-03 03:43:27 PST ---
(From update of attachment 228385)
View in context: https://bugs.webkit.org/attachment.cgi?id=228385&action=review

>> Source/WebCore/rendering/RenderLayer.cpp:190
>> +    , m_hasUnisolatedBlendingDescendants(false)
> 
> With this patch, you have 2 flags tracking isolation: m_hasUnisolatedCompositedBlendingDescendants and m_hasUnisolatedBlendingDescendants. I suggest you should add some assertions checking that if the first is true the second should also be true.

I added an assert in RenderLayerCompositor::computeCompositingRequirements

>> Source/WebCore/rendering/RenderLayer.cpp:-825
>> -    if (isComposited())
> 
> Why did you remove this check?

The isolation flag should be correct for all layers regardless of their compositing state. Moreover, if updateAncestorChainHasBlendigDescendants() is called from styleChanged(), the compositing state might not be accurate, as it's going to be recalculated afterwards. (I added this info to ChangeLog).

>> Source/WebCore/rendering/RenderLayer.cpp:1099
>> +#endif
> 
> I would rewrite the code above to be wrapped in ENABLE(CSS_COMPOSITING):
> #if ENABLE(CSS_COMPOSITING)
> bool hasUnisolatedBlendingDescendants = false;
> #endif

Done.

>> Source/WebCore/rendering/RenderLayer.cpp:1145
>> +#endif
> 
> Can these lines be moved above, before:
> if (m_hasVisibleDescendant && m_hasSelfPaintingLayerDescendant && m_hasOutOfFlowPositionedDescendant && hasUnisolatedBlendingDescendants)
> 
> If so, in the if clause you can use the function you added instead of testing the variable hasUnisolatedBlendingDescendants.

I reworked this so that it matches the style the other flags are used, but using ifdefs.

>> Source/WebCore/rendering/RenderLayer.cpp:6432
>> +        if (isStackingContext && parent()) {
> 
> 1. When is parent() null here?
> 2. You can rewrite to smth like:
> if (parent()) {
>     if (isstackingContent) { ... }
>     else { ... }
> }

Done.

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