Bug 135453

Summary: REGRESSION: Animations inside RTL multicolumn content is broken
Product: WebKit Reporter: Ryosuke Niwa <rniwa>
Component: Layout and RenderingAssignee: Nobody <webkit-unassigned>
Status: RESOLVED DUPLICATE    
Severity: Normal CC: abucur, dino, hyatt, koivisto, mihnea, simon.fraser
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Test case none

Description Ryosuke Niwa 2014-07-30 23:13:53 PDT
When a CSS animation is added to an element inside a RTL multicolumn content,
the accelerated layer is shown at a wrong location.
Comment 1 Ryosuke Niwa 2014-07-30 23:15:41 PDT
Created attachment 235809 [details]
Test case

See how "hello" moves between two locations but it shouldn't.
It should always show up on the right of "world".
Comment 2 Ryosuke Niwa 2014-07-30 23:22:20 PDT
This one appears to be caused by accumulateOffsetTowardsAncestor adding the offset in:

                RenderRegion* region = toRenderMultiColumnFlowThread(parentLayer->renderer()).physicalTranslationFromFlowToRegion(location);
                if (region)
                    location.moveBy(region->topLeftLocation() + -parentLayer->renderBox()->topLeftLocation());

Removing the last two lines here fixes the bug.

It's curious how RenderBoxModelObject::adjustedPositionRelativeToOffsetParent has a very similar code:

                    RenderRegion* region = toRenderMultiColumnFlowThread(curr)->physicalTranslationFromFlowToRegion(referencePoint);
                    if (region)
                        referencePoint.moveBy(region->topLeftLocation());
Comment 3 Simon Fraser (smfr) 2014-07-31 08:40:09 PDT
Isn't this just all RenderLayer content, even without animation? I thought you had an example with opacity.
Comment 4 Andrei Bucur 2014-07-31 09:32:50 PDT
This bug has the same cause as https://bugs.webkit.org/show_bug.cgi?id=135452.
Comment 5 Ryosuke Niwa 2014-07-31 19:22:47 PDT
Confirmed fixed with http://trac.webkit.org/changeset/171882.  Thanks!

*** This bug has been marked as a duplicate of bug 135452 ***