1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-01 19:22:42 +01:00

Fix some minor Celerity / ShapedRequest bugs:

- Force celerity to do disk reads in dev.
  - Clean up some ShapedRequest clownery.
This commit is contained in:
epriestley 2011-05-11 03:42:02 -07:00
parent c51eb2696d
commit 3b8ff34f9b
5 changed files with 30 additions and 15 deletions

View file

@ -349,4 +349,13 @@ return array(
// unlikely that you need to modify this. // unlikely that you need to modify this.
'celerity.resource-hash' => 'd9455ea150622ee044f7931dabfa52aa', 'celerity.resource-hash' => 'd9455ea150622ee044f7931dabfa52aa',
// In a development environment, it is desirable to force static resources
// (CSS and JS) to be read from disk on every request, so that edits to them
// appear when you reload the page even if you haven't updated the resource
// maps. This setting ensures requests will be verified against the state on
// disk. Generally, you should leave this off in production (caching behavior
// and performance improve with it off) but turn it on in development. (These
// settings are the defaults.)
'celerity.force-disk-reads' => false,
); );

View file

@ -19,5 +19,6 @@
return array( return array(
'darkconsole.enabled' => true, 'darkconsole.enabled' => true,
'celerity.force-disk-reads' => true,
) + phabricator_read_config_file('default'); ) + phabricator_read_config_file('default');

View file

@ -390,7 +390,7 @@ celerity_register_resource_map(array(
), ),
'javelin-behavior-differential-show-more' => 'javelin-behavior-differential-show-more' =>
array( array(
'uri' => '/res/7a844635/rsrc/js/application/differential/behavior-show-more.js', 'uri' => '/res/9cbf1c9c/rsrc/js/application/differential/behavior-show-more.js',
'type' => 'js', 'type' => 'js',
'requires' => 'requires' =>
array( array(
@ -867,7 +867,7 @@ celerity_register_resource_map(array(
), ),
'phabricator-shaped-request' => 'phabricator-shaped-request' =>
array( array(
'uri' => '/res/1f0ef02b/rsrc/js/application/core/ShapedRequest.js', 'uri' => '/res/7b1522d3/rsrc/js/application/core/ShapedRequest.js',
'type' => 'js', 'type' => 'js',
'requires' => 'requires' =>
array( array(
@ -1005,7 +1005,7 @@ celerity_register_resource_map(array(
'uri' => '/res/pkg/ac70e6b7/core.pkg.css', 'uri' => '/res/pkg/ac70e6b7/core.pkg.css',
'type' => 'css', 'type' => 'css',
), ),
'b17926e1' => 'c5d10dfe' =>
array ( array (
'name' => 'differential.pkg.js', 'name' => 'differential.pkg.js',
'symbols' => 'symbols' =>
@ -1016,7 +1016,7 @@ celerity_register_resource_map(array(
3 => 'javelin-behavior-differential-show-more', 3 => 'javelin-behavior-differential-show-more',
4 => 'javelin-behavior-differential-diff-radios', 4 => 'javelin-behavior-differential-diff-radios',
), ),
'uri' => '/res/pkg/b17926e1/differential.pkg.js', 'uri' => '/res/pkg/c5d10dfe/differential.pkg.js',
'type' => 'js', 'type' => 'js',
), ),
), ),
@ -1042,11 +1042,11 @@ celerity_register_resource_map(array(
'diffusion-commit-view-css' => '03ef179e', 'diffusion-commit-view-css' => '03ef179e',
'javelin-behavior' => '7d23deb1', 'javelin-behavior' => '7d23deb1',
'javelin-behavior-aphront-basic-tokenizer' => '33f413ef', 'javelin-behavior-aphront-basic-tokenizer' => '33f413ef',
'javelin-behavior-differential-diff-radios' => 'b17926e1', 'javelin-behavior-differential-diff-radios' => 'c5d10dfe',
'javelin-behavior-differential-edit-inline-comments' => 'b17926e1', 'javelin-behavior-differential-edit-inline-comments' => 'c5d10dfe',
'javelin-behavior-differential-feedback-preview' => 'b17926e1', 'javelin-behavior-differential-feedback-preview' => 'c5d10dfe',
'javelin-behavior-differential-populate' => 'b17926e1', 'javelin-behavior-differential-populate' => 'c5d10dfe',
'javelin-behavior-differential-show-more' => 'b17926e1', 'javelin-behavior-differential-show-more' => 'c5d10dfe',
'javelin-behavior-workflow' => '122a6b6d', 'javelin-behavior-workflow' => '122a6b6d',
'javelin-dom' => '7d23deb1', 'javelin-dom' => '7d23deb1',
'javelin-event' => '7d23deb1', 'javelin-event' => '7d23deb1',

View file

@ -38,7 +38,8 @@ class CelerityResourceController extends AphrontController {
throw new Exception("Only CSS and JS resources may be served."); throw new Exception("Only CSS and JS resources may be served.");
} }
if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) { if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) &&
!PhabricatorEnv::getEnvConfig('celerity.force-disk-reads')) {
// Return a "304 Not Modified". We don't care about the value of this // Return a "304 Not Modified". We don't care about the value of this
// field since we never change what resource is served by a given URI. // field since we never change what resource is served by a given URI.
return $this->makeResponseCacheable(new Aphront304Response()); return $this->makeResponseCacheable(new Aphront304Response());

View file

@ -51,9 +51,11 @@ JX.install('PhabricatorShapedRequest', {
var request = new JX.Request(this._uri, JX.bind(this, function(r) { var request = new JX.Request(this._uri, JX.bind(this, function(r) {
this._callback(r); this._callback(r);
this._min = new Date().getTime() + this._rateLimit; this._min = new Date().getTime() + this.getRateLimit();
this._defer && this._defer.stop(); this._defer && this._defer.stop();
this._defer = JX.defer(JX.bind(this, this.trigger), this._rateLimit); this._defer = JX.defer(
JX.bind(this, this.trigger),
this.getRateLimit());
})); }));
request.listen('finally', JX.bind(this, function() { request.listen('finally', JX.bind(this, function() {
this._request = null; this._request = null;
@ -62,7 +64,9 @@ JX.install('PhabricatorShapedRequest', {
request.setTimeout(this.getFrequency()); request.setTimeout(this.getFrequency());
request.send(); request.send();
} else { } else {
this._defer = JX.defer(JX.bind(this, this.trigger), this._frequency); this._defer = JX.defer(
JX.bind(this, this.trigger),
this.getFrequency());
} }
}, },
@ -82,7 +86,7 @@ JX.install('PhabricatorShapedRequest', {
}, },
properties : { properties : {
rateLimit : 250, rateLimit : 500,
frequency : 750 frequency : 1000
} }
}); });