Attaching a testcase
Created attachment 7586 [details] testcase
Dave, this is what I was worried about re-introducing. I guess it happened!
I have a good way of fixing this that will handle overflow too (the old fix for this didn't).
The last outline-related checkin before revision 13639 is the one darin made to deal with textfield focus rings not matching. My code had not yet landed, so this is not related to my coalesced update changes.
I've verified that the focus-ring drawing functions are called when the caret blinks, but nothing is being drawn. Continuing to investigate.
There's some kind of rounding problem here. Setting an outline-offset of either 1px or -1px makes the bug go away.
<rdar://problem/4556558>
Waiting on a Core Graphics fix for focus ring drawing before revisiting this problem.
It seems that if the clip overlaps inside edge of the focus ring exactly one pixel deep the focus ring does not get drawn. This particular bug can be easily worked around in repaintRectForCaret (in SelectionController.cpp) by doing caret.inflate(2) instead of inflate(1) or removing the inflate line. First option increases overlap and makes the focus ring paint correctly, second one removes overlap. That just hides the actual problem though. I think this is most likely the same problem as bug 11965.
I can still reproduce this bug with the attached test case (Attachment #7586 [details]), but not with this test case: data:text/html,<input type=text>
(In reply to comment #10) > I can still reproduce this bug with the attached test case (Attachment #7586 [details] [edit]), > but not with this test case: > > data:text/html,<input type=text> Using a local debug build of WebKit r28434 with Safari 3.0.4 (523.12) on Mac OS X 10.4.11 (8S165).
Fixed in <http://trac.webkit.org/projects/webkit/changeset/28523>.