Stronger fix for navigate away detection

This commit is contained in:
Vincent Petry 2016-03-22 18:28:54 +01:00
parent d8261d41cc
commit 51ff3e7443
1 changed files with 10 additions and 2 deletions

View File

@ -740,15 +740,23 @@ var OC={
* if an error/auth error status was returned.
*/
_processAjaxError: function(xhr) {
var self = this;
// purposefully aborted request ?
// this._userIsNavigatingAway needed to distinguish ajax calls cancelled by navigating away
// from calls cancelled by failed cross-domain ajax due to SSO redirect
if (xhr.status === 0 && (xhr.statusText === 'abort' || xhr.statusText === 'timeout' || this._userIsNavigatingAway)) {
if (xhr.status === 0 && (xhr.statusText === 'abort' || xhr.statusText === 'timeout' || self._reloadCalled)) {
return;
}
if (_.contains([0, 302, 303, 307, 401], xhr.status)) {
// sometimes "beforeunload" happens later, so need to defer the reload a bit
setTimeout(function() {
if (!self._userIsNavigatingAway && !self._reloadCalled) {
OC.reload();
// only call reload once
self._reloadCalled = true;
}
}, 100);
}
},