| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 window.indexedDB = window.indexedDB || window.webkitIndexedDB; | 5 function test() |
| 6 | |
| 7 function unexpectedErrorCallback() | |
| 8 { | 6 { |
| 9 document.title = 'fail - unexpected error callback'; | |
| 10 } | |
| 11 function unexpectedAbortCallback() | |
| 12 { | |
| 13 document.title = 'fail - unexpected abort callback'; | |
| 14 } | |
| 15 function unexpectedCompleteCallback() | |
| 16 { | |
| 17 document.title = 'fail - unexpected complete callback'; | |
| 18 } | |
| 19 | |
| 20 function test() { | |
| 21 if (document.location.hash === '#tab1') { | 7 if (document.location.hash === '#tab1') { |
| 22 prepareDatabase(0, function () { doSetVersion(1); }); | 8 prepareDatabase(0, function () { doSetVersion(1); }); |
| 23 } else if (document.location.hash === '#tab2') { | 9 } else if (document.location.hash === '#tab2') { |
| 24 doSetVersion(2); | 10 doSetVersion(2); |
| 25 } else { | 11 } else { |
| 26 document.title = 'fail'; | 12 result('fail - unexpected hash'); |
| 27 } | 13 } |
| 28 } | 14 } |
| 29 | 15 |
| 30 function prepareDatabase(version, callback) { | 16 function prepareDatabase(version, callback) |
| 17 { |
| 31 // Prepare the database, then exit normally | 18 // Prepare the database, then exit normally |
| 32 | |
| 33 var delreq = window.indexedDB.deleteDatabase('version-change-blocked'); | 19 var delreq = window.indexedDB.deleteDatabase('version-change-blocked'); |
| 34 delreq.onerror = unexpectedErrorCallback; | 20 delreq.onerror = unexpectedErrorCallback; |
| 35 delreq.onsuccess = function() { | 21 delreq.onsuccess = function() { |
| 36 var openreq = window.indexedDB.open('version-change-blocked'); | 22 var openreq = window.indexedDB.open('version-change-blocked'); |
| 37 openreq.onerror = unexpectedErrorCallback; | 23 openreq.onerror = unexpectedErrorCallback; |
| 38 openreq.onsuccess = function(e) { | 24 openreq.onsuccess = function(e) { |
| 39 var db = openreq.result; | 25 var db = openreq.result; |
| 40 var setverreq = db.setVersion(String(version)); | 26 var setverreq = db.setVersion(String(version)); |
| 41 setverreq.onerror = unexpectedErrorCallback; | 27 setverreq.onerror = unexpectedErrorCallback; |
| 42 setverreq.onsuccess = function(e) { | 28 setverreq.onsuccess = function(e) { |
| 43 var transaction = setverreq.result; | 29 var transaction = setverreq.result; |
| 44 transaction.onabort = unexpectedAbortCallback; | 30 transaction.onabort = unexpectedAbortCallback; |
| 45 transaction.oncomplete = function (e) { | 31 transaction.oncomplete = function (e) { |
| 46 db.close(); | 32 db.close(); |
| 47 callback(); | 33 callback(); |
| 48 }; | 34 }; |
| 49 }; | 35 }; |
| 50 }; | 36 }; |
| 51 }; | 37 }; |
| 52 } | 38 } |
| 53 | 39 |
| 54 function doSetVersion(version) { | 40 function doSetVersion(version) |
| 41 { |
| 55 // Open the database and try a setVersion | 42 // Open the database and try a setVersion |
| 56 var openreq = window.indexedDB.open('version-change-blocked'); | 43 var openreq = window.indexedDB.open('version-change-blocked'); |
| 57 openreq.onerror = unexpectedErrorCallback; | 44 openreq.onerror = unexpectedErrorCallback; |
| 58 openreq.onsuccess = function(e) { | 45 openreq.onsuccess = function(e) { |
| 59 window.db = openreq.result; | 46 window.db = openreq.result; |
| 60 var setverreq = window.db.setVersion(String(version)); | 47 var setverreq = window.db.setVersion(String(version)); |
| 61 setverreq.onerror = unexpectedErrorCallback; | 48 setverreq.onerror = unexpectedErrorCallback; |
| 62 setverreq.onblocked = function(e) { | 49 setverreq.onblocked = function(e) { |
| 63 document.title = 'setVersion(' + version + ') blocked'; | 50 result('setVersion(' + version + ') blocked'); |
| 64 }; | 51 }; |
| 65 setverreq.onsuccess = function(e) { | 52 setverreq.onsuccess = function(e) { |
| 66 document.title = 'setVersion(' + version + ') complete'; | 53 result('setVersion(' + version + ') complete'); |
| 67 }; | 54 }; |
| 68 }; | 55 }; |
| 69 } | 56 } |
| OLD | NEW |