IDBTransaction.cpp has the lovely note: FIXME: Propagate true cause from back end (e.g. QuotaError, UnknownError, etc.) When we fail due to a ConstraintError (e.g. when indexing) this is not passed from the back end to the front end. It's one of the reasons we fail this test: http://w3c-test.org/webapps/IndexedDB/tests/submissions/Opera/idbobjectstore_createIndex6-event_order.htm
Created attachment 168307 [details] Patch
(In reply to comment #1) > Created an attachment (id=168307) [details] > Patch This needs to be split up for landing: * Add new Chromium public webkit API * Add new Chromium plumbing * This patch * Remove old Chromium plumbing * Remove old Chromium public webkit API
Comment on attachment 168307 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=168307&action=review LGTM This gets us closer to being able to fix http://code.google.com/p/chromium/issues/detail?id=113118 > Source/WebCore/Modules/indexeddb/IDBTransactionBackendImpl.cpp:114 > + abort(IDBDatabaseError::create(IDBDatabaseException::UNKNOWN_ERR, "Internal error.")); "Internal error" makes sense because a call to this method can only be originated from the backend. Accurate? > LayoutTests/storage/indexeddb/lazy-index-population.html:102 > + shouldBe("trans.error.name", "'ConstraintError'"); the new lines have weird indents
(In reply to comment #3) > This gets us closer to being able to fix http://code.google.com/p/chromium/issues/detail?id=113118 Yep. The message still gets dropped on the floor when DOMError is created, though, but at least the plumbing is there. > > Source/WebCore/Modules/indexeddb/IDBTransactionBackendImpl.cpp:114 > > + abort(IDBDatabaseError::create(IDBDatabaseException::UNKNOWN_ERR, "Internal error.")); > > "Internal error" makes sense because a call to this method can only be originated from the backend. Accurate? > Correct. FWIW, this is what the front end synthesizes today for all backend-triggered aborts. I left this as the default on the back end since it applies to most call sites. Places where an error is generated to fire at a request now use that error, and constraint failures from indexing get special handling. > > LayoutTests/storage/indexeddb/lazy-index-population.html:102 > > + shouldBe("trans.error.name", "'ConstraintError'"); > > the new lines have weird indents Will fix, thanks.
Created attachment 168452 [details] Patch
tony@ - r? Chromium side has rolled in, so this is unblocked.
Comment on attachment 168452 [details] Patch Rejecting attachment 168452 [details] from commit-queue. Failed to run "['/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch', '--status-host=queues.webkit.org', '-..." exit_code: 2 Last 500 characters of output: /src/WebIDBTransactionCallbacksImpl.cpp patching file Source/WebKit/chromium/src/WebIDBTransactionCallbacksImpl.h patching file LayoutTests/ChangeLog Hunk #1 succeeded at 1 with fuzz 3. patching file LayoutTests/storage/indexeddb/lazy-index-population-expected.txt patching file LayoutTests/storage/indexeddb/lazy-index-population.html Failed to run "[u'/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply', u'--force', u'--reviewer', u'Tony Chang']" exit_code: 1 cwd: /mnt/git/webkit-commit-queue Full output: http://queues.webkit.org/results/14378116
Comment on attachment 168452 [details] Patch Rejecting attachment 168452 [details] from commit-queue. Failed to run "['/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch', '--status-host=queues.webkit.org', '-..." exit_code: 2 Last 500 characters of output: /src/WebIDBTransactionCallbacksImpl.cpp patching file Source/WebKit/chromium/src/WebIDBTransactionCallbacksImpl.h patching file LayoutTests/ChangeLog Hunk #1 succeeded at 1 with fuzz 3. patching file LayoutTests/storage/indexeddb/lazy-index-population-expected.txt patching file LayoutTests/storage/indexeddb/lazy-index-population.html Failed to run "[u'/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply', u'--force', u'--reviewer', u'Tony Chang']" exit_code: 1 cwd: /mnt/git/webkit-commit-queue Full output: http://queues.webkit.org/results/14295738
Created attachment 168786 [details] Patch for landing
Comment on attachment 168786 [details] Patch for landing Clearing flags on attachment: 168786 Committed r131371: <http://trac.webkit.org/changeset/131371>
All reviewed patches have been landed. Closing bug.