In the custom V8 binding for SQLStatementErrorCallback, handleEvent() may not return the correct result to WebCore. It must return true to WebCore to signify that the transaction error steps should be executed in the event of the statement error callback throwing an exception or returning true.
Created attachment 38863 [details] Proposed patch Corrects the return logic in handleEvent().
Comment on attachment 38863 [details] Proposed patch Is this testable? How does this bug manifest itself to the user/page? We either need a test or an explanation of why it's untestable. :)
(In reply to comment #2) > (From update of attachment 38863 [details]) > Is this testable? How does this bug manifest itself to the user/page? We > either need a test or an explanation of why it's untestable. :) I should be able to put together a layout test. Essentially, without this fix the wrong result is returned to WebCore in the event that the statement error callback does not throw an exception and returns true. In this situation the binding will currently returns false to WebCore, signifying that processing of the next statement may begin. The spec states that if the statement callback returns true we should jump immediately to the transaction error callback.
Perfect. If we layout test this then other implementations will be sure not to get this wrong. :)
Created attachment 38870 [details] Proposed patch with layout test.
Comment on attachment 38870 [details] Proposed patch with layout test. LGTM.
Comment on attachment 38870 [details] Proposed patch with layout test. Clearing flags on attachment: 38870 Committed r48008: <http://trac.webkit.org/changeset/48008>
All reviewed patches have been landed. Closing bug.
Please don't remove the Reviewed by NOBODY(OOPS!) line, or our scripts won't correctly add the reviewer when landing. :(