OK, I tried another experiment. First, breakpoint in gfxTextRun::gfxTextRun and set it to run the commands "p aLength; cont" when hit. Then create a textarea with rows="10" and paste this content into it:
1
2
3
4
5
6
7
8
That leads to two calls to the ctor, with lengths 16 and 15 respectively (both under ReflowText).
Then I focused the textarea, put the caret before the "1" and hit enter. This led to 27 calls to the constructor, with the following lengths: 3, 2, 2, 2, 2, 2, 2, 2, 1, 4, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4.
While some of these (near the beginning) were from ReflowText, the stuff starting with "1" seems to be under nsTextFrame::TrimTrailingWhiteSpace.
OK, I tried another experiment. First, breakpoint in gfxTextRun: :gfxTextRun and set it to run the commands "p aLength; cont" when hit. Then create a textarea with rows="10" and paste this content into it:
1
2
3
4
5
6
7
8
That leads to two calls to the ctor, with lengths 16 and 15 respectively (both under ReflowText).
Then I focused the textarea, put the caret before the "1" and hit enter. This led to 27 calls to the constructor, with the following lengths: 3, 2, 2, 2, 2, 2, 2, 2, 1, 4, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4.
While some of these (near the beginning) were from ReflowText, the stuff starting with "1" seems to be under nsTextFrame: :TrimTrailingWh iteSpace.