Skip to content

Commit 3c99a73

Browse files
committed
feat(dom): add debug warning to capping maxStringLength
1 parent 17db0d1 commit 3c99a73

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

packages/browser/src/integrations/breadcrumbs.ts

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { Integration } from '@sentry/types';
55
import {
66
addInstrumentationHandler,
77
htmlTreeAsString,
8+
logger,
89
parseUrl,
910
safeJoin,
1011
severityLevelFromString,
@@ -19,7 +20,6 @@ interface BreadcrumbsOptions {
1920
| boolean
2021
| {
2122
serializeAttribute?: string | string[];
22-
/** maxStringLength gets capped at 1024 to prevent 100 breadcrumbs exceeding 1MB event payload size */
2323
maxStringLength?: number;
2424
};
2525
fetch: boolean;
@@ -28,6 +28,9 @@ interface BreadcrumbsOptions {
2828
xhr: boolean;
2929
}
3030

31+
/** maxStringLength gets capped to prevent 100 breadcrumbs exceeding 1MB event payload size */
32+
const MAX_ALLOWED_STRING_LENGTH = 1024;
33+
3134
export const BREADCRUMB_INTEGRATION_ID = 'Breadcrumbs';
3235

3336
/**
@@ -103,10 +106,17 @@ function _domBreadcrumb(dom: BreadcrumbsOptions['dom']): (handlerData: { [key: s
103106
function _innerDomBreadcrumb(handlerData: { [key: string]: any }): void {
104107
let target;
105108
let keyAttrs = typeof dom === 'object' ? dom.serializeAttribute : undefined;
106-
const maxStringLength =
107-
typeof dom === 'object' && typeof dom.maxStringLength === 'number'
108-
? Math.min(dom.maxStringLength, 1024)
109-
: undefined;
109+
110+
let maxStringLength =
111+
typeof dom === 'object' && typeof dom.maxStringLength === 'number' ? dom.maxStringLength : undefined;
112+
if (maxStringLength && maxStringLength > MAX_ALLOWED_STRING_LENGTH) {
113+
if (__DEBUG_BUILD__) {
114+
logger.warn(
115+
`\`dom.maxStringLength\` cannot exceed ${MAX_ALLOWED_STRING_LENGTH}, but a value of ${maxStringLength} was configured. Sentry will use ${MAX_ALLOWED_STRING_LENGTH} instead.`,
116+
);
117+
}
118+
maxStringLength = MAX_ALLOWED_STRING_LENGTH;
119+
}
110120

111121
if (typeof keyAttrs === 'string') {
112122
keyAttrs = [keyAttrs];

0 commit comments

Comments
 (0)