@@ -12,7 +12,7 @@ Lawnchair.adapter('indexed-db', (function(){
12
12
13
13
return {
14
14
valid : function ( ) { return ! ! getIDB ( ) ; } ,
15
-
15
+
16
16
close : function ( ) {
17
17
if ( this . db ) {
18
18
this . db . close ( ) ;
@@ -30,7 +30,16 @@ Lawnchair.adapter('indexed-db', (function(){
30
30
//FEEDHENRY CHANGE TO ALLOW ERROR CALLBACK
31
31
if ( options && 'function' === typeof options . fail ) fail = options . fail
32
32
//END CHANGE
33
+
34
+ var to = setTimeout ( function ( ) {
35
+ if ( request . readyState != 'done' ) {
36
+ console . error ( 'opendb request is still not ready. current readyState: ' + request . readyState + '. Returning error.' ) ;
37
+ return fail ( new Error ( 'OPEN_DB_ERROR' ) ) ;
38
+ }
39
+ } , 2000 ) ;
40
+
33
41
request . onupgradeneeded = function ( event ) {
42
+ clearTimeout ( to ) ;
34
43
self . store = request . result . createObjectStore ( "teststore" , { autoIncrement : true } ) ;
35
44
for ( var i = 0 ; i < self . waiting . length ; i ++ ) {
36
45
self . waiting [ i ] . call ( self ) ;
@@ -40,6 +49,7 @@ Lawnchair.adapter('indexed-db', (function(){
40
49
} ;
41
50
42
51
request . onsuccess = function ( event ) {
52
+ clearTimeout ( to ) ;
43
53
self . db = request . result ;
44
54
45
55
if ( self . db . version != "2.0" ) {
@@ -71,7 +81,11 @@ Lawnchair.adapter('indexed-db', (function(){
71
81
}
72
82
} ;
73
83
74
- request . onerror = fail ;
84
+ request . onerror = function ( ) {
85
+ clearTimeout ( to ) ;
86
+ var error = request . error ;
87
+ fail ( error ) ;
88
+ } ;
75
89
} ,
76
90
77
91
save :function ( obj , callback ) {
0 commit comments