Summary: | [CSSRegions] Compute region ranges for children of inline blocks | ||||||
---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Mihnea Ovidenie <mihnea> | ||||
Component: | CSS | Assignee: | Nobody <webkit-unassigned> | ||||
Status: | RESOLVED FIXED | ||||||
Severity: | Normal | CC: | commit-queue, esprehn+autocc, glenn, kondapallykalyan, WebkitBugTracker | ||||
Priority: | P2 | ||||||
Version: | 528+ (Nightly build) | ||||||
Hardware: | Unspecified | ||||||
OS: | Unspecified | ||||||
Bug Depends on: | |||||||
Bug Blocks: | 129478 | ||||||
Attachments: |
|
Description
Mihnea Ovidenie
2014-03-18 05:47:28 PDT
Created attachment 227044 [details]
Patch
Comment on attachment 227044 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=227044&action=review > Source/WebCore/rendering/RenderFlowThread.cpp:801 > + endRegion = startRegion; An unsplittable box should always have startRegion == endRegion. Shouldn't this line be an assertion instead? > Source/WebCore/rendering/RenderObject.cpp:529 > + if (flowThread && (flowThreadState() == flowThread->flowThreadState())) What's this change for? Comment on attachment 227044 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=227044&action=review >> Source/WebCore/rendering/RenderFlowThread.cpp:801 >> + endRegion = startRegion; > > An unsplittable box should always have startRegion == endRegion. Shouldn't this line be an assertion instead? Yes, you are right :) >> Source/WebCore/rendering/RenderObject.cpp:529 >> + if (flowThread && (flowThreadState() == flowThread->flowThreadState())) > > What's this change for? Assume you have a region-based multicolumn flow thread inside a named flow and you have the multi-column flow thread set as the current flow thread. Now suppose you want to compute borderBoxRectInRegion for the multicolumnflowthread and the region being the rendermulticolumnset. When you ask for containingBlock renderBoxRegionInfo, you go out of rendermulticolumnthread boundary and for these boxes, flowThreadContainingBlock() will return the wrong result. There are some possible solutions to this problem: * the check above, which ensures that when you are in the middle of layout and you cross the flow thread boundary, you still get the right result * add a check in RenderBox::renderBoxRegionInfo so that we return 0 if the flowThreadContainingBlock flowThreadState is different than the box flowThreadState Comment on attachment 227044 [details]
Patch
r=me
Comment on attachment 227044 [details] Patch Clearing flags on attachment: 227044 Committed r165890: <http://trac.webkit.org/changeset/165890> All reviewed patches have been landed. Closing bug. |