Skip to content

Commit 5690ffe

Browse files
pardomanFederico Medina
authored andcommitted
fix: Add crossorigin attribute to script HTML tags
The Problem: When an error occurs in a script that is not served by the default server spawned by karma, the stack trace gets lost and only the message "Script Error" is captured and reported back. This makes it hard to pin-point where the error originated from. The Solution: Add "crossorigin" attribute to generated script tags. Solution is inspired by this article: https://blog.getsentry.com/2016/05/17/what-is-script-error.html Other: Update middleware unit test
1 parent 43dccd1 commit 5690ffe

2 files changed

Lines changed: 5 additions & 5 deletions

File tree

lib/middleware/karma.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ var urlparse = function (urlStr) {
2727
var common = require('./common')
2828

2929
var VERSION = require('../constants').VERSION
30-
var SCRIPT_TAG = '<script type="%s" src="%s"></script>'
30+
var SCRIPT_TAG = '<script type="%s" src="%s" crossorigin="anonymous"></script>'
3131
var LINK_TAG_CSS = '<link type="text/css" href="%s" rel="stylesheet">'
3232
var LINK_TAG_HTML = '<link href="%s" rel="import">'
3333
var SCRIPT_TYPE = {

test/unit/middleware/karma.spec.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ describe('middleware.karma', () => {
197197

198198
response.once('end', () => {
199199
expect(nextSpy).not.to.have.been.called
200-
expect(response).to.beServedAs(200, 'CONTEXT\n<script type="text/javascript" src="/__karma__/absolute/first.js?sha123"></script>\n<script type="application/dart" src="/__karma__/absolute/second.dart?sha456"></script>')
200+
expect(response).to.beServedAs(200, 'CONTEXT\n<script type="text/javascript" src="/__karma__/absolute/first.js?sha123" crossorigin="anonymous"></script>\n<script type="application/dart" src="/__karma__/absolute/second.dart?sha456" crossorigin="anonymous"></script>')
201201
done()
202202
})
203203

@@ -227,7 +227,7 @@ describe('middleware.karma', () => {
227227

228228
response.once('end', () => {
229229
expect(nextSpy).not.to.have.been.called
230-
expect(response).to.beServedAs(200, 'CONTEXT\n<script type="text/javascript" src="/__karma__/absolute/some/abc/a.js?sha"></script>\n<script type="text/javascript" src="/__karma__/base/b.js?shaaa"></script>')
230+
expect(response).to.beServedAs(200, 'CONTEXT\n<script type="text/javascript" src="/__karma__/absolute/some/abc/a.js?sha" crossorigin="anonymous"></script>\n<script type="text/javascript" src="/__karma__/base/b.js?shaaa" crossorigin="anonymous"></script>')
231231
done()
232232
})
233233

@@ -281,7 +281,7 @@ describe('middleware.karma', () => {
281281
])
282282

283283
response.once('end', () => {
284-
expect(response).to.beServedAs(200, 'CONTEXT\n<script type="text/javascript" src="http://some.url.com/whatever"></script>')
284+
expect(response).to.beServedAs(200, 'CONTEXT\n<script type="text/javascript" src="http://some.url.com/whatever" crossorigin="anonymous"></script>')
285285
done()
286286
})
287287

@@ -344,7 +344,7 @@ describe('middleware.karma', () => {
344344

345345
response.once('end', () => {
346346
expect(nextSpy).not.to.have.been.called
347-
expect(response).to.beServedAs(200, 'DEBUG\n<script type="text/javascript" src="/__karma__/absolute/first.js"></script>\n<script type="text/javascript" src="/__karma__/base/b.js"></script>')
347+
expect(response).to.beServedAs(200, 'DEBUG\n<script type="text/javascript" src="/__karma__/absolute/first.js" crossorigin="anonymous"></script>\n<script type="text/javascript" src="/__karma__/base/b.js" crossorigin="anonymous"></script>')
348348
done()
349349
})
350350

0 commit comments

Comments
 (0)