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
3 // found in the LICENSE file.
7 if (document
.location
.hash
=== '#tab1') {
8 prepareDatabase(function () { doSetVersion(2); });
9 } else if (document
.location
.hash
=== '#tab2') {
12 result('fail - unexpected hash');
16 function prepareDatabase(callback
)
18 // Prepare the database, then exit normally
19 var delreq
= window
.indexedDB
.deleteDatabase('version-change-blocked');
20 delreq
.onerror
= unexpectedErrorCallback
;
21 delreq
.onsuccess = function() {
26 function reOpen(callback
)
28 request
= indexedDB
.open('version-change-blocked');
29 request
.onerror
= unexpectedErrorCallback
;
30 request
.onblocked
= unexpectedBlockedCallback
;
31 request
.onupgradeneeded = function() {
32 db
= event
.target
.result
;
33 db
.createObjectStore("someobjectstore");
35 request
.onsuccess = function() {
41 function doSetVersion(version
)
43 // Open the database and try a setVersion
44 var openreq
= window
.indexedDB
.open('version-change-blocked', version
);
45 openreq
.onerror
= unexpectedErrorCallback
;
46 var upgradeneededComplete
= false;
47 openreq
.onblocked = function(e
) {
48 result('setVersion(' + version
+ ') blocked');
50 openreq
.onupgradeneeded = function(e
) {
51 openreq
.transaction
.oncomplete = function(e2
) {
53 result('setVersion(' + version
+ ') complete');