Hi Yosi, On 20/12/13 02:37, Yoshifumi Inoue wrote:> I would like to provide render tree iterator base rendered position from > Render Tree for TextIterator, Selection, and others. TextIterator is the > first client of its.
Ok, I guess that it could be something similar to the RenderIterator that has been recently introduced in WebKit: http://trac.webkit.org/browser/trunk/Source/WebCore/rendering/RenderIterator.h > I'm not clear about traversing doesn't solve CSS region selection. Does > it come from current implementation? Or, is traversing wrong idea? What I mean is that regular traverse of the render tree won't fix selection issues in CSS Regoins (neither in absolute positions for example). Let me explain with a simple example: http://people.igalia.com/mrego/css/regions/example.html The Render tree is something like: RenderView RenderHTML RenderBody RenderBlock content-1 RenderRegion region-1 RenderBlock content-2 RenderFlowThread RenderBlock source-1 However visually you get something like: content-1 region-1 source-1 content-2 If you select from "content-1" to "content-2" and you traverse render tree, you won't process "source-1". So, we'd need some special conditions for CSS Regions in the RenderIterator, to jump to the RenderFlowThread subtree (and the other way around) when needed. I guess this is ok, as it's an implementation detail. > BTW, changing selection will be after TextIterator, because exposing > selected node to JavaScript needs new API, e.g. > Selection.getNodeSet(scope). So, it will come later. I agree that this will be after TextIterator, just trying to understand the whole picture. About changing the selection I'm thinking in RenderView::setSelection() method. This method should also use the RenderIterator instead of regular render tree traversing to fix the problem. BTW, where can I find information about that new API "Selection.getNodeSet(scope)"? It is not in the editing spec [1]. Thanks, Rego [1] https://dvcs.w3.org/hg/editing/raw-file/tip/editing.html#selection _______________________________________________ webkit-dev mailing list [email protected] https://lists.webkit.org/mailman/listinfo/webkit-dev

