To reproduce: 1. Go to data:text/html,<input type=password> 2. Click in the text field 3. Press Caps-Lock The Caps-Lock indicator doesn't appear.
Classic WebKit handles this in WebView::keyDown by calling capsLockStateMayHaveChanged.
<rdar://problem/8780989>
Created attachment 88113 [details] proposed fix This fixes the problem on Mac, and probably on Windows, too.
Comment on attachment 88113 [details] proposed fix View in context: https://bugs.webkit.org/attachment.cgi?id=88113&action=review > Source/WebCore/ChangeLog:441 > - DumpRenderTreeÕs delegate to be dispatched. The delegate doesnÕt expect to be called between > + DumpRenderTree's delegate to be dispatched. The delegate doesn't expect to be called between > tests, and it references the layout test controller, which is null. > > * page/Frame.cpp: > - (WebCore::Frame::scalePage): Avoid an unnecessary layout if the page scale isnÕt changing. This > + (WebCore::Frame::scalePage): Avoid an unnecessary layout if the page scale isn't changing. This These characters should be re-encoded as UTF-8 rather than changed. > Source/WebKit2/UIProcess/API/mac/WKView.mm:1173 > + [[theEvent retain] autorelease]; A more modern pattern is to use a mysteriously-named RetainPtr for this. Or is it not enough to retain the event for the scope of this function?
> A more modern pattern is to use a mysteriously-named RetainPtr for this. Or is it not enough to retain the event for the scope of this function? That code might be completely useless in WK2. It was present in keyDown, so I'm copying it elsewhere.
Committed <http://trac.webkit.org/changeset/82870>. Please do verify that this helps on Windows.