Skip to content

Commit 322ac80

Browse files
committed
Support monitoring XDomainRequests
1 parent 1105faa commit 322ac80

4 files changed

Lines changed: 42 additions & 18 deletions

File tree

docs/themes/pace-theme-template.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@
55
</div>
66
<div class="pace-activity"></div>
77
</div>
8-
</body>
8+
</body>

pace.coffee

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ getFromDOM = (key='options', json=true) ->
9090
try
9191
return JSON.parse data
9292
catch e
93-
console.error "Error parsing inline pace options", e
93+
console?.error "Error parsing inline pace options", e
9494

9595
window.Pace ?= {}
9696

@@ -184,23 +184,33 @@ class Events
184184

185185
# We should only ever instantiate one of these
186186
_XMLHttpRequest = window.XMLHttpRequest
187+
_XDomainRequest = window.XDomainRequest
187188
class RequestIntercept extends Events
188189
constructor: ->
189190
super
190191

191-
_intercept = @
192+
monitor = (req) =>
193+
_open = req.open
194+
req.open = (type, url, async) =>
195+
@trigger 'request', {type, url, request: req}
196+
197+
_open.apply req, arguments
192198

193199
window.XMLHttpRequest = ->
194200
req = new _XMLHttpRequest
195201

196-
_open = req.open
197-
req.open = (type, url, async) ->
198-
_intercept.trigger 'request', {type, url, request: req}
199-
200-
_open.apply req, arguments
202+
monitor req
201203

202204
req
203205

206+
if _XDomainRequest?
207+
window.XDomainRequest = ->
208+
req = new _XDomainRequest
209+
210+
monitor req
211+
212+
req
213+
204214
intercept = new RequestIntercept
205215

206216
class AjaxMonitor

pace.js

Lines changed: 23 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)