| <!DOCTYPE html> |
| <script src="../../fast/js/resources/js-test-pre.js"></script> |
| <script src="resources/shared.js"></script> |
| <script> |
| |
| description("Ensure IndexedDB transactions created before open onsuccess have correct metadata"); |
| |
| indexedDBTest(prepareDatabase, onOpenSuccess); |
| function prepareDatabase(evt) |
| { |
| preamble(evt); |
| evalAndLog("db = event.target.result"); |
| evalAndLog("store = db.createObjectStore('store')"); |
| evalAndLog("store.createIndex('index', 'keyPath')"); |
| evalAndLog("transaction = event.target.transaction"); |
| shouldNotThrow("index = transaction.objectStore('store').index('index')"); |
| transaction.oncomplete = onTransactionComplete; |
| } |
| |
| function onTransactionComplete(evt) |
| { |
| preamble(evt); |
| debug("In multiprocess mode, 'complete' event may be dispatched before\n" + |
| "the 'success' arrives with updated metadata. Ensure the new metadata\n" + |
| "is still used for transactions."); |
| evalAndLog("store = db.transaction('store').objectStore('store')"); |
| shouldNotThrow("index = store.index('index')"); |
| } |
| |
| function onOpenSuccess(evt) |
| { |
| preamble(evt); |
| evalAndLog("db = event.target.result"); |
| evalAndLog("store = db.transaction('store').objectStore('store')"); |
| shouldNotThrow("index = store.index('index')"); |
| finishJSTest(); |
| } |
| |
| </script> |
| <script src="../../fast/js/resources/js-test-post.js"></script> |