Changing the highlight color in System Preferences doesn't affect an existing instance of WebKit (that has already used highlighting). RenderTheme caches the highlight color the first time it's accessed and there's no invalidation mechanism.
Isn't this a regression? Works for me with shipping Safari/WebKit.
Yes, it is a regression. Thanks, Alexey!
<rdar://problem/5183686>
The bug is not limited to selection in form controls.
Created attachment 14356 [details] proposed fix
Comment on attachment 14356 [details] proposed fix + /* Have to just leak the cells, since statics are destroyed with no autorelease pool available */ I know you just moved this comment, but it is not true. You can create an autorelease pool of your own and then call HardRelease before draining the autorelease pool. In fact, even removeObserver: needs an autorelease pool. On the other hand, I think we should just change it so that RenderThemeMac is never destroyed. RenderTheme* theme() { static RenderThemeMac* macTheme = new RenderThemeMac; return macTheme; } r=me, because this issue is a minor one as long as you aren't seeing a crash on quit
Created attachment 14358 [details] proposed fix I didn't get any crashes on quit, but it looks safer to change theme() in this way indeed.
Comment on attachment 14358 [details] proposed fix + static RenderThemeMac* macTheme; + if (!macTheme) + macTheme = new RenderThemeMac; This could just be written: static RenderThemeMac* macTheme = new RenderThemeMac; The initialization only runs once. r=me
Committed revision 21274.