@@ -230,6 +230,34 @@ var Raven = {
230
230
}
231
231
} ;
232
232
233
+ function triggerEvent ( eventType , options ) {
234
+ var event , key ;
235
+
236
+ eventType = 'raven' + eventType [ 0 ] . toUpperCase ( ) + eventType . substr ( 1 ) ;
237
+
238
+ if ( document . createEvent ) {
239
+ event = document . createEvent ( "HTMLEvents" ) ;
240
+ event . initEvent ( eventType , true , true ) ;
241
+ } else {
242
+ event = document . createEventObject ( ) ;
243
+ event . eventType = eventType ;
244
+ }
245
+
246
+ if ( typeof options !== "object" ) {
247
+ options = { }
248
+ }
249
+
250
+ for ( key in options ) if ( options . hasOwnProperty ( key ) ) {
251
+ event [ key ] = options [ key ]
252
+ }
253
+
254
+ if ( document . createEvent ) {
255
+ document . dispatchEvent ( event ) ;
256
+ } else {
257
+ document . fireEvent ( "on" + event . eventType . toLowerCase ( ) , event ) ;
258
+ }
259
+ }
260
+
233
261
var uriKeys = 'source protocol authority userInfo user password host port relative path directory file query anchor' . split ( ' ' ) ,
234
262
uriPattern = / ^ (?: (? ! [ ^ : @ ] + : [ ^ : @ \/ ] * @ ) ( [ ^ : \/ ? # . ] + ) : ) ? (?: \/ \/ ) ? ( (?: ( ( [ ^ : @ ] * ) (?: : ( [ ^ : @ ] * ) ) ? ) ? @ ) ? ( [ ^ : \/ ? # ] * ) (?: : ( \d * ) ) ? ) ( ( ( \/ (?: [ ^ ? # ] (? ! [ ^ ? # \/ ] * \. [ ^ ? # \/ . ] + (?: [ ? # ] | $ ) ) ) * \/ ? ) ? ( [ ^ ? # \/ ] * ) ) (?: \? ( [ ^ # ] * ) ) ? (?: # ( .* ) ) ? ) / ;
235
263
@@ -300,6 +328,11 @@ function handleStackInfo(stackInfo, options) {
300
328
} ) ;
301
329
}
302
330
331
+ triggerEvent ( 'handle' , {
332
+ stackInfo : stackInfo ,
333
+ options : options
334
+ } ) ;
335
+
303
336
processException (
304
337
stackInfo . name ,
305
338
stackInfo . message ,
@@ -471,8 +504,30 @@ function send(data) {
471
504
makeRequest ( data ) ;
472
505
}
473
506
507
+
474
508
function makeRequest ( data ) {
475
- new Image ( ) . src = globalServer + getAuthQueryString ( ) + '&sentry_data=' + encodeURIComponent ( JSON . stringify ( data ) ) ;
509
+ var img , src ;
510
+
511
+ function success ( ) {
512
+ triggerEvent ( 'success' , {
513
+ data : data ,
514
+ src : src
515
+ } ) ;
516
+ }
517
+
518
+ function failure ( ) {
519
+ triggerEvent ( 'failure' , {
520
+ data : data ,
521
+ src : src
522
+ } ) ;
523
+ }
524
+
525
+ src = globalServer + getAuthQueryString ( ) + '&sentry_data=' + encodeURIComponent ( JSON . stringify ( data ) ) ;
526
+ img = new Image ( ) ;
527
+ img . onload = success ;
528
+ img . onerror = failure ;
529
+ img . onabort = failure ;
530
+ img . src = src ;
476
531
}
477
532
478
533
function isSetup ( ) {
0 commit comments