WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
117074
[CSS Regions] REGRESSION Incorrect layer clipping inside flow thread
https://bugs.webkit.org/show_bug.cgi?id=117074
Summary
[CSS Regions] REGRESSION Incorrect layer clipping inside flow thread
Andrei Bucur
Reported
2013-05-31 07:07:00 PDT
Created
attachment 203444
[details]
Test case fast/regions/overflow-size-change-with-stacking-context.html is failing for some time.
Attachments
Test case
(1.75 KB, text/html)
2013-05-31 07:07 PDT
,
Andrei Bucur
no flags
Details
Patch
(354.89 KB, patch)
2013-06-04 07:53 PDT
,
Mihnea Ovidenie
no flags
Details
Formatted Diff
Diff
Patch for landing
(355.86 KB, patch)
2013-06-05 01:02 PDT
,
Mihnea Ovidenie
no flags
Details
Formatted Diff
Diff
Show Obsolete
(1)
View All
Add attachment
proposed patch, testcase, etc.
Mihnea Ovidenie
Comment 1
2013-06-02 09:57:00 PDT
It fails from
https://bugs.webkit.org/show_bug.cgi?id=76486
because the clip rects get transformed in RenderView coordinates - through associated render regions - while the layer bounds are still in flow thread coordinates (the flow thread is the root layer). Because of that, the intersection between the layer bounds and the clip rects fails and the layer is not displayed.
Mihnea Ovidenie
Comment 2
2013-06-04 07:53:40 PDT
Created
attachment 203697
[details]
Patch
Dave Hyatt
Comment 3
2013-06-04 12:26:35 PDT
Comment on
attachment 203697
[details]
Patch r=me
Mihnea Ovidenie
Comment 4
2013-06-05 01:02:51 PDT
Created
attachment 203765
[details]
Patch for landing
WebKit Commit Bot
Comment 5
2013-06-05 01:19:47 PDT
Comment on
attachment 203765
[details]
Patch for landing Clearing flags on attachment: 203765 Committed
r151202
: <
http://trac.webkit.org/changeset/151202
>
WebKit Commit Bot
Comment 6
2013-06-05 01:19:51 PDT
All reviewed patches have been landed. Closing bug.
Alexandru Chiculita
Comment 7
2013-06-05 15:32:45 PDT
(In reply to
comment #6
)
> All reviewed patches have been landed. Closing bug.
It's better if you just moved this functionality to RenderFlowThread::mapLocalToContainer. That's for two reasons: 1) the RenderFlowThread check will only be hit when there's a RenderFlowThread object on the chain. 2) other non-RenderBox objects will benefit from that change. void RenderFlowThread::mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState& transformState, MapCoordinatesFlags mode, bool* wasFixed) const { if (repaintContainer == this) return; // Transform from render flow coordinates into region coordinates. if (RenderRegion* region = mapFromFlowToRegion(transformState)) static_cast<RenderObject*>(region)->mapLocalToContainer(region->containerForRepaint(), transformState, mode, wasFixed); }
Mihnea Ovidenie
Comment 8
2013-06-06 06:12:05 PDT
(In reply to
comment #7
)
> (In reply to
comment #6
) > > All reviewed patches have been landed. Closing bug. > > It's better if you just moved this functionality to > RenderFlowThread::mapLocalToContainer. > > That's for two reasons: > 1) the RenderFlowThread check will only be hit when there's a RenderFlowThread object > on the chain. > 2) other non-RenderBox objects will benefit from that change. > > void RenderFlowThread::mapLocalToContainer(const RenderLayerModelObject* > repaintContainer, TransformState& transformState, MapCoordinatesFlags mode, > bool* wasFixed) const > { > if (repaintContainer == this) > return; > > // Transform from render flow coordinates into region coordinates. > if (RenderRegion* region = mapFromFlowToRegion(transformState)) > > static_cast<RenderObject*>(region)->mapLocalToContainer(region->containerForRepaint(), > transformState, mode, wasFixed); > }
Ok, i will fix in
https://bugs.webkit.org/show_bug.cgi?id=117290
Mihai Maerean
Comment 9
2013-06-06 08:20:59 PDT
> void RenderFlowThread::mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState& transformState, MapCoordinatesFlags mode, bool* wasFixed) const > if (RenderRegion* region = mapFromFlowToRegion(transformState)) > static_cast<RenderObject*>(region)->mapLocalToContainer(region->containerForRepaint(), transformState, mode, wasFixed);
You need to either make RenderRegion::mapLocalToContainer public or make RenderFlowThread a friend class RenderRegion in order to call mapLocalToContainer from RenderFlowThread (instead of using static_cast to RenderObject).
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug