Page MenuHomestyx hydra

No OneTemporary

diff --git a/externals/javelin b/externals/javelin
index d9a1cb4c16..7ac64cd03d 160000
--- a/externals/javelin
+++ b/externals/javelin
@@ -1 +1 @@
-Subproject commit d9a1cb4c16866aec38f062eee9f3d2129c885b62
+Subproject commit 7ac64cd03d89d6d5f8c7f85b32c9611d3866ea2b
diff --git a/webroot/rsrc/js/application/core/ShapedRequest.js b/webroot/rsrc/js/application/core/ShapedRequest.js
index d993e6680a..dd03b30def 100644
--- a/webroot/rsrc/js/application/core/ShapedRequest.js
+++ b/webroot/rsrc/js/application/core/ShapedRequest.js
@@ -1,92 +1,93 @@
/**
* @requires javelin-install
* javelin-util
* javelin-request
* @provides phabricator-shaped-request
* @javelin
*/
/**
* Send requests with rate limiting and retries, in response to some application
* trigger. This is used to implement comment previews in Differential and
* Maniphest.
*/
JX.install('PhabricatorShapedRequest', {
construct : function(uri, callback, data_callback) {
this._uri = uri;
this._callback = callback;
this._dataCallback = data_callback;
},
members : {
_callback : null,
_dataCallback : null,
_request : null,
_min : null,
_defer : null,
_last : null,
start : function() {
this.trigger();
},
trigger : function() {
if (this._request) {
// Waiting on a request, rate-limit.
return;
}
if (this._min && (new Date().getTime() < this._min)) {
// Just got a request back, rate-limit.
return;
}
this._defer && this._defer.stop();
var data = this._dataCallback();
if (this.shouldSendRequest(this._last, data)) {
this._last = data;
var request = new JX.Request(this._uri, JX.bind(this, function(r) {
this._callback(r);
this._min = new Date().getTime() + this.getRateLimit();
this._defer && this._defer.stop();
this._defer = JX.defer(
JX.bind(this, this.trigger),
this.getRateLimit());
}));
request.listen('finally', JX.bind(this, function() {
this._request = null;
}));
request.setData(data);
- request.setTimeout(this.getFrequency());
+ request.setTimeout(this.getRequestTimeout());
request.send();
} else {
this._defer = JX.defer(
JX.bind(this, this.trigger),
this.getFrequency());
}
},
shouldSendRequest : function(last, data) {
if (last === null) {
return true;
}
for (var k in last) {
if (data[k] !== last[k]) {
return true;
}
}
return false;
}
},
properties : {
rateLimit : 500,
- frequency : 1000
+ frequency : 1000,
+ requestTimeout : 20000
}
});

File Metadata

Mime Type
text/x-diff
Expires
Thu, Oct 16, 3:49 AM (1 d, 5 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
272402
Default Alt Text
(2 KB)

Event Timeline