In the attached testcase, type a character into the search field. Note how the Clear button shows up, but only half of it draws.
Created attachment 26395 [details]
I'll take this bug.
Between the r37126 and r37300 nightlies, the clear button disappears entirely, but I am not sure if this is the root cause of the bug. I'll see where it goes to being half-drawn.
The change from an undrawn clear button and a half-drawn clear button occurs between the r38676 and r38683 nightlies. The only relevant change is r38678:
Simon, I am not an expert on this code, but it seems to me that the inflation of the rect for repainting is causing the button to be partially drawn, and the real problem occurred earlier when it was no longer drawn at all. What do you think?
I think it would be instructive to debug through clippedOverflowRectForRepaint() and figure out why the rect ends up being wrong.
Odd, a local debug build of r37126 demonstrates the same problematic behaviour. I'll just do as you suggest and debug the problem in ToT instead of trying to find the regression.
I think the real issue here is that no-one tells the clear button to repaint when it is shown or hidden.
Simon has a good idea of what causes this bug so I will unassign it.
As a related issue, I found that the cancel button's div is also too short: bug 24509.
Created attachment 28464 [details]
Patch, testcase, changelog