Skip to content

Commit 224fca6

Browse files
author
Olivier Combe
committed
fix: Safari private browsing would not resolve
It will work when localForage/localForage#199 is merged into localForage
1 parent 4f9431a commit 224fca6

1 file changed

Lines changed: 6 additions & 4 deletions

File tree

src/angular-localForage.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,19 +53,21 @@
5353
return driver() === 'localStorageWrapper' ? localforage.config().name + '.' : '';
5454
}
5555

56-
var onError = function(data, args, fct, deferred) {
57-
if((angular.isObject(data) && data.name ? data.name === 'InvalidStateError' : (angular.isString(data) && data === 'InvalidStateError')) && driver() === 'asyncStorage') {
56+
var onError = function(err, args, fct, deferred) {
57+
// test for private browsing errors in Firefox & Safari
58+
if(((angular.isObject(err) && err.name ? err.name === 'InvalidStateError' : (angular.isString(err) && err === 'InvalidStateError')) && driver() === 'asyncStorage')
59+
|| (angular.isObject(err) && err.code && err.code === 5)) {
5860
setDriver('localStorageWrapper').then(function() {
5961
fct.apply(this, args).then(function(item) {
6062
deferred.resolve(item);
6163
}, function(data) {
6264
deferred.reject(data);
6365
});
6466
}, function() {
65-
deferred.reject(data);
67+
deferred.reject(err);
6668
});
6769
} else {
68-
deferred.reject(data);
70+
deferred.reject(err);
6971
}
7072
}
7173

0 commit comments

Comments
 (0)