@@ -294,19 +294,24 @@ angular.module('izhukov.utils', [])
294294 return openDbPromise ;
295295 }
296296
297- var request = indexedDB . open ( dbName , dbVersion ) ,
298- deferred = $q . defer ( ) ,
299- createObjectStore = function ( db ) {
300- db . createObjectStore ( dbStoreName ) ;
301- } ;
297+ try {
298+ var request = indexedDB . open ( dbName , dbVersion ) ,
299+ deferred = $q . defer ( ) ,
300+ createObjectStore = function ( db ) {
301+ db . createObjectStore ( dbStoreName ) ;
302+ } ;
303+ } catch ( error ) {
304+ storageIsAvailable = false ;
305+ return $q . reject ( error ) ;
306+ }
302307
303308 request . onsuccess = function ( event ) {
304309 db = request . result ;
305310
306- db . onerror = function ( event ) {
311+ db . onerror = function ( error ) {
307312 storageIsAvailable = false ;
308- console . error ( " Error creating/accessing IndexedDB database" , event ) ;
309- deferred . reject ( event ) ;
313+ console . error ( ' Error creating/accessing IndexedDB database' , error ) ;
314+ deferred . reject ( error ) ;
310315 } ;
311316
312317 // Interim solution for Google Chrome to create an objectStore. Will be deprecated
@@ -326,6 +331,12 @@ angular.module('izhukov.utils', [])
326331 }
327332 } ;
328333
334+ request . onerror = function ( event ) {
335+ storageIsAvailable = false ;
336+ console . error ( 'Error creating/accessing IndexedDB database' , event ) ;
337+ deferred . reject ( event ) ;
338+ }
339+
329340 request . onupgradeneeded = function ( event ) {
330341 createObjectStore ( event . target . result ) ;
331342 } ;
@@ -385,6 +396,8 @@ angular.module('izhukov.utils', [])
385396 return $q . when ( fakeWriter ) ;
386397 }
387398
399+ openDatabase ( ) ;
400+
388401 return {
389402 isAvailable : isAvailable ,
390403 saveFile : saveFile ,
@@ -481,6 +494,8 @@ angular.module('izhukov.utils', [])
481494 } )
482495 }
483496
497+ requestFS ( ) ;
498+
484499 return {
485500 isAvailable : isAvailable ,
486501 saveFile : saveFile ,
0 commit comments