This was introduced by http://trac.webkit.org/changeset/155957 The renderer for BR elements used to inherit from RenderText before the change listed above. RenderText has an implementation of the method collectSelectionRects, available only for iOS. RenderLineBreak doesn't have one and it defaults to the implementation in RenderObject that doesn't return the correct rectangle and most of all does not provide the correct annotations for the rect. The above mentioned change also changes the behavior of the renderer when it is not the only element on the line, which creates additional problems. Among the various reported issues are: - the selection is not drawn when BR is the only element on the line - overlapping selections when two lines of text are separated by BR. <rdar://problem/16464668> <rdar://problem/16692206> <rdar://problem/16776004>
Created attachment 230878 [details] Patch
We should really move this stuff out from PLATFORM(IOS) and make it testable with an internal setting.
Committed revision 168364.