Home | History | Annotate | Download | only in indexeddb
      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.
      4 
      5 function test()
      6 {
      7   if (document.location.hash === '#tab1') {
      8     prepareDatabase(function () { doSetVersion(2); });
      9   } else if (document.location.hash === '#tab2') {
     10     doSetVersion(3);
     11   } else {
     12     result('fail - unexpected hash');
     13   }
     14 }
     15 
     16 function prepareDatabase(callback)
     17 {
     18   // Prepare the database, then exit normally
     19   var delreq = window.indexedDB.deleteDatabase('version-change-blocked');
     20   delreq.onerror = unexpectedErrorCallback;
     21   delreq.onsuccess = function() {
     22     reOpen(callback);
     23   };
     24 }
     25 
     26 function reOpen(callback)
     27 {
     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");
     34   };
     35   request.onsuccess = function() {
     36     db.close();
     37     callback();
     38   };
     39 }
     40 
     41 function doSetVersion(version)
     42 {
     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');
     49   };
     50   openreq.onupgradeneeded = function(e) {
     51     openreq.transaction.oncomplete = function(e2) {
     52       result('setVersion(' + version + ') complete');
     53     };
     54   };
     55 }
     56