@@ -5,6 +5,7 @@ import { Integration } from '@sentry/types';
55import {
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+
3134export 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