1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
content / test / data / indexeddb / version_change_blocked.js [blame]
// Copyright 2012 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
function test()
{
if (document.location.hash === '#tab1') {
prepareDatabase(function () { doSetVersion(2); });
} else if (document.location.hash === '#tab2') {
doSetVersion(3);
} else {
result('fail - unexpected hash');
}
}
function prepareDatabase(callback)
{
// Prepare the database, then exit normally
var delreq = window.indexedDB.deleteDatabase('version-change-blocked');
delreq.onerror = unexpectedErrorCallback;
delreq.onsuccess = function() {
reOpen(callback);
};
}
function reOpen(callback)
{
request = indexedDB.open('version-change-blocked');
request.onerror = unexpectedErrorCallback;
request.onblocked = unexpectedBlockedCallback;
request.onupgradeneeded = function() {
db = event.target.result;
db.createObjectStore("someobjectstore");
};
request.onsuccess = function() {
db.close();
callback();
};
}
function doSetVersion(version)
{
// Open the database and try a setVersion
var openreq = window.indexedDB.open('version-change-blocked', version);
openreq.onerror = unexpectedErrorCallback;
var upgradeneededComplete = false;
openreq.onblocked = function(e) {
result('setVersion(' + version + ') blocked');
};
openreq.onupgradeneeded = function(e) {
openreq.transaction.oncomplete = function(e2) {
db = openreq.result;
result('setVersion(' + version + ') complete');
};
};
}