* SUMMARY When a select element doesn't contain any children element, TOT still renders it as a normal select element instead of being dimmed. I originally found this issue at http://www.oceanfootage.com/stockfootage/Barracuda_Fish/ but I now have a simple test case. * STEPS TO REPRODUCE 1. With TOT webkit r-16541, open the attached test case "select_with_no_children.html" 2. The select element that is rendered contains no children but is still is selectable. 3. With stock Safari under 10.4.7, the same select element is rendered as dimmed. TOT should do the same thing but doesn't * RESULTS Select element with no children should be rendered as dimmed but isn't * REGRESSION This is a edge case issue but is a regression
This might be subjective since one could argue that stock Safari is doing the wrong thing and r-16541 is correct behavior. But I will let Adele and Hyatt decide this :).
Created attachment 10761 [details] sample test case
This is covered in <rdar://problem/4748594>
Regressions are P1.
Created attachment 11890 [details] patch
Comment on attachment 11890 [details] patch r=me (there's an unrelated test in this patch).
Comment on attachment 11890 [details] patch Oops. This causes an infinite loop. Need to rework this.
Comment on attachment 11890 [details] patch Seems like it would be better to set disabled state for real when you have no items rather than doing this check any time someone calls disabled().
Our old behavior was that the popup would also be disabled if it had children, but all of the children were disabled. After thinking about it some more, I think that matching that part of the old behavior is unnecessary. There's no harm in opening a menu with all items disabled. Some people may want that behavior just to see what options exist, even if they're disabled. So I think we should just disable in the 0 children case.
Since our new behavior matches other browsers better, we decided it was correct.