RESOLVED FIXED 120769
[CSS Regions] Selection focusNode set to the "region" block, instead of the "source" block
https://bugs.webkit.org/show_bug.cgi?id=120769
Summary [CSS Regions] Selection focusNode set to the "region" block, instead of the "...
Javier Fernandez
Reported 2013-09-05 06:24:02 PDT
While selecting content inside a region block, the focusNode is being moved across the corresponding "source" block at the specific offset. Once the selection overflows the last Line Box element, the focusNode is set to the "region" block with offset 0. This is wrong since the "region" block has no children in the DOM Tree, hence no content can be retrieved from it. Besides, it does not follow the way regular blocks manage this situation, which keep the focusNode at the last children of the block with the maximum offset. I've verified that this bug comes from the missing specific CSSRegions implementation of the RenderBlock::positionForPoint method, which derives the logic to the RenderBox::positionForPoint method.
Attachments
Test to reproduce the issue. (3.27 KB, text/html)
2013-09-05 06:32 PDT, Javier Fernandez
no flags
WIP patch (no review needed) (1.71 KB, patch)
2013-09-05 10:02 PDT, Javier Fernandez
no flags
WIP patch - RenderRegion and RenderFlowThread positionForPoint implementation (5.16 KB, patch)
2013-09-12 09:19 PDT, Javier Fernandez
no flags
Special case in the RenderBlock::positionForPoint implementation for Region blocks. (14.91 KB, patch)
2013-09-25 05:15 PDT, Javier Fernandez
no flags
Patch (22.22 KB, patch)
2013-10-02 05:39 PDT, Javier Fernandez
no flags
Patch (22.39 KB, patch)
2013-10-04 14:51 PDT, Javier Fernandez
no flags
Patch (23.75 KB, patch)
2013-10-10 05:57 PDT, Javier Fernandez
no flags
Patch (23.84 KB, patch)
2013-10-14 10:14 PDT, Javier Fernandez
no flags
Patch (55.26 KB, patch)
2013-10-17 07:06 PDT, Javier Fernandez
no flags
Archive of layout-test-results from webkit-ews-13 for mac-mountainlion-wk2 (499.35 KB, application/zip)
2013-10-17 07:53 PDT, Build Bot
no flags
Archive of layout-test-results from webkit-ews-06 for mac-mountainlion (511.53 KB, application/zip)
2013-10-17 08:13 PDT, Build Bot
no flags
Archive of layout-test-results from webkit-ews-01 for mac-mountainlion (526.81 KB, application/zip)
2013-10-17 09:18 PDT, Build Bot
no flags
Patch (55.33 KB, patch)
2013-10-17 12:23 PDT, Javier Fernandez
no flags
Archive of layout-test-results from webkit-ews-14 for mac-mountainlion-wk2 (492.19 KB, application/zip)
2013-10-17 13:10 PDT, Build Bot
no flags
Archive of layout-test-results from webkit-ews-07 for mac-mountainlion (571.04 KB, application/zip)
2013-10-17 13:34 PDT, Build Bot
no flags
Patch (55.43 KB, patch)
2013-10-21 02:29 PDT, Javier Fernandez
no flags
Archive of layout-test-results from webkit-ews-12 for mac-mountainlion-wk2 (509.44 KB, application/zip)
2013-10-21 02:54 PDT, Build Bot
no flags
Archive of layout-test-results from webkit-ews-06 for mac-mountainlion (549.57 KB, application/zip)
2013-10-21 02:57 PDT, Build Bot
no flags
Patch (54.29 KB, patch)
2013-10-21 13:50 PDT, Javier Fernandez
no flags
Archive of layout-test-results from webkit-ews-09 for mac-mountainlion-wk2 (465.96 KB, application/zip)
2013-10-21 14:41 PDT, Build Bot
no flags
Archive of layout-test-results from webkit-ews-07 for mac-mountainlion (502.55 KB, application/zip)
2013-10-21 16:09 PDT, Build Bot
no flags
Archive of layout-test-results from webkit-ews-04 for mac-mountainlion (498.14 KB, application/zip)
2013-10-21 17:02 PDT, Build Bot
no flags
Patch (57.42 KB, patch)
2013-10-23 07:21 PDT, Javier Fernandez
no flags
Archive of layout-test-results from webkit-ews-09 for mac-mountainlion-wk2 (448.90 KB, application/zip)
2013-10-23 08:11 PDT, Build Bot
no flags
Archive of layout-test-results from webkit-ews-08 for mac-mountainlion (533.13 KB, application/zip)
2013-10-23 08:52 PDT, Build Bot
no flags
Patch (57.20 KB, patch)
2013-10-23 13:18 PDT, Javier Fernandez
no flags
Patch (56.88 KB, patch)
2013-10-23 13:30 PDT, Javier Fernandez
no flags
Patch (65.94 KB, patch)
2013-10-27 14:38 PDT, Javier Fernandez
no flags
Patch (66.14 KB, patch)
2013-10-30 02:08 PDT, Javier Fernandez
no flags
Patch (66.23 KB, patch)
2013-10-30 05:47 PDT, Javier Fernandez
no flags
Patch (67.46 KB, patch)
2013-11-11 01:52 PST, Javier Fernandez
no flags
Patch (67.46 KB, patch)
2013-11-11 07:09 PST, Javier Fernandez
no flags
Javier Fernandez
Comment 1 2013-09-05 06:32:53 PDT
Created attachment 210608 [details] Test to reproduce the issue.
Javier Fernandez
Comment 2 2013-09-05 10:02:34 PDT
Created attachment 210629 [details] WIP patch (no review needed) This patch solves most of the issues related to the positionForPoint implementation for CSS Regions. there are still some problems when selection overflows rightwards, causing the remaining lines to be selected. The patch uses the dom:Range defined for each RenderRegion instance. I was wondering whether it should be more elegant (not sure about efficiency yet) to determine the RenderBlock associated to the RenderRegion in the corresponding RenderFlowThred; hence, we could, I think, execute the rest of the code already implemented in the positionForPoint method. I mean, instead of getting the Position from the DOM nodes, using the lastRenderBox approach already implemented. If we prefer to go that way, the question is: is there any way to get the RenderBlock child in the corresponding RenderFlowThread, associated to a RenderRegion ? I saw there are Maps and List to implement the opposite association, determining the RenderRegion associated to a RenderBlock. Im thinking on implementing a new Map/List associating the RenderBlock to the corresponding RenderRegion; do you think it makes sense ?
Javier Fernandez
Comment 3 2013-09-12 09:19:11 PDT
Created attachment 211435 [details] WIP patch - RenderRegion and RenderFlowThread positionForPoint implementation This patch provides a different approach, avoiding accessing the DOM Ranges associated to each RenderRegion. The new idea is to map the RenderRegion point to the corresponding RenderFlowThread block.
Mihnea Ovidenie
Comment 4 2013-09-17 09:20:59 PDT
Comment on attachment 211435 [details] WIP patch - RenderRegion and RenderFlowThread positionForPoint implementation View in context: https://bugs.webkit.org/attachment.cgi?id=211435&action=review > Source/WebCore/rendering/RenderBlock.cpp:4483 > return createVisiblePosition(0, DOWNSTREAM); I would like to have someone with much more experience review the approach but i would also like to see a real patch, with layout tests and explanations. > Source/WebCore/rendering/RenderBlock.cpp:4486 > +static inline bool isChildHitTestCandidate(RenderBox* box, RenderRegion *region, const LayoutPoint& point) Why do you need to pass the region and the point here? Please note the the box may not always be a block, in which case you will hit a security assertion. Is the region check always required or only for the content that is inside the flow thread? > Source/WebCore/rendering/RenderRegion.cpp:66 > +bool RenderRegion::isChildHitTestCandidate(RenderBox* box, const LayoutPoint& point) The same function in RenderBlock is made static, basically the functions are the same. Again, the same observation about the cast from box to block. In fact, with the patch applied, it crashed my build. > Source/WebCore/rendering/RenderRegion.cpp:72 > +VisiblePosition RenderRegion::positionForPoint(const LayoutPoint& point) In the following patch, i would like to see a more detailed comment about what this function is trying to achieve, it will help review the approach/patch. > Source/WebCore/rendering/RenderRegion.cpp:75 > + if (thread->firstChild()) { What are you trying to test here? > Source/WebCore/rendering/RenderRegion.cpp:76 > + RenderBox* candidate = toRenderBlock(thread->firstChild())->lastChildBox(); Again, if the first child of the thread is a replaced element, the conversion to block fails.
Javier Fernandez
Comment 5 2013-09-17 14:38:14 PDT
(In reply to comment #4) > I would like to have someone with much more experience review the approach but i would also like to see a real patch, with layout tests and explanations. > Yes, of course. I'll provide that in the next patch. > > Source/WebCore/rendering/RenderBlock.cpp:4486 > > +static inline bool isChildHitTestCandidate(RenderBox* box, RenderRegion *region, const LayoutPoint& point) > > Why do you need to pass the region and the point here? Please note the the box may not always be a block, in which case you will hit a security assertion. Is the region check always required or only for the content that is inside the flow thread? The region argument is precisely the key of the solution; the idea is that last candidate box inside a flow thread should belong to the region associated to the point. Current algorithm would select always the flow thread's last box as candidate, even when selection range covers only the first region. The region check is only required for content inside the flow thread, yes. The positionForPoint is always called by the flow thread's first child, while point is in the text region boundaries; once leaving them, the RenderRegion block takes the control. This logic could have been implemented as a new special case in the RenderBlock class, but I thought overwriting the positionForPoint method would be clearer. I've already realized about the security assertions, indeed. I'll fix that. > > > Source/WebCore/rendering/RenderRegion.cpp:66 > > +bool RenderRegion::isChildHitTestCandidate(RenderBox* box, const LayoutPoint& point) > > The same function in RenderBlock is made static, basically the functions are the same. Again, the same observation about the cast from box to block. In fact, with the patch applied, it crashed my build. Yeah, the same check has to be made for both cases, flow thread and render region. In the later, I have to chose the box candidate compatible with the region instance. It could be static, of course. I also thought about exporting the RenderBlock method, but this approach looked like simpler. Again, very aware of the security assertions derived form the casts and working on it. > > > Source/WebCore/rendering/RenderRegion.cpp:72 > > +VisiblePosition RenderRegion::positionForPoint(const LayoutPoint& point) > > In the following patch, i would like to see a more detailed comment about what this function is trying to achieve, it will help review the approach/patch. I'll do. > > > Source/WebCore/rendering/RenderRegion.cpp:75 > > + if (thread->firstChild()) { > > What are you trying to test here? It crashed to me when using empty regions; perhaps there is a better way to check it out. Some tests failed, actually. > > > Source/WebCore/rendering/RenderRegion.cpp:76 > > + RenderBox* candidate = toRenderBlock(thread->firstChild())->lastChildBox(); > > Again, if the first child of the thread is a replaced element, the conversion to block fails. Yes. Thanks for the feedback, Ill provide a new patch soon.
Javier Fernandez
Comment 6 2013-09-25 05:15:31 PDT
Created attachment 212560 [details] Special case in the RenderBlock::positionForPoint implementation for Region blocks.
Mihnea Ovidenie
Comment 7 2013-09-27 08:00:29 PDT
Comment on attachment 212560 [details] Special case in the RenderBlock::positionForPoint implementation for Region blocks. View in context: https://bugs.webkit.org/attachment.cgi?id=212560&action=review > Source/WebCore/rendering/RenderBlock.cpp:4463 > + return isChildHitTestCandidate(box) && (region ? toRenderBlock(box)->regionAtBlockOffset(point.y()) == region : true); Is it safe here to convert a box to RenderBlock? It is not clear to me why. > Source/WebCore/rendering/RenderBlock.cpp:4482 > + if (isRenderRegion()) { Maybe you should you create a positionForPoint in RenderRegion so that you avoid casts etc. > Source/WebCore/rendering/RenderBlock.cpp:4485 > + LayoutPoint newPoint(0, point.y()); You need to explain what you are doing here. > Source/WebCore/rendering/RenderBlock.cpp:4493 > + return toRenderBlock(thread->firstChild())->positionForPoint(newPoint); Is it always safe to cast here? What happens if the first child is not a block, for instance an image? Also, what happens if the flow thread has more than one child: <div style="-webkit-flow-into: flow"></div> <div style="-webkit-flow-into: flow"></div> > Source/WebCore/rendering/RenderBlock.cpp:4505 > + RenderRegion* region = regionAtBlockOffset(point.y()); Not a huge fan of changing the RenderBlock::positionForPoint method with regions specific code.
Javier Fernandez
Comment 8 2013-10-02 05:39:41 PDT
Darin Adler
Comment 9 2013-10-02 09:33:47 PDT
Comment on attachment 213166 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=213166&action=review Looks generally good. Some things that must be fixed before landing. Someone a bit more expert in rendering might have comments on the basic approach beyond what I have said here. > Source/WebCore/rendering/RenderBlock.cpp:4482 > +static inline bool isChildHitTestCandidate(RenderBox* box, RenderRegion *region, const LayoutPoint& point) The RenderBox* argument should be RenderBox&, since it’s never null. The RenderRegion* argument is formatted incorrectly. The * should be next to the type, not the argument name. > Source/WebCore/rendering/RenderBlock.cpp:4489 > + if (box->isRenderBlock()) > + inRegion = toRenderBlock(box)->regionAtBlockOffset(point.y()) == region; > + else > + inRegion = box->containingBlock()->regionAtBlockOffset(point.y()) == region; I think this is better: if (!isChildHitTestCandidate(box)) return false; if (!region) return true; RenderBlock& block = box.isRenderBlock() ? toRenderBlock(box) : *box.containingBlock(); return block.regionAtBlockOffset(point.y()) == region; For one thing, we save extra work when isChildHitTestCandidate is false. > Source/WebCore/rendering/RenderRegion.cpp:68 > + LayoutPoint newPoint(0, point.y()); The approach here of computing a point within the flow thread portion rect seems peculiar to me. > Source/WebCore/rendering/RenderRegion.cpp:69 > + if (point.y() > m_flowThreadPortionRect.height()) // hitting bottom margin, padding, border, ... No idea what these "…" mean. I don’t think these comments are helping much. > Source/WebCore/rendering/RenderRegion.cpp:70 > + newPoint.setY(m_flowThreadPortionRect.maxY() - 1); The - 1 here seems quite strange to me and points to the approach possibly being incorrect. I understand the desire to pass in a point "at the bottom", but keep in mind that with fractional positioning there could be a box that is less than 1 point thick and it also is not clear to me that hit testing is always about a 1x1 box with the point at the top left corner. > Source/WebCore/rendering/RenderRegion.cpp:71 > + else if (point.y() < 0) // hitting top margin, padding, border, ... Same thought here about the "…". > Source/WebCore/rendering/RenderRegion.cpp:76 > + if (m_flowThread->firstChild()) // checing out for empty region blocks No idea what "checing out" means. > Source/WebCore/rendering/RenderRegion.h:109 > + virtual VisiblePosition positionForPoint(const LayoutPoint&); Need to say OVERRIDE here. Also, is there a reason this needs to be public? If not, it should be private instead for now. > LayoutTests/fast/regions/position-for-point.html:94 > + clearSelection(); > + > + selectFromIdToPosition("word1", 100, 140); > + checkResult("result1", "word2", "5", "word1 inside region inside region inside region inside region word2"); > + > + clearSelection(); > + > + selectFromIdToPosition("word1", 100, 151); > + checkResult("result2", "word2", "5", "word1 inside region inside region inside region inside region word2"); > + > + clearSelection(); > + > + selectFromIdToPosition("word3", 100, 330); > + checkResult("result3", "word5", "0", "word5 inside region inside region inside region inside region word6 "); > + > + clearSelection(); > + > + selectFromIdToPosition("word5", 100, 440); > + checkResult("result4", "word6", "5", "word5 inside region inside region inside region inside region word6"); Do these five tests really cover all the branches in the new code?
Javier Fernandez
Comment 10 2013-10-02 15:24:31 PDT
I'll post a patch with all the suggested changes, but first of all it should be clarified whether the approach of using the flow thread rect is valid or not. (In reply to comment #9) > (From update of attachment 213166 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=213166&action=review > > > The approach here of computing a point within the flow thread portion rect seems peculiar to me. If I've understood it correctly, the m_flowThreadPortionRect describes the region in flow thread coordinates. My idea consists in mapping the RenderRegion point to flow thread coordinates to find out the block with the content rendered by that region. > > Source/WebCore/rendering/RenderRegion.cpp:70 > > + newPoint.setY(m_flowThreadPortionRect.maxY() - 1); > > The - 1 here seems quite strange to me and points to the approach possibly >being incorrect. I understand the desire to pass in a point "at the bottom", >but keep in mind that with fractional positioning there could be a box that >is less than 1 point thick and it also is not clear to me that hit testing is >always about a 1x1 box with the point at the top left corner. The idea here is that when the point is, for instance, at the region bottom margin, the VisiblePosition pointing to the bottom boundary in flow thread coordinates. The reason of the -1 is that this point will be used in the RenderBlock class to determine which Region the block is associated to. In order to do that, the regionAtBlockOffset method is called, which performs an inorder traversal search via the PODIntervalTree class. Setting just maxY() led to an incorrect region retrieved by the regionAtBlockOffset method. I also had doubts about this approach and shared your concerns of fractional positioning. I think I'll need to think more about this. > > > LayoutTests/fast/regions/position-for-point.html:94 > > + clearSelection(); > > + > > + selectFromIdToPosition("word1", 100, 140); > > + checkResult("result1", "word2", "5", "word1 inside region inside region inside region inside region word2"); This test will be handled by the RenderBlock class, since the area below the region content boxes (in case of regions before the last one) hit directy the Flow Thread block. The Region is only hit when reaching the border. Hence, this tests validates the new isChildHitTestCandidate function. > > + > > + clearSelection(); > > + > > + selectFromIdToPosition("word1", 100, 151); > > + checkResult("result2", "word2", "5", "word1 inside region inside region inside region inside region word2"); if (point.y() > m_flowThreadPortionRect.height()) // hitting bottom margin, padding, border. newPoint.setY(m_flowThreadPortionRect.maxY() - 1); > > + > > + clearSelection(); > > + > > + selectFromIdToPosition("word3", 100, 330); > > + checkResult("result3", "word5", "0", "word5 inside region inside region inside region inside region word6 "); else if (point.y() < 0) // hitting top margin, padding, border. newPoint.setY(m_flowThreadPortionRect.y()); > > + > > + clearSelection(); > > + > > + selectFromIdToPosition("word5", 100, 440); > > + checkResult("result4", "word6", "5", "word5 inside region inside region inside region inside region word6"); else // hitting region area (content boxes will be handled by RenderBlock class) newPoint.setY(point.y() + m_flowThreadPortionRect.y()); > > Do these five tests really cover all the branches in the new code? So, I think those four tests do cover all the branches. In addition, the 2 layout tests validate different branches of the already implemented RenderBlock::positionForPoint logic. In one of the tests, the -webkit-region-break-before style rule is used, while in the other one the Flow Thread block has got inline children.
Javier Fernandez
Comment 11 2013-10-04 14:51:27 PDT
Radu Stavila
Comment 12 2013-10-07 09:20:25 PDT
Comment on attachment 213166 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=213166&action=review >> Source/WebCore/rendering/RenderRegion.cpp:68 >> + LayoutPoint newPoint(0, point.y()); > > The approach here of computing a point within the flow thread portion rect seems peculiar to me. No point in initialising newPoint's y with point.y() since you're going to override it by calling newPoint.setY(...) in all cases. > Source/WebCore/rendering/RenderRegion.cpp:77 > + return toRenderBlock(m_flowThread->firstChild())->positionForPoint(newPoint); I think you should perform the firstChild() check before computing newPoint because you could end up computing it for nothing (since you're not using it if firstChild() == 0).
Radu Stavila
Comment 13 2013-10-07 09:24:32 PDT
Comment on attachment 213405 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=213405&action=review > Source/WebCore/rendering/RenderRegion.cpp:65 > + LayoutPoint newPoint(0, point.y()); No point in initialising newPoint's y with point.y() since you're going to override it by calling newPoint.setY(...) in all cases. > Source/WebCore/rendering/RenderRegion.cpp:66 > + if (point.y() > m_flowThreadPortionRect.height()) // hitting bottom margin, padding or border. Does this work well when the last region is overflowing downwards? > Source/WebCore/rendering/RenderRegion.cpp:68 > + else if (point.y() < 0) // hitting top margin, padding or border. Same question for regions overflowing upwards (for instance by setting a negative top-margin on the flowed content). > Source/WebCore/rendering/RenderRegion.cpp:73 > + if (m_flowThread->firstChild()) // checking for empty region blocks. I think you should perform the firstChild() check before computing newPoint because you could end up computing it for nothing (since you're not using it if firstChild() == 0).
Javier Fernandez
Comment 14 2013-10-10 05:57:24 PDT
Javier Fernandez
Comment 15 2013-10-14 10:14:03 PDT
Created attachment 214161 [details] Patch patch rebased and some changes on mapRegionPointIntoFlowThreadCoordinates function to consider the X coordinate as well.
Dave Hyatt
Comment 16 2013-10-14 11:02:33 PDT
Comment on attachment 214161 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=214161&action=review r- for the writing mode issues. I want a vertical writing mode test added for the next patch because of this. > Source/WebCore/rendering/RenderBlock.cpp:3644 > + const RenderBlock &block = box.isRenderBlock() ? toRenderBlock(box) : *box.containingBlock(); Surprised the style code didn't complain on this line. Move the & to be next to RenderBlock, i.e., const RenderBlock& block > Source/WebCore/rendering/RenderRegion.cpp:72 > + if (point.y() < 0) > + return LayoutPoint(0, m_flowThreadPortionRect.y()); Not writing-mode-aware. For vertical writing modes it is x you need to check. > Source/WebCore/rendering/RenderRegion.cpp:74 > + if (point.y() > m_flowThreadPortionRect.height()) { Same problem. > Source/WebCore/rendering/RenderRegion.cpp:82 > + return LayoutPoint(point.x(), point.y() + m_flowThreadPortionRect.y()); Same problem, etc. > Source/WebCore/rendering/RenderRegion.cpp:88 > + return RenderBlock::positionForPoint(point); Shouldn't this be RenderBlockFlow::positionForPoint?
Javier Fernandez
Comment 17 2013-10-17 07:06:47 PDT
Created attachment 214452 [details] Patch made the patch writing-mode aware and provided the corresponding Layout Tests.
Build Bot
Comment 18 2013-10-17 07:53:25 PDT
Comment on attachment 214452 [details] Patch Attachment 214452 [details] did not pass mac-wk2-ews (mac-wk2): Output: http://webkit-queues.appspot.com/results/4029008 New failing tests: fast/regions/selection/position-for-point-vert-lr.html fast/regions/selection/position-for-point-1-vert-lr.html fast/regions/selection/position-for-point-1-vert-rl.html fast/regions/selection/position-for-point-vert-rl.html fast/regions/selection/position-for-point.html fast/regions/selection/position-for-point-1.html
Build Bot
Comment 19 2013-10-17 07:53:27 PDT
Created attachment 214457 [details] Archive of layout-test-results from webkit-ews-13 for mac-mountainlion-wk2 The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews. Bot: webkit-ews-13 Port: mac-mountainlion-wk2 Platform: Mac OS X 10.8.5
Build Bot
Comment 20 2013-10-17 08:13:32 PDT
Comment on attachment 214452 [details] Patch Attachment 214452 [details] did not pass mac-ews (mac): Output: http://webkit-queues.appspot.com/results/4141013 New failing tests: fast/regions/selection/position-for-point-vert-lr.html fast/regions/selection/position-for-point-1-vert-lr.html fast/regions/selection/position-for-point-1-vert-rl.html fast/regions/selection/position-for-point-vert-rl.html fast/regions/selection/position-for-point.html fast/regions/selection/position-for-point-1.html
Build Bot
Comment 21 2013-10-17 08:13:35 PDT
Created attachment 214459 [details] Archive of layout-test-results from webkit-ews-06 for mac-mountainlion The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: webkit-ews-06 Port: mac-mountainlion Platform: Mac OS X 10.8.5
Build Bot
Comment 22 2013-10-17 09:18:47 PDT
Comment on attachment 214452 [details] Patch Attachment 214452 [details] did not pass mac-ews (mac): Output: http://webkit-queues.appspot.com/results/4029027 New failing tests: fast/regions/selection/position-for-point-vert-lr.html fast/regions/selection/position-for-point-1-vert-lr.html fast/regions/selection/position-for-point-1-vert-rl.html fast/regions/selection/position-for-point-vert-rl.html fast/regions/selection/position-for-point.html fast/regions/selection/position-for-point-1.html
Build Bot
Comment 23 2013-10-17 09:18:50 PDT
Created attachment 214461 [details] Archive of layout-test-results from webkit-ews-01 for mac-mountainlion The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: webkit-ews-01 Port: mac-mountainlion Platform: Mac OS X 10.8.5
Javier Fernandez
Comment 24 2013-10-17 12:23:25 PDT
Created attachment 214485 [details] Patch Removing font description from both tests which were passing before adding the writing-mode awareness logic.
Build Bot
Comment 25 2013-10-17 13:10:48 PDT
Comment on attachment 214485 [details] Patch Attachment 214485 [details] did not pass mac-wk2-ews (mac-wk2): Output: http://webkit-queues.appspot.com/results/3575070 New failing tests: fast/regions/selection/position-for-point-vert-lr.html fast/regions/selection/position-for-point-1-vert-lr.html fast/regions/selection/position-for-point-1-vert-rl.html fast/regions/selection/position-for-point-vert-rl.html fast/regions/selection/position-for-point.html fast/regions/selection/position-for-point-1.html
Build Bot
Comment 26 2013-10-17 13:10:50 PDT
Created attachment 214495 [details] Archive of layout-test-results from webkit-ews-14 for mac-mountainlion-wk2 The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews. Bot: webkit-ews-14 Port: mac-mountainlion-wk2 Platform: Mac OS X 10.8.5
Build Bot
Comment 27 2013-10-17 13:33:59 PDT
Comment on attachment 214485 [details] Patch Attachment 214485 [details] did not pass mac-ews (mac): Output: http://webkit-queues.appspot.com/results/3321307 New failing tests: fast/regions/selection/position-for-point-vert-lr.html fast/regions/selection/position-for-point-1-vert-lr.html fast/regions/selection/position-for-point-1-vert-rl.html fast/regions/selection/position-for-point-vert-rl.html fast/regions/selection/position-for-point.html fast/regions/selection/position-for-point-1.html
Build Bot
Comment 28 2013-10-17 13:34:02 PDT
Created attachment 214500 [details] Archive of layout-test-results from webkit-ews-07 for mac-mountainlion The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: webkit-ews-07 Port: mac-mountainlion Platform: Mac OS X 10.8.5
Javier Fernandez
Comment 29 2013-10-21 02:29:13 PDT
Created attachment 214719 [details] Patch Besides writing-mode awareness logic, mapRegionPointIntoFlowThreadCoordinates uses now '>=' to detect the region's bottom margin.
Build Bot
Comment 30 2013-10-21 02:54:42 PDT
Comment on attachment 214719 [details] Patch Attachment 214719 [details] did not pass mac-wk2-ews (mac-wk2): Output: http://webkit-queues.appspot.com/results/8528020 New failing tests: fast/regions/selection/position-for-point-1-vert-lr.html fast/regions/selection/position-for-point-vert-rl.html fast/regions/selection/position-for-point-1-vert-rl.html fast/regions/selection/position-for-point-vert-lr.html
Build Bot
Comment 31 2013-10-21 02:54:46 PDT
Created attachment 214721 [details] Archive of layout-test-results from webkit-ews-12 for mac-mountainlion-wk2 The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews. Bot: webkit-ews-12 Port: mac-mountainlion-wk2 Platform: Mac OS X 10.8.5
Build Bot
Comment 32 2013-10-21 02:57:33 PDT
Comment on attachment 214719 [details] Patch Attachment 214719 [details] did not pass mac-ews (mac): Output: http://webkit-queues.appspot.com/results/8448023 New failing tests: fast/regions/selection/position-for-point-1-vert-lr.html fast/regions/selection/position-for-point-vert-rl.html fast/regions/selection/position-for-point-1-vert-rl.html fast/regions/selection/position-for-point-vert-lr.html
Build Bot
Comment 33 2013-10-21 02:57:36 PDT
Created attachment 214722 [details] Archive of layout-test-results from webkit-ews-06 for mac-mountainlion The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: webkit-ews-06 Port: mac-mountainlion Platform: Mac OS X 10.8.5
Javier Fernandez
Comment 34 2013-10-21 13:50:52 PDT
Created attachment 214775 [details] Patch Besides writing-mode awareness logic, adapting the algorithm to the new RenderNamedFlowFragment class.
Build Bot
Comment 35 2013-10-21 14:41:20 PDT
Comment on attachment 214775 [details] Patch Attachment 214775 [details] did not pass mac-wk2-ews (mac-wk2): Output: http://webkit-queues.appspot.com/results/8878134 New failing tests: fast/regions/selection/position-for-point-1-vert-lr.html fast/regions/selection/position-for-point-vert-rl.html fast/regions/selection/position-for-point-1-vert-rl.html fast/regions/selection/position-for-point-vert-lr.html
Build Bot
Comment 36 2013-10-21 14:41:23 PDT
Created attachment 214780 [details] Archive of layout-test-results from webkit-ews-09 for mac-mountainlion-wk2 The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews. Bot: webkit-ews-09 Port: mac-mountainlion-wk2 Platform: Mac OS X 10.8.5
Build Bot
Comment 37 2013-10-21 16:09:19 PDT
Comment on attachment 214775 [details] Patch Attachment 214775 [details] did not pass mac-ews (mac): Output: http://webkit-queues.appspot.com/results/8878152 New failing tests: fast/regions/selection/position-for-point-1-vert-lr.html fast/regions/selection/position-for-point-vert-rl.html fast/regions/selection/position-for-point-1-vert-rl.html fast/regions/selection/position-for-point-vert-lr.html
Build Bot
Comment 38 2013-10-21 16:09:23 PDT
Created attachment 214787 [details] Archive of layout-test-results from webkit-ews-07 for mac-mountainlion The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: webkit-ews-07 Port: mac-mountainlion Platform: Mac OS X 10.8.5
Build Bot
Comment 39 2013-10-21 17:02:03 PDT
Comment on attachment 214775 [details] Patch Attachment 214775 [details] did not pass mac-ews (mac): Output: http://webkit-queues.appspot.com/results/8798143 New failing tests: fast/regions/selection/position-for-point-1-vert-lr.html fast/regions/selection/position-for-point-vert-rl.html fast/regions/selection/position-for-point-1-vert-rl.html fast/regions/selection/position-for-point-vert-lr.html
Build Bot
Comment 40 2013-10-21 17:02:07 PDT
Created attachment 214796 [details] Archive of layout-test-results from webkit-ews-04 for mac-mountainlion The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: webkit-ews-04 Port: mac-mountainlion Platform: Mac OS X 10.8.5
Javier Fernandez
Comment 41 2013-10-23 07:21:40 PDT
Created attachment 214956 [details] Patch Adjusting the vertical tests to make them fit into the DRT window.
Build Bot
Comment 42 2013-10-23 08:10:56 PDT
Comment on attachment 214956 [details] Patch Attachment 214956 [details] did not pass mac-wk2-ews (mac-wk2): Output: http://webkit-queues.appspot.com/results/6078062 New failing tests: fast/regions/selection/position-for-point-1-vert-lr.html fast/regions/selection/position-for-point-1-vert-rl.html
Build Bot
Comment 43 2013-10-23 08:11:00 PDT
Created attachment 214964 [details] Archive of layout-test-results from webkit-ews-09 for mac-mountainlion-wk2 The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews. Bot: webkit-ews-09 Port: mac-mountainlion-wk2 Platform: Mac OS X 10.8.5
Build Bot
Comment 44 2013-10-23 08:52:22 PDT
Comment on attachment 214956 [details] Patch Attachment 214956 [details] did not pass mac-ews (mac): Output: http://webkit-queues.appspot.com/results/9968005 New failing tests: fast/regions/selection/position-for-point-1-vert-lr.html fast/regions/selection/position-for-point-1-vert-rl.html
Build Bot
Comment 45 2013-10-23 08:52:26 PDT
Created attachment 214968 [details] Archive of layout-test-results from webkit-ews-08 for mac-mountainlion The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: webkit-ews-08 Port: mac-mountainlion Platform: Mac OS X 10.8.5
Javier Fernandez
Comment 46 2013-10-23 13:18:22 PDT
Created attachment 214987 [details] Patch Adjusting the vertical tests to make them fit into the DRT window.
Javier Fernandez
Comment 47 2013-10-23 13:30:14 PDT
Created attachment 214988 [details] Patch Adjusting the vertical tests to make them fit into the DRT window.
Javier Fernandez
Comment 48 2013-10-27 14:38:18 PDT
Created attachment 215277 [details] Patch Considering the X coordinate too.
Javier Fernandez
Comment 49 2013-10-30 02:08:16 PDT
Created attachment 215484 [details] Patch RenderRegion::positionForPoint with public visibility in order to use renderNamedFlowFragment() instead of the generic firstChild().
Javier Fernandez
Comment 50 2013-10-30 05:47:49 PDT
Created attachment 215498 [details] Patch Patch rebased.
Dave Hyatt
Comment 51 2013-11-07 09:36:51 PST
Comment on attachment 215498 [details] Patch r=me. Don't much like this bit though: if (isRenderNamedFlowFragmentContainer()) toRenderBlockFlow(this)->renderNamedFlowFragment()->positionForPoint(point); Can't just subclass positionForPoint?
Javier Fernandez
Comment 52 2013-11-08 07:45:02 PST
(In reply to comment #51) > (From update of attachment 215498 [details]) > r=me. > > Don't much like this bit though: > > if (isRenderNamedFlowFragmentContainer()) > toRenderBlockFlow(this)->renderNamedFlowFragment()->positionForPoint(point); > > Can't just subclass positionForPoint? Yes, Ill define RenderBlockFlow::positionForPoint(), which just redirects the call to the associated RenderNamedFlowFragment instance.
Javier Fernandez
Comment 53 2013-11-11 01:52:19 PST
Created attachment 216553 [details] Patch Added RenderBlockFlow::positionForPoint as requested in the last review.
EFL EWS Bot
Comment 54 2013-11-11 02:25:26 PST
Javier Fernandez
Comment 55 2013-11-11 07:09:38 PST
Created attachment 216569 [details] Patch Added RenderBlockFlow::positionForPoint as requested in the last review.
WebKit Commit Bot
Comment 56 2013-11-11 10:18:59 PST
Comment on attachment 216569 [details] Patch Clearing flags on attachment: 216569 Committed r159057: <http://trac.webkit.org/changeset/159057>
WebKit Commit Bot
Comment 57 2013-11-11 10:19:06 PST
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.