Skip to content

Commit 205b4f5

Browse files
committed
account for spaces in baggage header (+adjust test)
1 parent 0b84168 commit 205b4f5

File tree

3 files changed

+6
-4
lines changed
  • dev-packages/browser-integration-tests/suites/tracing/request/xhr-with-custom-sentry-headers
  • packages/browser/src/tracing

3 files changed

+6
-4
lines changed

dev-packages/browser-integration-tests/suites/tracing/request/xhr-with-custom-sentry-headers/subject.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@ const xhr = new XMLHttpRequest();
33
xhr.open('GET', 'http://sentry-test-site.example/1');
44
xhr.setRequestHeader('X-Test-Header', 'existing-header');
55
xhr.setRequestHeader('sentry-trace', '123-abc-1');
6-
xhr.setRequestHeader('baggage', 'sentry-release=1.1.1');
6+
xhr.setRequestHeader('baggage', ' sentry-release=1.1.1, sentry-trace_id=123');
77

88
xhr.send();

dev-packages/browser-integration-tests/suites/tracing/request/xhr-with-custom-sentry-headers/test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ sentryTest(
2020
const requestHeaders = request.headers();
2121
expect(requestHeaders).toMatchObject({
2222
'sentry-trace': '123-abc-1',
23-
baggage: 'sentry-release=1.1.1',
23+
baggage: 'sentry-release=1.1.1, sentry-trace_id=123',
2424
'x-test-header': 'existing-header',
2525
});
2626
},

packages/browser/src/tracing/request.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -431,7 +431,9 @@ function setHeaderOnXhr(
431431
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
432432
xhr.setRequestHeader!('sentry-trace', sentryTraceHeader);
433433
if (sentryBaggageHeader) {
434-
// bail if a pre-existing baggage header is set and already contains sentry values
434+
// only add our headers if
435+
// - no pre-existing baggage header exists
436+
// - or it is set and doesn't yet contain sentry values
435437
const originalBaggageHeader = originalHeaders?.['baggage'];
436438
if (!originalBaggageHeader || !baggageHeaderHasSentryValues(originalBaggageHeader)) {
437439
// From MDN: "If this method is called several times with the same header, the values are merged into one single request header."
@@ -447,7 +449,7 @@ function setHeaderOnXhr(
447449
}
448450

449451
function baggageHeaderHasSentryValues(baggageHeader: string): boolean {
450-
return baggageHeader.split(',').some(value => value.startsWith('sentry-'));
452+
return baggageHeader.split(',').some(value => value.trim().startsWith('sentry-'));
451453
}
452454

453455
function getFullURL(url: string): string | undefined {

0 commit comments

Comments
 (0)