OLD | NEW |
1 <!doctype html> | 1 <!doctype html> |
2 <meta charset="utf8"> | 2 <meta charset="utf8"> |
3 <title>IndexedDB: backend-aborted versionchange transaction lifecycle</title> | 3 <title>IndexedDB: backend-aborted versionchange transaction lifecycle</title> |
4 <link rel="help" | 4 <link rel="help" |
5 href="https://w3c.github.io/IndexedDB/#upgrade-transaction-steps"> | 5 href="https://w3c.github.io/IndexedDB/#upgrade-transaction-steps"> |
6 <link rel="help" | 6 <link rel="help" |
7 href="https://w3c.github.io/IndexedDB/#dom-idbdatabase-createobjectstore"> | 7 href="https://w3c.github.io/IndexedDB/#dom-idbdatabase-createobjectstore"> |
8 <link rel="help" | 8 <link rel="help" |
9 href="https://w3c.github.io/IndexedDB/#dom-idbdatabase-deleteobjectstore"> | 9 href="https://w3c.github.io/IndexedDB/#dom-idbdatabase-deleteobjectstore"> |
10 <link rel="author" href="pwnall@chromium.org" title="Victor Costan"> | 10 <link rel="author" href="pwnall@chromium.org" title="Victor Costan"> |
11 <script src="../../resources/testharness.js"></script> | 11 <script src="../../resources/testharness.js"></script> |
12 <script src="../../resources/testharnessreport.js"></script> | 12 <script src="../../resources/testharnessreport.js"></script> |
13 <script src="resources/support-promises.js"></script> | 13 <script src="resources/support-promises.js"></script> |
14 <script> | 14 <script> |
15 'use strict'; | 15 'use strict'; |
| 16 setup({allow_uncaught_exception: true}); |
16 | 17 |
17 promise_test(t => { | 18 promise_test(t => { |
18 return createDatabase(t, database => { | 19 return createDatabase(t, database => { |
19 createBooksStore(t, database); | 20 createBooksStore(t, database); |
20 }).then(database => { | 21 }).then(database => { |
21 database.close(); | 22 database.close(); |
22 }).then(() => migrateDatabase(t, 2, (database, transaction, request) => { | 23 }).then(() => migrateDatabase(t, 2, (database, transaction, request) => { |
23 return new Promise((resolve, reject) => { | 24 return new Promise((resolve, reject) => { |
24 transaction.addEventListener('abort', () => { | 25 transaction.addEventListener('abort', () => { |
25 resolve(new Promise((resolve, reject) => { | 26 resolve(new Promise((resolve, reject) => { |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
75 }, 0); | 76 }, 0); |
76 }, false); | 77 }, false); |
77 transaction.objectStore('books').add(BOOKS_RECORD_DATA[0]); | 78 transaction.objectStore('books').add(BOOKS_RECORD_DATA[0]); |
78 transaction._willBeAborted(); | 79 transaction._willBeAborted(); |
79 }); | 80 }); |
80 })); | 81 })); |
81 }, 'in a setTimeout(0) callback after the abort event is fired for a ' + | 82 }, 'in a setTimeout(0) callback after the abort event is fired for a ' + |
82 'transaction aborted due to an unhandled request failure'); | 83 'transaction aborted due to an unhandled request failure'); |
83 | 84 |
84 </script> | 85 </script> |
OLD | NEW |