diff --git a/resources/celerity/map.php b/resources/celerity/map.php --- a/resources/celerity/map.php +++ b/resources/celerity/map.php @@ -10,8 +10,8 @@ 'conpherence.pkg.css' => 'a34d59bd', 'conpherence.pkg.js' => '5f86c17d', 'core.pkg.css' => '959330a2', - 'core.pkg.js' => 'deabcef7', - 'darkconsole.pkg.js' => 'e7393ebb', + 'core.pkg.js' => '941db947', + 'darkconsole.pkg.js' => '061371d8', 'differential.pkg.css' => '90b30783', 'differential.pkg.js' => 'ddfeb49b', 'diffusion.pkg.css' => '91c5d3a6', @@ -20,7 +20,7 @@ 'maniphest.pkg.css' => '4845691a', 'maniphest.pkg.js' => '5ab2753f', 'rsrc/css/aphront/aphront-bars.css' => '231ac33c', - 'rsrc/css/aphront/dark-console.css' => 'f54bf286', + 'rsrc/css/aphront/dark-console.css' => '07dd8d38', 'rsrc/css/aphront/dialog-view.css' => '685c7e2d', 'rsrc/css/aphront/list-filter-view.css' => '5d6f0526', 'rsrc/css/aphront/multi-column.css' => '84cc6640', @@ -234,7 +234,7 @@ 'rsrc/externals/javelin/lib/DOM.js' => '805b806a', 'rsrc/externals/javelin/lib/History.js' => 'd4505101', 'rsrc/externals/javelin/lib/JSON.js' => '69adf288', - 'rsrc/externals/javelin/lib/Leader.js' => 'fea0eb47', + 'rsrc/externals/javelin/lib/Leader.js' => '7f243deb', 'rsrc/externals/javelin/lib/Mask.js' => '8a41885b', 'rsrc/externals/javelin/lib/Quicksand.js' => '6b8ef10b', 'rsrc/externals/javelin/lib/Request.js' => '94b750d2', @@ -363,7 +363,7 @@ 'rsrc/image/texture/table_header_tall.png' => 'd56b434f', 'rsrc/js/application/aphlict/Aphlict.js' => '5359e785', 'rsrc/js/application/aphlict/behavior-aphlict-dropdown.js' => 'caade6f2', - 'rsrc/js/application/aphlict/behavior-aphlict-listen.js' => 'fb20ac8d', + 'rsrc/js/application/aphlict/behavior-aphlict-listen.js' => 'd82b1ff9', 'rsrc/js/application/aphlict/behavior-aphlict-status.js' => '5e2634b9', 'rsrc/js/application/aphlict/behavior-desktop-notifications-control.js' => 'd5a2d665', 'rsrc/js/application/calendar/behavior-day-view.js' => '4b3c4443', @@ -482,7 +482,6 @@ 'rsrc/js/core/behavior-autofocus.js' => '7319e029', 'rsrc/js/core/behavior-badge-view.js' => '8ff5e24c', 'rsrc/js/core/behavior-choose-control.js' => '327a00d1', - 'rsrc/js/core/behavior-dark-console.js' => 'f411b6ae', 'rsrc/js/core/behavior-detect-timezone.js' => '4c193c96', 'rsrc/js/core/behavior-device.js' => 'bb1dd507', 'rsrc/js/core/behavior-drag-and-drop-textarea.js' => '484a6e22', @@ -521,6 +520,9 @@ 'rsrc/js/core/behavior-user-menu.js' => '31420f77', 'rsrc/js/core/behavior-watch-anchor.js' => '9f36c42d', 'rsrc/js/core/behavior-workflow.js' => '0a3f3021', + 'rsrc/js/core/darkconsole/DarkLog.js' => 'c8e1ffe3', + 'rsrc/js/core/darkconsole/DarkMessage.js' => 'c48cccdd', + 'rsrc/js/core/darkconsole/behavior-dark-console.js' => '3725c90c', 'rsrc/js/core/phtize.js' => 'd254d646', 'rsrc/js/phui/behavior-phui-dropdown-menu.js' => 'b95d6f7d', 'rsrc/js/phui/behavior-phui-file-upload.js' => 'b003d4fb', @@ -536,7 +538,7 @@ 'symbols' => array( 'almanac-css' => 'dbb9b3af', 'aphront-bars' => '231ac33c', - 'aphront-dark-console-css' => 'f54bf286', + 'aphront-dark-console-css' => '07dd8d38', 'aphront-dialog-view-css' => '685c7e2d', 'aphront-list-filter-view-css' => '5d6f0526', 'aphront-multi-column-view-css' => '84cc6640', @@ -584,7 +586,7 @@ 'javelin-aphlict' => '5359e785', 'javelin-behavior' => '61cbc29a', 'javelin-behavior-aphlict-dropdown' => 'caade6f2', - 'javelin-behavior-aphlict-listen' => 'fb20ac8d', + 'javelin-behavior-aphlict-listen' => 'd82b1ff9', 'javelin-behavior-aphlict-status' => '5e2634b9', 'javelin-behavior-aphront-basic-tokenizer' => 'b3a4b884', 'javelin-behavior-aphront-drag-and-drop-textarea' => '484a6e22', @@ -603,7 +605,7 @@ 'javelin-behavior-conpherence-pontificate' => '55616e04', 'javelin-behavior-conpherence-search' => '9bbf3762', 'javelin-behavior-countdown-timer' => 'e4cc26b3', - 'javelin-behavior-dark-console' => 'f411b6ae', + 'javelin-behavior-dark-console' => '3725c90c', 'javelin-behavior-dashboard-async-panel' => '469c0d9e', 'javelin-behavior-dashboard-move-panels' => '408bf173', 'javelin-behavior-dashboard-query-panel-select' => '453c5375', @@ -720,7 +722,7 @@ 'javelin-history' => 'd4505101', 'javelin-install' => '05270951', 'javelin-json' => '69adf288', - 'javelin-leader' => 'fea0eb47', + 'javelin-leader' => '7f243deb', 'javelin-magical-init' => '3010e992', 'javelin-mask' => '8a41885b', 'javelin-quicksand' => '6b8ef10b', @@ -774,6 +776,8 @@ 'phabricator-content-source-view-css' => '4b8b05d4', 'phabricator-core-css' => '9f4cb463', 'phabricator-countdown-css' => '16c52f5c', + 'phabricator-darklog' => 'c8e1ffe3', + 'phabricator-darkmessage' => 'c48cccdd', 'phabricator-dashboard-css' => 'fe5b1869', 'phabricator-drag-and-drop-file-upload' => '58dea2fa', 'phabricator-draggable-list' => 'bea6e7f4', @@ -1118,6 +1122,16 @@ 'javelin-dom', 'javelin-workflow', ), + '3725c90c' => array( + 'javelin-behavior', + 'javelin-stratcom', + 'javelin-util', + 'javelin-dom', + 'javelin-request', + 'phabricator-keyboard-shortcut', + 'phabricator-darklog', + 'phabricator-darkmessage', + ), '3ab51e2c' => array( 'javelin-behavior', 'javelin-behavior-device', @@ -1475,6 +1489,9 @@ 'javelin-behavior', 'javelin-history', ), + '7f243deb' => array( + 'javelin-install', + ), '8018ee50' => array( 'javelin-install', 'javelin-util', @@ -2066,6 +2083,20 @@ 'javelin-dom', 'phabricator-draggable-list', ), + 'd82b1ff9' => array( + 'javelin-behavior', + 'javelin-aphlict', + 'javelin-stratcom', + 'javelin-request', + 'javelin-uri', + 'javelin-dom', + 'javelin-json', + 'javelin-router', + 'javelin-util', + 'javelin-leader', + 'javelin-sound', + 'phabricator-notification', + ), 'd835b03a' => array( 'javelin-behavior', 'javelin-dom', @@ -2173,14 +2204,6 @@ 'f12cbc9f' => array( 'phui-oi-list-view-css', ), - 'f411b6ae' => array( - 'javelin-behavior', - 'javelin-stratcom', - 'javelin-util', - 'javelin-dom', - 'javelin-request', - 'phabricator-keyboard-shortcut', - ), 'f50152ad' => array( 'phui-timeline-view-css', ), @@ -2203,20 +2226,6 @@ 'javelin-install', 'javelin-dom', ), - 'fb20ac8d' => array( - 'javelin-behavior', - 'javelin-aphlict', - 'javelin-stratcom', - 'javelin-request', - 'javelin-uri', - 'javelin-dom', - 'javelin-json', - 'javelin-router', - 'javelin-util', - 'javelin-leader', - 'javelin-sound', - 'phabricator-notification', - ), 'fbe497e7' => array( 'javelin-behavior', 'javelin-util', @@ -2242,9 +2251,6 @@ 'javelin-view-visitor', 'javelin-util', ), - 'fea0eb47' => array( - 'javelin-install', - ), ), 'packages' => array( 'conpherence.pkg.css' => array( diff --git a/webroot/rsrc/externals/javelin/lib/Leader.js b/webroot/rsrc/externals/javelin/lib/Leader.js --- a/webroot/rsrc/externals/javelin/lib/Leader.js +++ b/webroot/rsrc/externals/javelin/lib/Leader.js @@ -33,6 +33,8 @@ events: ['onBecomeLeader', 'onReceiveBroadcast'], statics: { + _leaseDuration: 1500, + _interval: null, _timeout: null, _broadcastKey: 'JX.Leader.broadcast', @@ -130,8 +132,10 @@ // If we haven't installed an update timer yet, do so now. This will // renew our lease every 5 seconds, making sure we hold it until the // tab is closed. - if (!self._interval && lease.until > now + 10000) { - self._interval = window.setInterval(self._write, 5000); + var interval = parseInt(self._leaseDuration / 3, 10); + + if (!self._interval && lease.until > now + (interval * 2)) { + self._interval = window.setInterval(self._write, interval); } self._becomeLeader(); @@ -227,7 +231,7 @@ _write: function() { var self = JX.Leader; - var str = [self._id, ((+new Date()) + 16000)].join(':'); + var str = [self._id, ((+new Date()) + self._leaseDuration)].join(':'); window.localStorage.setItem(self._leaderKey, str); }, @@ -311,8 +315,8 @@ */ _usurp: function() { var self = JX.Leader; - self.call(JX.bag); self._timeout = null; + self.call(JX.bag); },