mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-09 16:32:39 +01:00
Install an uncaught exception handler in Aphlict
Summary: Ref T5373. This seems to work pretty much correctly. Also stop popping bubbles and just use the log, since users find the bubbles confusing/not useful and they're not great for developers either. Future diffs will expose more user-facing stuff. Test Plan: Added `throw` to AphlictClient.as, got a log in the parent window. Reviewers: joshuaspence Reviewed By: joshuaspence Subscribers: epriestley Maniphest Tasks: T5373 Differential Revision: https://secure.phabricator.com/D9698
This commit is contained in:
parent
46d9bebc84
commit
80f26e96ea
4 changed files with 15 additions and 17 deletions
|
@ -34,7 +34,7 @@ package {
|
|||
ExternalInterface.call('JX.Aphlict.didReceiveEvent', type, object);
|
||||
}
|
||||
|
||||
final protected function error(error:Error):void {
|
||||
final protected function error(error:Object):void {
|
||||
this.externalInvoke('error', error.toString());
|
||||
}
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ package {
|
|||
import flash.external.ExternalInterface;
|
||||
import flash.utils.Dictionary;
|
||||
import flash.utils.Timer;
|
||||
|
||||
import flash.events.UncaughtErrorEvent;
|
||||
|
||||
final public class AphlictClient extends Aphlict {
|
||||
|
||||
|
@ -37,6 +37,10 @@ package {
|
|||
public function AphlictClient() {
|
||||
super();
|
||||
|
||||
loaderInfo.uncaughtErrorEvents.addEventListener(
|
||||
UncaughtErrorEvent.UNCAUGHT_ERROR,
|
||||
this.uncaughtErrorHandler);
|
||||
|
||||
ExternalInterface.addCallback('connect', this.externalConnect);
|
||||
ExternalInterface.call(
|
||||
'JX.Stratcom.invoke',
|
||||
|
@ -45,6 +49,10 @@ package {
|
|||
{});
|
||||
}
|
||||
|
||||
private function uncaughtErrorHandler(event:UncaughtErrorEvent):void {
|
||||
this.error(event.error.toString());
|
||||
}
|
||||
|
||||
public function externalConnect(
|
||||
server:String,
|
||||
port:Number,
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
* javelin-dom
|
||||
* javelin-json
|
||||
* javelin-router
|
||||
* javelin-util
|
||||
* phabricator-notification
|
||||
*/
|
||||
|
||||
|
@ -54,28 +55,17 @@ JX.behavior('aphlict-listen', function(config) {
|
|||
// a request to Phabricator to get notification details.
|
||||
function onaphlictmessage(type, message) {
|
||||
switch (type) {
|
||||
case 'error':
|
||||
new JX.Notification()
|
||||
.setContent('(Aphlict) ' + message)
|
||||
.alterClassName('jx-notification-error', true)
|
||||
.setDuration(0)
|
||||
.show();
|
||||
break;
|
||||
|
||||
case 'receive':
|
||||
JX.Stratcom.invoke('aphlict-receive-message', null, message);
|
||||
break;
|
||||
|
||||
default:
|
||||
if (__DEV__ && config.debug) {
|
||||
case 'error':
|
||||
if (config.debug) {
|
||||
var details = message ? JX.JSON.stringify(message) : '';
|
||||
|
||||
new JX.Notification()
|
||||
.setContent('(Aphlict) [' + type + '] ' + details)
|
||||
.alterClassName('jx-notification-debug', true)
|
||||
.setDuration(3000)
|
||||
.show();
|
||||
JX.log('(Aphlict) [' + type + '] ' + details);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Binary file not shown.
Loading…
Reference in a new issue