Hyatt told me that we also need to bidi enable the new outliner widget I believe the code is in ayout/xul/base/src/outliner/src/nsOutlinerBodyFrame.cpp especially 2089 aRenderingContext.DrawString(realText, textRect.x, textRect.y);
Switching qa contact to firstname.lastname@example.org.
simon: I believe we use nsOutlinerBodyFrame a lot. (for example, the URL auto complete), can you fix this one?
I'm concerned about the need to iterate over the characters every time to determine whether or not bidi is enabled. It also seems that once you've determined whether or not bidi is enabled for a given outliner, you don't need to keep checking the characters of the cell text. Perhaps the question of whether or not Bidi is enabled should be answered by the view attached to the outliner?
>Perhaps the question of whether or not Bidi is enabled should be answered by the >view attached to the outliner? That sounds reasonable, but I can't work out how and where to implement it. Can you give me some pointers?
Mass-move all BiDi Hebrew and Arabic qa to me, email@example.com. Thank you Gilad for your service to this component, and best of luck to you in the future. Sholom.
Created attachment 61615 [details] [diff] [review] Half of new solution Divide and rule time... This is a patch to make nsOutlinerBodyFrame.cpp display Bidi text correctly, assuming that the BidiEnabled flag has been set in the PresContext's mDocument. What is still lacking is a technique to set that flag, similar to what happens now in nsGenericDOMDataNode.cpp
*** Bug 119894 has been marked as a duplicate of this bug. ***
*** Bug 125174 has been marked as a duplicate of this bug. ***
*** Bug 125966 has been marked as a duplicate of this bug. ***
nsbeta1+, please measure the performance with ji
Maybe it would be no big deal to go through the Bidi path in all cases, since the Bidi rendering is well optimized for cases which need no special treatment. I just tested a patch that does that, displaying a full bookmark sidebar with MOZ_TIMELINE. The text drawing routine in nsOutlineBodyFrame::PaintText was called 131 times. With no bidi, this took 0.189 seconds on average, and with bidi 0.194 seconds. This translates to an increase of less than 0.1% of the whole startup.
Created attachment 72717 [details] [diff] [review] Testing patch This is the patch referred to in comment 13
mkaply: if you agree that attachment 72717 [details] [diff] [review] is the least bad way to do this, can you r= ?
Comment on attachment 72717 [details] [diff] [review] Testing patch r=mkaply
Comment on attachment 72717 [details] [diff] [review] Testing patch a=asa (on behalf of drivers) for checkin to the 1.0 trunk
Patch checked in