Any chance of a smaller (like 1-day) regression window?
tested on Mozilla Suite Win98, BuildID 2003121908 is working, BuildID 2003122308 is failing. After loading has finished, 'done' is seen in the statusbar. If you hover over the link, 'done' is cleared, so the hover is recognized, but the URL not written to the status bar.
This is a regression from bug 226462. The old logic was: keep_going = "not bool returned" || (reverse ? !return : return); The new logic is: keep_going = ("not bool returned" || return) xor (reverse) So in the old code, if the retval was not a bool, we kept going no matter what retval happened to be or what reverse was. In the new code, if the retval is not a bool and reverse is true we kill the event. In the testcase here, I expect the retval is undefined or some such?
Note that you've also changed the behavior when the handler throws an exception. Prior to the patch for bug 226462 that would end up returning true (since "ok" would be false) and such handlers would not cancel the event. In the current code, an exception in a handler will cancel an event. Marking major due to that -- that's a pretty severe change in behavior, especially if we don't intend it.
Duh, I apparently missed your comment in bug 226462. Looking.
Created attachment 141371 [details] [diff] [review] Fix, and take care of not submitting if onsubmit fails too This should revert to the old logic (with some minor differences in error cases, but I seriously doubt that matters), and it also makes us prevent the default action of onsubmit events if there's any error in handling onsubmit events.
Comment on attachment 141371 [details] [diff] [review] Fix, and take care of not submitting if onsubmit fails too Makes sense. r=bzbarsky
jst checked in a fix yesterday.